[PATCH ath-next 1/2] wifi: ath12k: Fix HE BA mode configuration for AP mode
Rameshkumar Sundaram
rameshkumar.sundaram at oss.qualcomm.com
Thu Nov 5 20:57:42 PST 2026
WMI_VDEV_PARAM_BA_MODE is currently configured inside the he_oper.params
check. However, mac80211 does not populate he_oper.params for AP mode,
causing the BA mode configuration to be skipped for HE AP operation.
Move the BA mode configuration outside the he_oper.params check so that
it is applied whenever HE support is enabled.
Without this change, firmware defaults to a BA buffer size of 64
(legacy mode) for HE associations.
Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.6-01243-QCAHKSWPL_SILICONZ-1
Fixes: d889913205cf ("wifi: ath12k: driver for Qualcomm Wi-Fi 7 devices")
Signed-off-by: Rameshkumar Sundaram <rameshkumar.sundaram at oss.qualcomm.com>
---
drivers/net/wireless/ath/ath12k/mac.c | 27 +++++++++++++++------------
1 file changed, 15 insertions(+), 12 deletions(-)
diff --git a/drivers/net/wireless/ath/ath12k/mac.c b/drivers/net/wireless/ath/ath12k/mac.c
index 4f16c78b52a8..711acb32a6ca 100644
--- a/drivers/net/wireless/ath/ath12k/mac.c
+++ b/drivers/net/wireless/ath/ath12k/mac.c
@@ -4888,8 +4888,7 @@ static void ath12k_mac_bss_info_changed(struct ath12k *ar,
}
ath12k_control_beaconing(arvif, info);
- if (arvif->is_up && info->he_support &&
- info->he_oper.params) {
+ if (arvif->is_up && info->he_support) {
/* TODO: Extend to support 1024 BA Bitmap size */
ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id,
WMI_VDEV_PARAM_BA_MODE,
@@ -4899,17 +4898,21 @@ static void ath12k_mac_bss_info_changed(struct ath12k *ar,
"failed to set BA BUFFER SIZE 256 for vdev: %d\n",
arvif->vdev_id);
- param_id = WMI_VDEV_PARAM_HEOPS_0_31;
- param_value = info->he_oper.params;
- ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id,
- param_id, param_value);
- ath12k_dbg(ar->ab, ATH12K_DBG_MAC,
- "he oper param: %x set for VDEV: %d\n",
- param_value, arvif->vdev_id);
+ if (info->he_oper.params) {
+ param_id = WMI_VDEV_PARAM_HEOPS_0_31;
+ param_value = info->he_oper.params;
- if (ret)
- ath12k_warn(ar->ab, "Failed to set he oper params %x for VDEV %d: %i\n",
- param_value, arvif->vdev_id, ret);
+ ret = ath12k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id,
+ param_id,
+ param_value);
+ ath12k_dbg(ar->ab, ATH12K_DBG_MAC,
+ "he oper param: %x set for VDEV: %d\n",
+ param_value, arvif->vdev_id);
+
+ if (ret)
+ ath12k_warn(ar->ab, "Failed to set he oper params %x for VDEV %d: %i\n",
+ param_value, arvif->vdev_id, ret);
+ }
}
}
--
2.34.1
More information about the ath12k
mailing list