freebsd-dev/sys/contrib/dev/ath/ath_hal/ar9300
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
..
ar953x.ini
ar955x.ini
ar9300_aic.c
ar9300_ani.c [ath_hal_ar9300] Add some comments around the AR9300 ANI code. 2019-03-19 00:07:12 +00:00
ar9300_aphrodite10.ini
ar9300_attach.c
ar9300_beacon.c
ar9300_devid.h
ar9300_eeprom.c [ar9300] Disable unconditionally reducing transmit power in the case of FCC. 2020-05-11 05:53:12 +00:00
ar9300_freebsd_inc.h
ar9300_freebsd.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
ar9300_freebsd.h
ar9300_gpio.c
ar9300_interrupts.c
ar9300_jupiter10.ini
ar9300_jupiter20.ini
ar9300_keycache.c
ar9300_mci.c
ar9300_misc.c [ath_hal_ar9300] Add the missing bits from the previous HAL commit. 2019-03-06 08:52:02 +00:00
ar9300_osprey22_scoemu.ini
ar9300_osprey22.ini
ar9300_paprd.c
ar9300_phy.c [ar9300] Disable unconditionally reducing transmit power in the case of FCC. 2020-05-11 05:53:12 +00:00
ar9300_power.c
ar9300_radar.c
ar9300_radio.c
ar9300_raw_adc_capture.c
ar9300_recv_ds.c
ar9300_recv.c
ar9300_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
ar9300_rtt.c
ar9300_sim.c
ar9300_sim.h
ar9300_spectral.c
ar9300_stub_funcs.c [ath] [ath_hal] [ath_hal_9300] Extend the start PCU receive to handle resetting ANI. 2019-04-21 02:36:01 +00:00
ar9300_stub_funcs.h [ath] [ath_hal] [ath_hal_9300] Extend the start PCU receive to handle resetting ANI. 2019-04-21 02:36:01 +00:00
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 athhal: disable unused function (big endian only) 2019-08-21 10:42:31 +00:00
ar9300_xmit.c
ar9300.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
ar9300desc.h
ar9300eep.h [ath_hal] [ath_hal_ar9300] Fix endian macros to work in and out of kernel tree. 2020-05-12 02:20:27 +00:00
ar9300paprd.h
ar9300phy.h
ar9300radar.h
ar9300reg.h
ar9300template_ap121.h [ath_hal_ar9300] Ensure AH_BYTE_ORDER is defined before used. 2020-05-12 02:23:11 +00:00
ar9300template_aphrodite.h [ath_hal_ar9300] Ensure AH_BYTE_ORDER is defined before used. 2020-05-12 02:23:11 +00:00
ar9300template_cus157.h [ath_hal_ar9300] Ensure AH_BYTE_ORDER is defined before used. 2020-05-12 02:23:11 +00:00
ar9300template_generic.h [ath_hal_ar9300] Ensure AH_BYTE_ORDER is defined before used. 2020-05-12 02:23:11 +00:00
ar9300template_hb112.h [ath_hal_ar9300] Ensure AH_BYTE_ORDER is defined before used. 2020-05-12 02:23:11 +00:00
ar9300template_hb116.h [ath_hal_ar9300] Ensure AH_BYTE_ORDER is defined before used. 2020-05-12 02:23:11 +00:00
ar9300template_osprey_k31.h [ath_hal_ar9300] Ensure AH_BYTE_ORDER is defined before used. 2020-05-12 02:23:11 +00:00
ar9300template_wasp_2.h [ath_hal_ar9300] Ensure AH_BYTE_ORDER is defined before used. 2020-05-12 02:23:11 +00:00
ar9300template_wasp_k31.h
ar9300template_xb112.h [ath_hal_ar9300] Ensure AH_BYTE_ORDER is defined before used. 2020-05-12 02:23:11 +00:00
ar9300template_xb113.h [ath_hal_ar9300] Ensure AH_BYTE_ORDER is defined before used. 2020-05-12 02:23:11 +00:00
ar9330_11.ini
ar9330_12.ini
ar9340.ini
ar9462_2p0_initvals.h
ar9462_2p1_initvals.h
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