summaryrefslogtreecommitdiff
path: root/rust/kernel/alloc/kvec/git@git.tavy.me:linux.git
diff options
context:
space:
mode:
authorFedor Pchelkin <pchelkin@ispras.ru>2025-11-04 16:57:15 +0300
committerPing-Ke Shih <pkshih@realtek.com>2025-11-06 14:32:14 +0800
commit816e849ef83aaf989035545d4a927b50a3d03525 (patch)
treebf7ece9a718e740ef45a63fbd3134a9fd0636597 /rust/kernel/alloc/kvec/git@git.tavy.me:linux.git
parent26a42d804aa89f6e62be68126114a4b62a8fe713 (diff)
wifi: rtw89: handle IEEE80211_TX_CTL_REQ_TX_STATUS frames for USB
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@ispras.ru> Acked-by: Ping-Ke Shih <pkshih@realtek.com> Signed-off-by: Ping-Ke Shih <pkshih@realtek.com> Link: https://patch.msgid.link/20251104135720.321110-9-pchelkin@ispras.ru
Diffstat (limited to 'rust/kernel/alloc/kvec/git@git.tavy.me:linux.git')
0 files changed, 0 insertions, 0 deletions