freebsd-dev/sys/dev/ath/ath_hal/ar5416
Adrian Chadd a8083b9c0b [ath] [ath_hal] [ath_hal_9300] Extend the start PCU receive to handle resetting ANI.
One of the fun issues with scanning has been how the existing
ANI values were programmed into the hardware when channels were
changed.  If you're on a really crappy channel and ANI has made
you deaf then when you scan you continue to be deaf on all channels.

This code passes in a flag to startpcureceive which in AR5416 and later
is also used to enable ANI.  This allows it to know if it's a normal
operation or a scan operation.

This fixes my situation at home where a temporary spot of a device
going deaf due to interference starts scanning and .. can't hear
anything until I restart.

Now, this isn't the full fix - ideally:

(a) all the ANI config and per-channel information would be migrated
     to the shared HAL stuff and enabled for all of the NICs;
(b) when a station reassociates and some other error conditions
    (like missed beacons, NF calibration failures, etc) a knob
    to reset ANI parameters would likely help recovery.

But hey, I'm committing bits of code again! woo!

Tested:

* AR9344 (2G), STA operation
2019-04-21 02:36:01 +00:00
..
ar2133.c
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
ar5416_beacon.c
ar5416_btcoex.c
ar5416_btcoex.h
ar5416_cal_adcdc.c
ar5416_cal_adcgain.c
ar5416_cal_iq.c
ar5416_cal.c [ath_hal] Return failure if noise floor calibration fails. 2018-06-08 18:21:57 +00:00
ar5416_cal.h
ar5416_eeprom.c
ar5416_gpio.c
ar5416_interrupts.c
ar5416_keycache.c
ar5416_misc.c
ar5416_phy.c
ar5416_power.c
ar5416_radar.c
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
ar5416_spectral.c
ar5416_xmit.c
ar5416.h [ath] [ath_hal] [ath_hal_9300] Extend the start PCU receive to handle resetting ANI. 2019-04-21 02:36:01 +00:00
ar5416.ini
ar5416desc.h
ar5416phy.h
ar5416reg.h