]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
[ath] force wake the hardware if we see a missed beacon.
authoradrian <adrian@FreeBSD.org>
Mon, 28 Nov 2016 17:54:29 +0000 (17:54 +0000)
committeradrian <adrian@FreeBSD.org>
Mon, 28 Nov 2016 17:54:29 +0000 (17:54 +0000)
commit32e9fe16bcd28bf2891213a8fc2d1f22daf4341b
treea434077298a80e880f0a843c753f37b4d8300ada
parent1a7aa9274597113a05b71ae8f29ffe11770d410e
[ath] force wake the hardware if we see a missed beacon.

This adds a workaround to incorrectly behaving APs (ie, FreeBSD APs) which
don't beacon out exactly when they should (at TBTT multiples of beacon
intervals.)

It forces the hardware awake (but leaves it in network-sleep so self
generated frames still state that the hardware is asleep!) and will
remain awake until the next sleep transition driven by net80211.

That way if the beacons are just at the wrong interval, we get a much
better chance of hearing more consecutive beacons before we go to sleep,
thus not constantly disconnecting.

Tested:

* AR9485, STA mode, against a misbehaving FreeBSD AP.
sys/dev/ath/if_ath.c
sys/dev/ath/if_ath_misc.h