freebsd-src/sys/dev/ath
Adrian Chadd 8c01c3dc46 [ath] [ath_hal] Propagate the HAL_RESET_TYPE through to the chip reset; set it during ath_reset()
Although I added the reset type field to ath_hal_reset() years ago,
I never finished adding it both throughout the HALs and in if_ath.c.

This will eventually deprecate the ath_hal force_full_reset option
because it can be requested at the driver layer.

So:

* Teach ar5416ChipReset() and ar9300_chip_reset() about the HAL type
* Use it in ar5416Reset() and ar9300_reset() when doing a full chip reset
* Extend ath_reset() to include the HAL_RESET_TYPE parameter added in the above functions
* Use HAL_RESET_NORMAL in most calls to ath_reset()
* .. but use HAL_RESET_BBPANIC for the BB panics, and HAL_RESET_FORCE_COLD during fatal, beacon miss and other hardware related hangs.

This should be a glorified no-op outside of actual hardware issues.
I've tested things with ath_hal force_full_reset set to 1 for years now,
so I know that feature and a full reset works (albeit much slower than
a warm reset!) and it does unwedge hardware.

The eventual aim is to use this for all the places where the driver
detects a potential hang as well as if long calibration - ie, noise floor
calibration - fails to complete. That's one of the big hardware related
things that causes station mode operation to hang without easy recovery.

Differential Revision:	https://reviews.freebsd.org/D24981
2020-05-25 22:31:45 +00:00
..
ath_dfs/null
ath_hal [ath] [ath_hal] Propagate the HAL_RESET_TYPE through to the chip reset; set it during ath_reset() 2020-05-25 22:31:45 +00:00
ath_rate [ath_rate_sample] Obey the maximum frame length even when using static rates. 2020-05-21 03:53:45 +00:00
ah_osdep.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (7 of many) 2020-02-21 16:32:17 +00:00
ah_osdep.h
ah_osdep_ar5210.c
ah_osdep_ar5211.c
ah_osdep_ar5212.c
ah_osdep_ar5416.c
ah_osdep_ar9300.c
if_ath.c [ath] [ath_hal] Propagate the HAL_RESET_TYPE through to the chip reset; set it during ath_reset() 2020-05-25 22:31:45 +00:00
if_ath_ahb.c
if_ath_alq.c
if_ath_alq.h
if_ath_beacon.c
if_ath_beacon.h
if_ath_btcoex.c
if_ath_btcoex.h
if_ath_btcoex_mci.c
if_ath_btcoex_mci.h
if_ath_debug.c
if_ath_debug.h
if_ath_descdma.c
if_ath_descdma.h
if_ath_dfs.c
if_ath_drv.c
if_ath_ioctl.c
if_ath_ioctl.h
if_ath_keycache.c
if_ath_keycache.h
if_ath_led.c
if_ath_led.h
if_ath_lna_div.c
if_ath_lna_div.h
if_ath_misc.h [ath] [ath_hal] Propagate the HAL_RESET_TYPE through to the chip reset; set it during ath_reset() 2020-05-25 22:31:45 +00:00
if_ath_pci.c
if_ath_pci_devlist.h
if_ath_rate.c
if_ath_rx.c [ath] Attempt to fix epoch handling. 2020-02-20 07:12:43 +00:00
if_ath_rx.h
if_ath_rx_edma.c [ath] Hopefully recover better-er upon RX restart on AR9380. 2020-05-21 04:35:12 +00:00
if_ath_rx_edma.h
if_ath_spectral.c
if_ath_spectral.h
if_ath_sysctl.c [ath] [ath_hal] Propagate the HAL_RESET_TYPE through to the chip reset; set it during ath_reset() 2020-05-25 22:31:45 +00:00
if_ath_sysctl.h
if_ath_tdma.c
if_ath_tdma.h
if_ath_tsf.h
if_ath_tx.c [ath] reset hardware if this particular mac bug is seen. 2020-05-21 04:26:20 +00:00
if_ath_tx.h
if_ath_tx_edma.c
if_ath_tx_edma.h
if_ath_tx_ht.c [ath] [ath_rate] Extend ath_rate_sample to better handle 11n rates and aggregates. 2020-05-15 18:51:20 +00:00
if_ath_tx_ht.h
if_athdfs.h
if_athioctl.h
if_athrate.h [ath_rate_sample] Limit the tx schedules for A-MPDU ; don't take short retries 2020-05-16 05:07:45 +00:00
if_athvar.h [ath] [ath_rate] Extend ath_rate_sample to better handle 11n rates and aggregates. 2020-05-15 18:51:20 +00:00