ath9k_hw: Fix false tx hung detection in AR9003 chips
authorRajkumar Manoharan <rmanohar@qca.qualcomm.com>
Thu, 23 Jun 2011 08:09:13 +0000 (13:39 +0530)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 27 Jun 2011 19:09:40 +0000 (15:09 -0400)
commitdcfcbd590d91e8385eb554aaed419bdebaf4c72a
tree3ea376c7c1c866e6c8da62d11ff0a072a74340ec
parent15b4d843ab66bc0ac2cd46baa20a3ce9638604e6
ath9k_hw: Fix false tx hung detection in AR9003 chips

The edma based (AR9003 family) chips update tx status
descriptors in a common ring buffer for all transmitted
frames. Whenever tx interrupt is raised, the descriptors
are processed and tx status index is moved.

The complete tx stauts ring are updated with beacons tx status
when there are no data frames to be sent for a period of time.
In this state, transmitting data frames causes the driver to
wait for the tx status on an incorrect tx status index though
the status was updated by hw properly. The driver detects this
condition as a h/w hang and does unnecessary chip resets.

This issue was orginally reported in adhoc mode while sending
frames after an idle time.

Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/ar9003_mac.c
drivers/net/wireless/ath/ath9k/beacon.c