8c01c3dc46
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 |
||
---|---|---|
.. | ||
ar953x.ini | ||
ar955x.ini | ||
ar9300_aic.c | ||
ar9300_ani.c | ||
ar9300_aphrodite10.ini | ||
ar9300_attach.c | ||
ar9300_beacon.c | ||
ar9300_devid.h | ||
ar9300_eeprom.c | ||
ar9300_freebsd_inc.h | ||
ar9300_freebsd.c | ||
ar9300_freebsd.h | ||
ar9300_gpio.c | ||
ar9300_interrupts.c | ||
ar9300_jupiter10.ini | ||
ar9300_jupiter20.ini | ||
ar9300_keycache.c | ||
ar9300_mci.c | ||
ar9300_misc.c | ||
ar9300_osprey22_scoemu.ini | ||
ar9300_osprey22.ini | ||
ar9300_paprd.c | ||
ar9300_phy.c | ||
ar9300_power.c | ||
ar9300_radar.c | ||
ar9300_radio.c | ||
ar9300_raw_adc_capture.c | ||
ar9300_recv_ds.c | ||
ar9300_recv.c | ||
ar9300_reset.c | ||
ar9300_rtt.c | ||
ar9300_sim.c | ||
ar9300_sim.h | ||
ar9300_spectral.c | ||
ar9300_stub_funcs.c | ||
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 | ||
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 |