opnsense-src/sys/dev/ath/ath_hal/ar5416
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
..
ar2133.c [ath] [ath_rate] Extend ath_rate_sample to better handle 11n rates and aggregates. 2020-05-15 18:51:20 +00:00
ar5416.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
ar5416.ini
ar5416_ani.c [ath_hal] Don't do ANI processing if we've reset. 2018-06-08 18:15:23 +00:00
ar5416_attach.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
ar5416_beacon.c SPDX: license IDs for some ISC-related files. 2017-12-08 15:57:29 +00:00
ar5416_btcoex.c SPDX: license IDs for some ISC-related files. 2017-12-08 15:57:29 +00:00
ar5416_btcoex.h SPDX: license IDs for some ISC-related files. 2017-12-08 15:57:29 +00:00
ar5416_cal.c [ath_hal] Return failure if noise floor calibration fails. 2018-06-08 18:21:57 +00:00
ar5416_cal.h SPDX: license IDs for some ISC-related files. 2017-12-08 15:57:29 +00:00
ar5416_cal_adcdc.c SPDX: license IDs for some ISC-related files. 2017-12-08 15:57:29 +00:00
ar5416_cal_adcgain.c SPDX: license IDs for some ISC-related files. 2017-12-08 15:57:29 +00:00
ar5416_cal_iq.c SPDX: license IDs for some ISC-related files. 2017-12-08 15:57:29 +00:00
ar5416_eeprom.c SPDX: license IDs for some ISC-related files. 2017-12-08 15:57:29 +00:00
ar5416_gpio.c SPDX: license IDs for some ISC-related files. 2017-12-08 15:57:29 +00:00
ar5416_interrupts.c SPDX: license IDs for some ISC-related files. 2017-12-08 15:57:29 +00:00
ar5416_keycache.c SPDX: license IDs for some ISC-related files. 2017-12-08 15:57:29 +00:00
ar5416_misc.c SPDX: license IDs for some ISC-related files. 2017-12-08 15:57:29 +00:00
ar5416_phy.c SPDX: license IDs for some ISC-related files. 2017-12-08 15:57:29 +00:00
ar5416_power.c SPDX: license IDs for some ISC-related files. 2017-12-08 15:57:29 +00:00
ar5416_radar.c SPDX: license IDs for some ISC-related files. 2017-12-08 15:57:29 +00:00
ar5416_recv.c [ath] [ath_hal] [ath_hal_9300] Extend the start PCU receive to handle resetting ANI. 2019-04-21 02:36:01 +00:00
ar5416_reset.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
ar5416_spectral.c SPDX: license IDs for some ISC-related files. 2017-12-08 15:57:29 +00:00
ar5416_xmit.c SPDX: license IDs for some ISC-related files. 2017-12-08 15:57:29 +00:00
ar5416desc.h SPDX: license IDs for some ISC-related files. 2017-12-08 15:57:29 +00:00
ar5416phy.h SPDX: license IDs for some ISC-related files. 2017-12-08 15:57:29 +00:00
ar5416reg.h SPDX: license IDs for some ISC-related files. 2017-12-08 15:57:29 +00:00