ath9k: add workaround for AR9331 USB host controller hang with USB1.1 devices
authorGabor Juhos <juhosg@openwrt.org>
Fri, 10 Jan 2014 09:05:31 +0000 (09:05 +0000)
committerGabor Juhos <juhosg@openwrt.org>
Fri, 10 Jan 2014 09:05:31 +0000 (09:05 +0000)
commit8384c0dba0cb2c1b4a05aea232b3715fe79dee2d
tree75ae9e316a1b9a03c9521b4f68bddd0d2892b97d
parent6dcf8788646667921921da3c730ad47232186db0
ath9k: add workaround for AR9331 USB host controller hang with USB1.1 devices

When wifi radio is reset, some bits in (undocumented) USB registers may
flip. Patch adds setting them after radio reset (channel change, up/down).
With this patch stability of USB1.1 full-speed devices, connected directly
to AR9331 host port (no USB2.0 hub) is improved.

See "ar9331's usb stability issue" OpenWrt forum thread for details:
  <https://forum.openwrt.org/viewtopic.php?id=39956>

Based on QCA's Open HAL WAR_USB_DISABLE_PLL_LOCK_DETECT() macro:
  <https://github.com/qca/qcamain_open_hal_public/blob/master/hal/ar9300/ar9300_reset.c#L74>

Adapted to Linux mac80211 driver for 8Devices Carambola2 board by Mantas Pucka:
  <https://github.com/8devices/carambola2/commit/b08b59ceb4e7f0bad4c0b17e703e1e5c4e168923>

Ported to latest OpenWrt BB branch and tested on TP-Link TL-WR703N by
Michel Stempin <michel.stempin@wanadoo.fr>.

Signed-off-by: Michel Stempin <michel.stempin@wanadoo.fr>
[juhosg: refresh and clean up the ath9k patch]
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 39212
package/kernel/mac80211/patches/566-ath9k-ar933x-usb-hang-workaround.patch [new file with mode: 0644]