platform_kernel-5.15/drivers/net/wireless
Felix Fietkau 70cf15335e ath9k: use AP beacon miss as a trigger for fast recalibration
When beacons get stuck in AP mode, the most likely cause is interference.
Such interference can often go on for a while, and too many consecutive
beacon misses can lead to connected clients getting dropped.

Since connected clients might not be subjected to the same interference
if that happens to be very local, the AP should try to deal with it as
good as it can. One way to do this is to trigger an NF calibration with
automatic baseband update right after the beacon miss. In my tests with
very strong interference, this allowed the AP to continue transmitting
beacons after only 2-3 misses, which allows a normal client to stay
connected.

With some of the newer - really sensitive - chips, the maximum noise
floor limit is very low, which can be problematic during very strong
interference. To avoid an endless loop of stuck beacons -> nfcal ->
periodic calibration -> stuck beacons, the beacon miss event also sets
a flag, which allows the calibration code to bypass the chip specific
maximum NF value. This flag is automatically cleared, as soon as the
first NF median goes back below the limits for all chains.

In my tests, this allowed an ath9k AP to survive very strong interference
(measured NF: -68, or sometimes even higher) without losing connectivity
to its clients. Even under these conditions, I was able to transmit
several mbits/s through the interface.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2010-08-16 15:26:39 -04:00
..
ath ath9k: use AP beacon miss as a trigger for fast recalibration 2010-08-16 15:26:39 -04:00
b43 b43: move hwrng registration driver to wireless core initialization 2010-08-16 14:39:48 -04:00
b43legacy b43legacy: update hw/fw version info in wiphy struct 2010-08-16 14:39:45 -04:00
hostap Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2010-08-04 15:31:02 -07:00
ipw2x00 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2010-08-16 14:40:44 -04:00
iwlwifi iwlwifi: track IBSS manager status 2010-08-16 15:26:38 -04:00
iwmc3200wifi iwm3200wifi: remove comparison to WIFI_IF_NTFY_MAX in iwm_ntf_wifi_if_wrapper 2010-08-16 14:39:48 -04:00
libertas libertas: better association request debugging 2010-08-16 15:26:36 -04:00
libertas_tf libertas_tf: if_usb.c: Some more formatting fixes 2010-08-16 15:26:37 -04:00
orinoco Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2010-08-04 11:47:58 -07:00
p54 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2010-08-16 14:40:44 -04:00
prism54 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem 2010-07-13 15:57:29 -04:00
rt2x00 rt2x00: do not shortcut rt2x00lib_config_antenna 2010-08-16 15:23:42 -04:00
rtl818x rtl8187: consolidate MSR writes in rtl8187_bss_info_changed 2010-08-16 14:39:47 -04:00
wl12xx wl1251: fix trigger scan timeout usage 2010-08-13 13:46:19 -04:00
zd1211rw zd1211rw: update fw version info in wiphy struct 2010-08-16 14:39:45 -04:00
Kconfig wireless: depends on NET 2010-05-10 14:56:49 -04:00
Makefile
adm8211.c drivers/net/wireless: Use wiphy_<level> 2010-07-27 15:14:13 -04:00
adm8211.h drivers/net: use __packed annotation 2010-06-03 03:18:23 -07:00
airo.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/holtmann/bluetooth-next-2.6 2010-07-27 11:59:19 -04:00
airo.h
airo_cs.c pcmcia: dev_node removal (drivers with updated printk call) 2010-05-10 10:23:15 +02:00
at76c50x-usb.c drivers/net/wireless/at76c50x-usb.c: Neaten macros 2010-07-27 15:14:13 -04:00
at76c50x-usb.h Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 2010-07-01 17:34:14 -07:00
atmel.c net: trans_start cleanups 2010-05-10 05:01:31 -07:00
atmel.h
atmel_cs.c pcmcia: dev_node removal (write-only drivers) 2010-05-10 10:23:14 +02:00
atmel_pci.c
mac80211_hwsim.c drivers/net/wireless: Use wiphy_<level> 2010-07-27 15:14:13 -04:00
mwl8k.c mwl8k: add get_survey callback in order to get channel noise 2010-07-29 12:46:45 -04:00
ray_cs.c wireless: use newly introduced hex_to_bin() 2010-07-23 12:50:51 -07:00
ray_cs.h pcmcia: dev_node removal (drivers with unregister_netdev check) 2010-05-10 10:23:16 +02:00
rayctl.h
rndis_wlan.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 2010-07-01 17:34:14 -07:00
wl3501.h drivers/net: use __packed annotation 2010-06-03 03:18:23 -07:00
wl3501_cs.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2010-05-20 21:04:44 -07:00
zd1201.c drivers/net: Remove unnecessary returns from void function()s 2010-05-14 00:19:28 -07:00
zd1201.h