diff options
author | Nick Pelly <npelly@google.com> | 2011-10-25 10:05:20 -0700 |
---|---|---|
committer | Ed Heyl <ed@google.com> | 2011-10-25 20:36:00 +0000 |
commit | b13b27aa9bb96897e996cf89ed8412c46ef2cf07 (patch) | |
tree | 09523ff87feb3ef06c5f13264597576d4eff3070 | |
parent | ff39bc6d4fb3fa08fc55721a8962c713751fca09 (diff) | |
download | external_libnfc-nxp-b13b27aa9bb96897e996cf89ed8412c46ef2cf07.zip external_libnfc-nxp-b13b27aa9bb96897e996cf89ed8412c46ef2cf07.tar.gz external_libnfc-nxp-b13b27aa9bb96897e996cf89ed8412c46ef2cf07.tar.bz2 |
Use a 10s timeout in uart_read() in FW download mode.
This provides a path to flush RX, necessary when we enter FW download mode
with bogus data already in RX. This fixes a problem where NFC was dead on several
HSPA and LTE devices.
Also decrease FW timeout completition from 120s to 60s. Typically FW download
takes 30s, and 120 is unnecessarily large and causes a long delay to bring up
NFC when we need to retry FW.
Bug: 5468674
Change-Id: I0fd40c199daac861fe5acda4f2d214bdcff8e869
-rw-r--r-- | Linux_x86/phDal4Nfc_uart.c | 6 | ||||
-rw-r--r-- | inc/phNfcConfig.h | 2 |
2 files changed, 6 insertions, 2 deletions
diff --git a/Linux_x86/phDal4Nfc_uart.c b/Linux_x86/phDal4Nfc_uart.c index 7ff9c4c..a2f6db3 100644 --- a/Linux_x86/phDal4Nfc_uart.c +++ b/Linux_x86/phDal4Nfc_uart.c @@ -342,7 +342,7 @@ int phDal4Nfc_uart_read(uint8_t * pBuffer, int nNbBytesToRead) read_property(); // Read timeout: - // FW mode: no timeout + // FW mode: 10s timeout // 1 byte read: steady-state LLC length read, allowed to block forever // >1 byte read: LLC payload, 100ms timeout (before pn544 re-transmit) if (nNbBytesToRead > 1 && !libnfc_firmware_mode) { @@ -353,6 +353,10 @@ int phDal4Nfc_uart_read(uint8_t * pBuffer, int nNbBytesToRead) timeout.tv_nsec -= 1000000000; } ptv = &tv; + } else if (libnfc_firmware_mode) { + clock_gettime(CLOCK_MONOTONIC, &timeout); + timeout.tv_sec += 10; + ptv = &tv; } else { ptv = NULL; } diff --git a/inc/phNfcConfig.h b/inc/phNfcConfig.h index bcefaec..cced2ca 100644 --- a/inc/phNfcConfig.h +++ b/inc/phNfcConfig.h @@ -235,7 +235,7 @@ #ifndef NXP_DNLD_COMPLETE_TIMEOUT -#define NXP_DNLD_COMPLETE_TIMEOUT 120000U +#define NXP_DNLD_COMPLETE_TIMEOUT 60000U #endif |