RE: [PATCH rtw-next v2] wifi: rtw88: pci: wake the TX queues when the rings are reset
From: Ping-Ke Shih
Date: Tue Oct 13 2026 - 21:52:37 EST
Abdurrahman Karadag <abdurrahmankaradag19@xxxxxxxxx> wrote:
> I also left ring->queue_stopped alone. It stays set until the first
> completion after the restart, which clears it, and rtw_pci_tx_write()
> does not read it before stopping a queue, so a stale value costs nothing.
> I can clear it in rtw_pci_reset_trx_ring() if you would rather the driver
> state did not claim a stop that is gone.
I re-think ring->queue_stopped and restart work. I feel the flow should be
1. fw/hw asked to restart -> rtw_fw_recovery_work() -> __fw_recovery_work()
2. __fw_recovery_work()
2.1. I think here should call ieee80211_stop_queues() to stop all TX queues
2.2. __fw_recovery_work() resets most driver states, but doesn't reset ring->queue_stopped.
I think we can reset it (but not call ieee80211_wake_queues() if restarting) by
rtw_pci_stop() -> rtw_pci_dma_release()
3. rtw_reconfig_complete()
call ieee80211_wake_queues() as you did in v3.
I'll discuss above flow internally, and give back to you.
Ping-Ke