[NFC] Apply recovery for HAL_WRAPPER_STATE_OPEN_CPLT state
Bug: 375344980
Bug: 403374698
Test: Manual
Change-Id: Id00f8d6c48907d4443832dbdce4898f7ca0d7a74
diff --git a/st21nfc/hal_wrapper.cc b/st21nfc/hal_wrapper.cc
index c86238d..7b6d4f3 100644
--- a/st21nfc/hal_wrapper.cc
+++ b/st21nfc/hal_wrapper.cc
@@ -972,6 +972,30 @@
}
break;
+ case HAL_WRAPPER_STATE_OPEN_CPLT:
+ if (event == HAL_WRAPPER_TIMEOUT_EVT) {
+ STLOG_HAL_E("NFC-NCI HAL: %s Timeout at state: %s", __func__,
+ hal_wrapper_state_to_str(mHalWrapperState).c_str());
+ HalEventLogger::getInstance().log()
+ << __func__ << " mHalWrapperState="
+ << hal_wrapper_state_to_str(mHalWrapperState)
+ << " mIsActiveRW=" << mIsActiveRW
+ << " mTimerStarted=" << mTimerStarted << std::endl;
+ HalEventLogger::getInstance().store_log();
+ HalSendDownstreamStopTimer(mHalHandle);
+ p_data[0] = 0x60;
+ p_data[1] = 0x00;
+ p_data[2] = 0x03;
+ p_data[3] = 0xAC;
+ p_data[4] = 0x00;
+ p_data[5] = 0x00;
+ data_len = 0x6;
+ mHalWrapperDataCallback(data_len, p_data);
+ mHalWrapperState = HAL_WRAPPER_STATE_OPEN;
+ return;
+ }
+ break;
+
default:
if (event == HAL_WRAPPER_TIMEOUT_EVT) {
STLOG_HAL_E("NFC-NCI HAL: %s Timeout at state: %s", __func__,