Fix and re-enable active scans on iwm(4) and iwx(4).
authorstsp <stsp@openbsd.org>
Fri, 21 Jan 2022 15:51:02 +0000 (15:51 +0000)
committerstsp <stsp@openbsd.org>
Fri, 21 Jan 2022 15:51:02 +0000 (15:51 +0000)
commit7b7ad45c6eb1f81fda7b875a3e190e53cf2d4bd2
treeef740d7b62e589693cdd461c8b407ec47eb2a570
parentd034d8d4156422258cd2aa71d6c16a7da272fd35
Fix and re-enable active scans on iwm(4) and iwx(4).

Ensure that we supply the access point's DTIM period to firmware after
an active scan, as soon as the next beacon arrives. This prevents the
problems which prompted us to keep active scans disabled in our drivers.

Problem debugged and patch by zxystd from the OpenIntelWireless project.
I made some tweaks regarding TIM parsing, which were reviewed by zxystd.

Johannes Berg from Intel has confirmed to me via IRC that firmware
will misbehave if running with a zero DTIM period.

Tested:
8265: jca, stsp
9260: kettenis (possible fallout observed here; will keep an eye on it)
9650: stsp
ax200: zxystd, kevlo, stsp
ax201: stsp

ok kevlo@ kettenis@
sys/dev/pci/if_iwm.c
sys/dev/pci/if_iwx.c
sys/net80211/ieee80211_input.c
sys/net80211/ieee80211_var.h