Re: [PATCH rtw-next v3] wifi: rtw88: usb: route bmc frames via the high queue only for DTIM delivery
Mehmet Fide <[email protected]>
| Newsgroups | org.kernel.vger.linux-wireless,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
From: Mehmet Fide <[email protected]> Hello Ping-Ke, One more data point that may be useful for the firmware side, separate from this patch. While comparing against the vendor driver I noticed a difference in how MORE_DATA is terminated. rtw88 sets the bit on every high queue frame (rtw_tx_fill_tx_desc(): more_data = qsel == TX_DESC_QSEL_HIGH), including the last one. The vendor driver releases the high queue as an explicit batch and sets mdata = 1 on all frames of the batch except the final one, which carries 0 (chk_bmc_sleepq_hdl() in core/rtw_mlme_ext.c of the 88x2bu source). On both RTL8822BU and RTL8821CU I measured the high queue draining at roughly 3 frames per DTIM with BIT_TCR_UPDATE_HGQMD set, instead of the whole buffered burst, so the burst fetch of 076f786a0ae1 does not seem to engage on these chips. A never-terminated MORE_DATA chain is my best guess for why, but that is a guess; whether the hardware needs the 0 to conclude a burst is something only the firmware documentation can answer. Thanks, Mehmet