implement qwx(4) monitor status ring polling
authorstsp <stsp@openbsd.org>
Sat, 2 Mar 2024 15:18:57 +0000 (15:18 +0000)
committerstsp <stsp@openbsd.org>
Sat, 2 Mar 2024 15:18:57 +0000 (15:18 +0000)
commit59a2c127331e63a8eac5b4dd746b0cb6c43b696f
treeaa9541822889548e621e94e3c0710cebf1f4b87d
parenteb032f6eb3c8d742928ed9cb47d8d94305c437d6
implement qwx(4) monitor status ring polling

On QCNFA765 the monitor status ring does not trigger any interrupts.
Unless the driver keeps polling this ring from a timer the device
will eventually lock up if this ring is enabled.

Even though we're not using this ring yet, add the tiny bits of code
required to poll it so that the next person who enables this code
won't have to waste time figuring out why the device stops working.

The monitor status ring provides details about received frames in special
TLV-format packets which the driver can parse and update statistics with.
Interesting info includes per-frame RSSI. Which we already learn from
beacons, so we don't need to enable an entire extra ring just for that.

Another reason to keep this disabled is that it triggers mbuf corruption
for reasons I haven't been able to figure out. Help welcome.
sys/dev/ic/qwx.c
sys/dev/ic/qwxvar.h