ath9k: RX stucks during heavy traffic in HT40 mode.
authorSenthil Balasubramanian <senthilkumar@atheros.com>
Wed, 15 Jul 2009 00:17:08 +0000 (20:17 -0400)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 24 Jul 2009 19:05:17 +0000 (15:05 -0400)
commitdd8b15b027d96f7097ae9dbaebd822a114a03c34
tree580e0d651226724921b2c246d58da2057ab585f1
parenta59b5a5e684652eec035c869ab8911a1689c8f53
ath9k: RX stucks during heavy traffic in HT40 mode.

Running iperf along with p2p traffic on both TX and RX side then
stop one side, then stop the other side, then start it up again,
eventually the STA gets into a mode that it can not pass data at
all.

A hardware workaround for invalid RSSI can make FIFO write pointer
to jump over read pointer, causing RX data corruption and repeated
DMA. Both TX and RX works fine when the workaround is disabled.

To replace the original hardware work around, software looks for
frames with post delimiter CRC error and mark the RSSI invalid so
that the upperlayer will not use the RSSI associated with this
frame. So disable the hardware workaround by updating the appropriate
registers.

Signed-off-by: Senthil Balasubramanian <senthilkumar@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/eeprom.c
drivers/net/wireless/ath/ath9k/initvals.h
drivers/net/wireless/ath/ath9k/mac.c