]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commitc8e75cbacdeaa202cf16d0fe5c2b5253d1ccc0bb
tree03c8c92a907c19e28bb5f9eef0a1121081515b31
parent24cde1b4062c40ee0a9782ae278fdf00128301ef
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