wimax/i2400m: add the error recovery mechanism on TX path
authorCindy H Kao <cindy.h.kao@intel.com>
Thu, 8 Apr 2010 03:07:47 +0000 (20:07 -0700)
committerInaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
Tue, 11 May 2010 21:05:39 +0000 (14:05 -0700)
commit599e59538448ee49d5470f226bb191b2f78aa3a2
tree03c8c92a907c19e28bb5f9eef0a1121081515b31
parentf4e413458104210bc29aa5c437882c68b4b20100
wimax/i2400m: add the error recovery mechanism on TX path

This patch adds an error recovery mechanism on TX path.
The intention is to bring back the device to some known state
whenever TX sees -110 (-ETIMEOUT) on copying the data to the HW FIFO.

The TX failure could mean a device bus stuck or function stuck, so
the current error recovery implementation is to trigger a bus reset
and expect this can bring back the device.

Since the TX work is done in a thread context, there may be a queue of TX works
already that all hit the -ETIMEOUT error condition because the device has
somewhat stuck already. We don't want any consecutive bus resets simply because
multiple TX works in the queue all hit the same device erratum, the flag
"error_recovery" is introduced to denote if we are ready for taking any
error recovery. See @error_recovery doc in i2400m.h.

Signed-off-by: Cindy H Kao <cindy.h.kao@intel.com>
drivers/net/wimax/i2400m/driver.c
drivers/net/wimax/i2400m/i2400m.h
drivers/net/wimax/i2400m/sdio-tx.c