freebsd-dev/sys/contrib/dev/ath/ath_hal/ar9300
Adrian Chadd 2dc7b713de Work around some rather annoying chip hangs in the AR9331 chip.
If powersave is enabled and there are any transitions to network
or full sleep - even if they're pretty damned brief - eventually
something messes up somewhere and the bus glue between the AR9331
SoC and the AR9331 wifi stops working.  It shows up as stuck DMA
and LOCAL_TIMEOUT interrupts.

Both ath9k and the reference driver does a full chip reset if things
get stuck.

So:

* teach the AR9330 HAL about the force_full_reset option I added a
  couple of years ago;
* if the chip is currently in full-sleep, do a full-reset;
* if TX DMA and/or RX DMA are still enabled (eg, they did get
  stuck during reset) then do a full-reset.

Tested:

* AR9331 SoC, STA mode
2014-08-09 09:12:25 +00:00
..
ar955x.ini
ar9300_aic.c
ar9300_ani.c Sync from git - ah_config is in 'ath_hal', not 'ath_hal_private' on 2013-04-29 23:57:41 +00:00
ar9300_aphrodite10.ini
ar9300_attach.c Add Atheros AR1111 support to the HAL. 2014-05-05 07:58:05 +00:00
ar9300_beacon.c
ar9300_devid.h
ar9300_eeprom.c
ar9300_freebsd_inc.h In preparation to support AR933x SoC builds, allow the AH_SUPPORT_AR93(xx) 2013-06-26 04:34:45 +00:00
ar9300_freebsd.c Add ar9300_get_next_tbtt(). 2014-04-30 02:29:31 +00:00
ar9300_freebsd.h
ar9300_gpio.c
ar9300_interrupts.c store the AR9300 interrupts away when doing interrupt debugging. 2014-07-26 21:32:03 +00:00
ar9300_jupiter10.ini
ar9300_jupiter20.ini
ar9300_keycache.c
ar9300_mci.c
ar9300_misc.c Disable TXCONT, it's not here in FreeBSD. 2013-05-01 01:50:33 +00:00
ar9300_osprey22_scoemu.ini
ar9300_osprey22.ini
ar9300_paprd.c
ar9300_phy.c
ar9300_power.c Only track the power state variable if the power state is changed, 2014-04-30 02:03:47 +00:00
ar9300_radar.c
ar9300_radio.c Re-enable the channel set code for the AR933x. 2013-06-26 04:46:43 +00:00
ar9300_raw_adc_capture.c
ar9300_recv_ds.c
ar9300_recv.c
ar9300_reset.c Work around some rather annoying chip hangs in the AR9331 chip. 2014-08-09 09:12:25 +00:00
ar9300_rtt.c
ar9300_sim.c
ar9300_sim.h
ar9300_spectral.c
ar9300_stub_funcs.c Return HAL_ANT_VARIABLE for now, until it's unstubbed. 2013-06-13 02:19:53 +00:00
ar9300_stub_funcs.h
ar9300_stub.c
ar9300_stub.h
ar9300_timer.c
ar9300_tx99_tgt.c
ar9300_txbf_cal.c
ar9300_txbf.c
ar9300_txbf.h
ar9300_xmit_ds.c
ar9300_xmit.c
ar9300.h
ar9300desc.h
ar9300eep.h
ar9300paprd.h
ar9300phy.h
ar9300radar.h
ar9300reg.h
ar9300template_ap121.h
ar9300template_aphrodite.h
ar9300template_cus157.h
ar9300template_generic.h
ar9300template_hb112.h
ar9300template_hb116.h
ar9300template_osprey_k31.h
ar9300template_wasp_2.h
ar9300template_wasp_k31.h
ar9300template_xb112.h
ar9300template_xb113.h
ar9330_11.ini
ar9330_12.ini
ar9340.ini
ar9485_1_1.ini
ar9485.ini
ar9580.ini
eeprom.diff
osprey_reg_map_macro.h
osprey_reg_map.h
poseidon_reg_map_macro.h
scorpion_reg_map_macro.h
scorpion_reg_map.h
sources
wasp_reg_map.h