]> 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)
commit15c6462cb2952a1359939a6b6aacab33baa38ac3
tree3ea376c7c1c866e6c8da62d11ff0a072a74340ec
parentf2e1c0994fea377d2fcad5e0f7f6d6e26108a3c0
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