Re: [PATCH rtw-next v2 0/7] wifi: rtw89: improvements for USB part

Bitterblue Smith
2025-10-11T22:49:58Z

On 11/10/2025 17:57, Fedor Pchelkin wrote:
> On Sat, 04. Oct 20:37, Bitterblue Smith wrote:
>> I tested these patches with RTL8851BU, RTL8832AU, RTL8832BU, RTL8832CU, and
>> RTL8912AU. They all work, with a few additions.
>>
>> Before these patches RTL8851BU and RTL8832AU would remain "connected" when
>> I power off the router. That's because they don't have beacon filtering in
>> the firmware and the null frames sent by mac80211 were always marked with
>> IEEE80211_TX_STAT_ACK. With these patches they disconnect immediately when
>> I power off the router. So that works nicely.
>>
>
> Glad to hear, thanks for the insight.
>
>> What doesn't work is TX reports for management frames. Currently rtw89
>> doesn't configure the firmware to provide TX reports for the management
>> queue. That can be enabled with SET_CMC_TBL_MGQ_RPT_EN for the wifi 6 chips
>> and with CCTLINFO_G7_W0_MGQ_RPT_EN for RTL8922AU.
>
> I'll investigate. Looks like the enabling of the management part should go
> to rtw89_fw_h2c_default_cmac_tbl().
>

Yes, and rtw89_fw_h2c_default_cmac_tbl_g7().

> Btw, could you give a quick hint please on how I can check during testing
> that the reporting facility works properly for all cases needed? By far
> I've dealt with iw utility and debugging printks incorporated into rtw89
> but it doesn't look sufficient anymore..
>

I enabled RTW89_DBG_TXRX, which let me see that no TX reports appeared
during authentication and association. I also added a printk where the
IEEE80211_TX_CTL_REQ_TX_STATUS flag is checked. Then I just use the
driver normally, with wpa_supplicant and NetworkManager.

>>
>> The other thing that doesn't work is the TX reports are different for
>> RTL8852CU and RTL8922AU. It's only a small difference for RTL8852CU:
>>
>> #define RTW89_C2H_MAC_TX_RPT_W5_DATA_TX_CNT_V1 GENMASK(15, 10)
>>
>> RTL8922AU is more strange. It needs something like this:
>>
>> #define RTW89_C2H_MAC_TX_RPT_W12_TX_STATE_V2 GENMASK(9, 8)
>> #define RTW89_C2H_MAC_TX_RPT_W12_SW_DEFINE_V2 GENMASK(15, 12)
>> #define RTW89_C2H_MAC_TX_RPT_W14_DATA_TX_CNT_V2 GENMASK(15, 10)
>>
>> The C2H is 80 bytes here (header included).
>
> rtw89_mac_c2h_tx_rpt() needs to account for different types of C2H report
> formats, bah. Will add this missing part.