Abort when entering timeout recovery with I2cResetPulse/I2cRecovery
Sometimes HAL got stucked after a I2cResetPulse due to unexpected reasons
abort the HAL directly before we figure out a better recovery flow
Bug: 287712288
Test: manual
Change-Id: Iba64a513ed63fec30ce624db63aabc3fcea527d2
diff --git a/st21nfc/hal_wrapper.cc b/st21nfc/hal_wrapper.cc
index 3560ace..571991f 100644
--- a/st21nfc/hal_wrapper.cc
+++ b/st21nfc/hal_wrapper.cc
@@ -693,6 +693,7 @@
STLOG_HAL_D("NFC-NCI HAL: %s Timeout accessing the CLF.", __func__);
HalSendDownstreamStopTimer(mHalHandle);
I2cRecovery();
+ abort(); // TODO: fix it when we have a better recovery method.
return;
}
break;
@@ -709,6 +710,7 @@
if (event == HAL_WRAPPER_TIMEOUT_EVT) {
STLOG_HAL_E("%s - Timer for FW update procedure timeout, retry",
__func__);
+ abort(); // TODO: fix it when we have a better recovery method.
HalSendDownstreamStopTimer(mHalHandle);
resetHandlerState();
I2cResetPulse();
@@ -730,6 +732,7 @@
case HAL_WRAPPER_STATE_PROP_CONFIG:
if (event == HAL_WRAPPER_TIMEOUT_EVT) {
STLOG_HAL_E("%s - Timer when sending conf parameters, retry", __func__);
+ abort(); // TODO: fix it when we have a better recovery method.
HalSendDownstreamStopTimer(mHalHandle);
resetHandlerState();
I2cResetPulse();