diff options
author | Martijn Coenen <maco@google.com> | 2012-04-20 12:25:09 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-04-20 12:25:09 -0700 |
commit | 9d5e63503d2d948bc73e85dff7b9995f3cb1ca24 (patch) | |
tree | 9996a174e6d91467a952e1ad67dd168587c09c08 | |
parent | cbd3e8d93923aae2df32d3bb299cd92fed5914a4 (diff) | |
parent | 8206325bc6b3a60aed3c5cce157369ec2989437a (diff) | |
download | external_libnfc-nxp-9d5e63503d2d948bc73e85dff7b9995f3cb1ca24.zip external_libnfc-nxp-9d5e63503d2d948bc73e85dff7b9995f3cb1ca24.tar.gz external_libnfc-nxp-9d5e63503d2d948bc73e85dff7b9995f3cb1ca24.tar.bz2 |
Merge "Added recovery function when SE wired mode selected"
-rw-r--r-- | Linux_x86/phOsalNfc.c | 3 | ||||
-rw-r--r-- | src/phLibNfc.c | 12 | ||||
-rw-r--r-- | src/phLibNfc.h | 4 |
3 files changed, 19 insertions, 0 deletions
diff --git a/Linux_x86/phOsalNfc.c b/Linux_x86/phOsalNfc.c index 3f4542d..83b4e6e 100644 --- a/Linux_x86/phOsalNfc.c +++ b/Linux_x86/phOsalNfc.c @@ -47,6 +47,8 @@ phOsalNfc_Exception_t phOsalNfc_Exception; char phOsalNfc_DbgTraceBuffer[MAX_PRINT_BUFSIZE]; #endif +void phLibNfc_Mgt_Recovery(); + /*! * \brief Allocates memory. * This function attempts to allocate \a size bytes on the heap and @@ -145,6 +147,7 @@ void phOsalNfc_RaiseException(phOsalNfc_ExceptionType_t eExceptionType, uint16_t if(eExceptionType == phOsalNfc_e_UnrecovFirmwareErr) { ALOGE("HCI Timeout - Exception raised"); + phLibNfc_Mgt_Recovery(); ALOGE("Force restart of NFC Service"); abort(); } diff --git a/src/phLibNfc.c b/src/phLibNfc.c index 1012acb..c7c37c8 100644 --- a/src/phLibNfc.c +++ b/src/phLibNfc.c @@ -129,6 +129,18 @@ int phLibNfc_Load_Firmware_Image () return status; } +// Function for delay the recovery in case wired mode is set +// to complete the possible pending transaction with SE +void phLibNfc_Mgt_Recovery () +{ + /* Wait before recovery if wired mode */ + if (gpphLibContext->sSeContext.eActivatedMode == phLibNfc_SE_ActModeWired) + { + usleep (12000000); + } + + return; +} extern uint8_t nxp_nfc_isoxchg_timeout; NFCSTATUS phLibNfc_SetIsoXchgTimeout(uint8_t timeout) { diff --git a/src/phLibNfc.h b/src/phLibNfc.h index 1eb62ae..6111a93 100644 --- a/src/phLibNfc.h +++ b/src/phLibNfc.h @@ -856,6 +856,10 @@ NFCSTATUS phLibNfc_Download_Mode (); int phLibNfc_Load_Firmware_Image (); +// Function for delay the recovery in case wired mode is set +// to complete the possible pending transaction with SE +void phLibNfc_Mgt_Recovery (); + // timeout is 8 bits // bits [0..3] => timeout value, (256*16/13.56*10^6) * 2^value // [0] -> 0.0003s |