[PATCH ath-next V16 2/2] wifi: ath12k: fix TX and RX MCS rate configurations in HE mode
Baochen Qiang
baochen.qiang at oss.qualcomm.com
Thu Oct 9 00:52:35 PDT 2025
On 10/2/2025 8:07 AM, Pradeep Kumar Chitrapu wrote:
> Currently, the TX and RX MCS rate configurations per peer are
> reversed when sent to the firmware. As a result, RX MCS rates
> are configured for TX, and vice versa. This commit rectifies
> the configuration to match what the firmware expects.
>
> Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1
>
> Fixes: d889913205cf ("wifi: ath12k: driver for Qualcomm Wi-Fi 7 devices")
> Signed-off-by: Pradeep Kumar Chitrapu <quic_pradeepc at quicinc.com>
> ---
> drivers/net/wireless/ath/ath12k/mac.c | 5 ++---
> 1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/wireless/ath/ath12k/mac.c b/drivers/net/wireless/ath/ath12k/mac.c
> index 0d425a1bc0ab..19be450b42ff 100644
> --- a/drivers/net/wireless/ath/ath12k/mac.c
> +++ b/drivers/net/wireless/ath/ath12k/mac.c
> @@ -2624,9 +2624,8 @@ static void ath12k_peer_assoc_h_he(struct ath12k *ar,
> switch (link_sta->bandwidth) {
> case IEEE80211_STA_RX_BW_160:
> v = le16_to_cpu(he_cap->he_mcs_nss_supp.rx_mcs_160);
> - arg->peer_he_rx_mcs_set[WMI_HECAP_TXRX_MCS_NSS_IDX_160] = v;
> -
> v = ath12k_peer_assoc_h_he_limit(v, he_mcs_mask);
> + arg->peer_he_rx_mcs_set[WMI_HECAP_TXRX_MCS_NSS_IDX_160] = v;
missing recalculation of v for TX MCS 160 before assignment to
arg->peer_he_tx_mcs_set[WMI_HECAP_TXRX_MCS_NSS_IDX_160]:
v = le16_to_cpu(he_cap->he_mcs_nss_supp.tx_mcs_160);
> arg->peer_he_tx_mcs_set[WMI_HECAP_TXRX_MCS_NSS_IDX_160] = v;
>
> arg->peer_he_mcs_count++;
> @@ -2636,10 +2635,10 @@ static void ath12k_peer_assoc_h_he(struct ath12k *ar,
>
> default:
> v = le16_to_cpu(he_cap->he_mcs_nss_supp.rx_mcs_80);
> + v = ath12k_peer_assoc_h_he_limit(v, he_mcs_mask);
> arg->peer_he_rx_mcs_set[WMI_HECAP_TXRX_MCS_NSS_IDX_80] = v;
>
> v = le16_to_cpu(he_cap->he_mcs_nss_supp.tx_mcs_80);
> - v = ath12k_peer_assoc_h_he_limit(v, he_mcs_mask);
> arg->peer_he_tx_mcs_set[WMI_HECAP_TXRX_MCS_NSS_IDX_80] = v;
>
> arg->peer_he_mcs_count++;
More information about the ath12k
mailing list