]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commit4960fde0a477642fea443936742da166c9a8d441
tree3ea376c7c1c866e6c8da62d11ff0a072a74340ec
parent55c30783c90100c27fe97e484bfc8d7899a63ba9
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