sys/qwz: reclaim incomplete RX batches
Process and replenish reaped buffers even when the batch contains no
complete MSDU. Error only and incomplete bacthes must not leave buffers
or descriptors on temporary lists.
OK: stsp@
sys/qwz: retain unused RX descriptors
Draw RX descriptors from the free list only when the caller supplies
none. Return unused descriptors on every refill exit, including
allocation failures and a full ring. This fixes qwz-specific ownership.
OK: stsp@
sys/qwz: reuse RDDM buffers
Based on sys/dev/pci/if_qwx_pci.c,v 1.31
Reuse the RDDM data and vector buffers on repeated MHI starts to avoid
leaking their allocations. Reprogram the BHIE RX vector after startup
clears its registers; returning early would leave them unset.
OK: stsp@
revert changing some busy waits to tsleep
landry's ThinkPad T470s (Kaby Lake) with external HDMI monitor could
no longer run X, stuck in a loop of:
'modeset(0): hotplug event: connector 106's link-state is BAD'
On Qualcomm X2 SoCs we need to explicitly configure the DBI
and ATU register windows in the PARF wrapper, otherwise they
are silently ignored.
This fixes a timeout in dwpcie_atu_config and makes the NVME
attach on my HP Elitebook X G2q.
ok kettenis@ patrick@
qwx: fall back to world channels if the regulatory event fails
If the first regulatory channel list event cannot be processed, qwx
attaches with an empty channel list and cannot scan. Populate the
ath11k world channel set in that case. Unlike qwz, keep channels an
earlier event configured, and leave ieee80211_channel_init() to
qwx_init() as before.
From qwz 6f139a5bd.
OK stsp@
qwx: parse the regulatory ext channel list event
Replace the stub with the 2 GHz/5 GHz part of ath11k's parser. 6 GHz
rules, including any the firmware appends to the 5 GHz list, are
ignored. Firmware only sends this event if the host advertises
WMI_CFG_HOST_SERVICE_FLAG_REG_CC_EXT, which qwx does not do yet.
From qwz 901b347bb.
OK stsp@