[PATCH 1/2] wifi: ath11k: implement custom wake_tx_queue with flow control

Jose Ignacio Tornos Martinez jtornosm at redhat.com
Mon Jul 13 08:01:49 PDT 2026


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




More information about the ath11k mailing list