From: Rameshkumar Sundaram <rameshkumar.sundaram@xxxxxxxxxxxxxxxx> Mesh peers can have different puncture pattern. Currently, when associating with a mesh peer, the mesh peer's puncture pattern is not updated to the firmware. The puncturing bitmap should intersect when the mesh station has a different puncturing bitmap than the self mesh vdev punctured pattern. Update the mesh peer puncturing bitmap in WMI peer assoc command. Firmware will internally intersect peer assoc puncturing param with self mesh vdev puncture pattern and determine EHT PPDU Tx bandwidth for the peer. Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.4.1-00199-QCAHKSWPL_SILICONZ-1 Signed-off-by: Rameshkumar Sundaram <rameshkumar.sundaram@xxxxxxxxxxxxxxxx> Signed-off-by: Ramasamy Kaliappan <ramasamy.kaliappan@xxxxxxxxxxxxxxxx> --- drivers/net/wireless/ath/ath12k/mac.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/net/wireless/ath/ath12k/mac.c b/drivers/net/wireless/ath/ath12k/mac.c index 88b59f3ff87a..4ac3d4f350ea 100644 --- a/drivers/net/wireless/ath/ath12k/mac.c +++ b/drivers/net/wireless/ath/ath12k/mac.c @@ -3028,6 +3028,9 @@ static void ath12k_peer_assoc_h_eht(struct ath12k *ar, } arg->punct_bitmap = ~arvif->punct_bitmap; + if (ieee80211_vif_is_mesh(arvif->ahvif->vif) && sta->deflink.punctured) + arg->punct_bitmap = ~sta->deflink.punctured; + arg->eht_disable_mcs15 = link_conf->eht_disable_mcs15; } -- 2.34.1