Re: [PATCH 1/2] wifi: ath11k: implement custom wake_tx_queue with flow control
Jose Ignacio Tornos Martinez <[email protected]> Mon, 13 Jul 2026 17:01:49 +0200
| Newsgroups | org.infradead.lists.ath11k,org.infradead.lists.ath12k,org.kernel.vger.linux-kernel,org.kernel.vger.linux-wireless |
|---|---|
| Message-ID | <[email protected]> |
Hi Zhi-Jun, Thank you for the review. > In wake_tx_queue: > ring_id = txq->ac % ar->ab->hw_params.hal_params->num_tx_rings; > >In ath11k_dp_tx which is called by ath11k_mac_op_tx: >ring_selector = ab->hw_params.hw_ops->get_ring_selector(skb); > ti.ring_id = ring_selector % num_tx_rings; > > Are you sure ring_id will be the same? You're right — txq->ac % num_tx_rings doesn't match get_ring_selector(skb) % num_tx_rings on all platforms. In v1 the ring identification was only correct for platforms where the ring selector happens to coincide with the AC, but not for platforms. I will send a v2 trying to solve this globally for all the platforms. > Also mgmt frames use a different path. Correct — management frames go through WMI, not the TCL data rings, so they are not affected. The flow control applies to data frames, which are the ones causing the problem since they use different TCL rings depending on the platform's ring selector. Best regards, Jose Ignacio