[lvc-project] [PATCH rtw-next v5 08/10] wifi: rtw89: handle IEEE80211_TX_CTL_REQ_TX_STATUS frames for USB
Ping-Ke Shih
pkshih at realtek.com
Wed Nov 5 04:06:26 MSK 2025
Fedor Pchelkin <pchelkin at ispras.ru> wrote:
> Frames flagged with IEEE80211_TX_CTL_REQ_TX_STATUS mean the driver has to
> report to mac80211 stack whether AP sent ACK for the null frame/probe
> request or not. It's not implemented in USB part of the driver yet.
>
> PCIe HCI has its own way of getting TX status incorporated into RPP
> feature, and it's always enabled there. Other HCIs need a different
> scheme based on processing C2H messages.
>
> Thus define a .tx_rpt_enabled flag indicating which HCIs need to enable a
> TX report feature. Currently it is USB only.
>
> Toggle a bit in the TX descriptor and place flagged skbs in a fix-sized
> queue to wait for a message from the firmware. Firmware maintains a 4-bit
> sequence number for required frames hence the queue can contain just 16
> elements simultaneously. That's enough for normal driver / firmware
> communication. If the firmware crashes for any reason and doesn't provide
> TX reports in time, driver will handle this and report the obsolete frames
> as dropped.
>
> rtw89 also has a new feature providing a TX report for each transmission
> attempt. Ignore a failed TX status reported by the firmware until retry
> limit is reached or successful status appears. When there is no success
> and the retry limit is reached, report the frame up to the wireless stack
> as failed eventually.
>
> HCI reset should stop all pending TX activity so forcefully flush the
> queue there.
>
> Found by Linux Verification Center (linuxtesting.org).
>
> Signed-off-by: Fedor Pchelkin <pchelkin at ispras.ru>
Acked-by: Ping-Ke Shih <pkshih at realtek.com>
More information about the lvc-project
mailing list