freebsd-nq/sys/dev/ath
Adrian Chadd a74ebfe59e Fix hangs (exposed by spectral scan activity) in STA mode when the
chip hangs.

* Always do a reset in ath_bmiss_proc(), regardless of whether the
  hardware is "hung" or not.  Specifically, for spectral scan, there's
  likely a whole bunch of potential hangs that we don't (yet) recognise
  in the HAL.  So to avoid staying RX deaf persisting until the station
  disassociates, just do a no-loss reset.

* Set sc_beacons=1 in STA mode.  During a reset, the beacon programming
  isn't done.  (It's likely I need to set sc_syncbeacons during a hang
  reset, but I digress.)  Thus after a reset, there's no beacon timer
  programming to send a BMISS interrupt if beacons aren't heard ..
  thus if the AP disappears, you won't get notified and you'll have to
  reset your interface.

This hasn't yet fixed all of the hangs that I've seen when debugging
spectral scan, but it's certainly reduced the hang frequency and it
should improve general STA stability in very noisy environments.

Tested:

* AR9280, STA mode, spectral scan off/on

PR:		kern/175227
2013-01-17 16:43:59 +00:00
..
ath_dfs/null Add a method to explicitly disable radar reporting if required. 2013-01-02 01:36:10 +00:00
ath_hal Place-holders for enable/active parameter flags. 2013-01-11 02:25:39 +00:00
ath_rate I've had some feedback that CCK rates are more reliable than MCS 0 2012-10-31 06:35:50 +00:00
ah_osdep.c Fix the HAL debugging to only use one bit to mark a message as unmaskable. 2012-07-01 02:34:32 +00:00
ah_osdep.h Migrate the ath_hal_filltxdesc() API to take a list of buffer/seglen values. 2012-08-05 10:12:27 +00:00
if_ath_ahb.c I give up - introduce a TX lock to serialise TX operations. 2012-10-31 06:27:58 +00:00
if_ath_alq.c ath(4) ALQ logging improvements. 2012-11-16 19:39:29 +00:00
if_ath_alq.h Add in specific TDMA logging types. 2012-11-27 02:24:05 +00:00
if_ath_beacon.c Add a quick work-around if ath_beacon_config() to not die if it's called 2013-01-17 16:26:40 +00:00
if_ath_beacon.h Extend the beacon code slightly to support AP mode beaconing for the 2012-08-11 23:26:19 +00:00
if_ath_debug.c TX EDMA debugging fixes: 2012-11-05 07:08:45 +00:00
if_ath_debug.h Add a debug method to dump the EDMA TX status descriptor contents out. 2012-11-03 04:53:44 +00:00
if_ath_keycache.c Don't allocate or program a key for the AR5210. 2012-11-19 23:54:05 +00:00
if_ath_keycache.h Add a 'vap' to ath_keyset(). 2011-11-08 19:25:52 +00:00
if_ath_led.c Bring over the initial 802.11n bluetooth coexistence support code. 2012-06-26 22:16:53 +00:00
if_ath_led.h Refactor out the software LED config code into a common function, called 2011-12-26 05:46:22 +00:00
if_ath_misc.h Implement frame (data) transmission using if_transmit(), rather than 2013-01-15 18:01:23 +00:00
if_ath_pci.c I give up - introduce a TX lock to serialise TX operations. 2012-10-31 06:27:58 +00:00
if_ath_rx_edma.c Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
if_ath_rx_edma.h Begin abstracting out the RX path in preparation for RX EDMA support. 2012-07-03 06:59:12 +00:00
if_ath_rx.c If we're doing a kickpcu, make sure we flush the whole RX list rather than 2013-01-13 22:41:58 +00:00
if_ath_rx.h Convert sc_rxpending to a per-EDMA queue, and use that for the legacy code. 2012-07-10 00:02:19 +00:00
if_ath_spectral.c Fix format size. 2013-01-08 22:42:15 +00:00
if_ath_spectral.h Add a new (skeleton) spectral mode manager module. 2013-01-02 03:59:02 +00:00
if_ath_sysctl.c Implement frame (data) transmission using if_transmit(), rather than 2013-01-15 18:01:23 +00:00
if_ath_sysctl.h Break out most of the HAL related tweaks into a per-HAL instance, 2011-06-23 02:38:36 +00:00
if_ath_tdma.c Pull out the debugging code from the critical path and make sure it 2012-11-28 01:55:22 +00:00
if_ath_tdma.h Migrate the TDMA management functions out of if_ath.c into if_ath_tdma.c. 2012-05-20 02:49:42 +00:00
if_ath_tsf.h Migrate the bulk of the RX routines out from if_ath.c to if_ath_rx.[ch]. 2012-05-20 02:05:10 +00:00
if_ath_tx_edma.c Delete the per-TXQ locks and replace them with a single TX lock. 2012-12-02 06:24:08 +00:00
if_ath_tx_edma.h Begin separating out the TX DMA setup in preparation for TX EDMA support. 2012-07-23 03:52:18 +00:00
if_ath_tx_ht.c Delete the per-TXQ locks and replace them with a single TX lock. 2012-12-02 06:24:08 +00:00
if_ath_tx_ht.h Introduce TX aggregation and software TX queue management 2011-11-08 22:43:13 +00:00
if_ath_tx.c Implement frame (data) transmission using if_transmit(), rather than 2013-01-15 18:01:23 +00:00
if_ath_tx.h ALQ logging enhancements: 2012-11-16 19:57:16 +00:00
if_ath.c Fix hangs (exposed by spectral scan activity) in STA mode when the 2013-01-17 16:43:59 +00:00
if_athdfs.h Add a method to explicitly disable radar reporting if required. 2013-01-02 01:36:10 +00:00
if_athioctl.h Add support for triggering spectral scan upon a channel reset/change. 2013-01-08 22:15:13 +00:00
if_athrate.h Create an ioctl API for fetching the current rate control information. 2012-07-20 01:27:20 +00:00
if_athvar.h Implement frame (data) transmission using if_transmit(), rather than 2013-01-15 18:01:23 +00:00