]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Shut down RX before TX - in theory, this should make the chip less likely
authorAdrian Chadd <adrian@FreeBSD.org>
Sat, 23 Aug 2014 18:55:51 +0000 (18:55 +0000)
committerAdrian Chadd <adrian@FreeBSD.org>
Sat, 23 Aug 2014 18:55:51 +0000 (18:55 +0000)
commit062cf7d90a94379b732dd1cb30eb6fdb5e5ee5f9
tree5070aee821cf018415fce6d1e4198aa3070f51d7
parent8158a329006284548d7303321435356af0aa7fa6
Shut down RX before TX - in theory, this should make the chip less likely
to get upset.

The Qualcomm Atheros reference design code goes through significant
hacks to shut down RX before TX.  It doesn't even try do do it in the
driver - it actually makes the DMA stop routines in the HAL shut down
RX before shutting down TX.

So, to make this work for chips that aren't the AR9380 and later, do
it in the driver.  Shuffle the TX stop/drain HAL calls to be called
*after* the RX stop HAL call.

Tested:

* AR5413 (STA)
* AR5212 (STA)
* AR5416 (STA)
* AR9380 (STA)
* AR9331 (AP)
* AR9341 (AP)

TODO:

* test ar92xx series NIC and the AR5210/AR5211, in case there's something
  even odder about those.
sys/dev/ath/if_ath.c
sys/dev/ath/if_ath_beacon.c