On 9/18/2024 2:20 PM, Pradeep Kumar Chitrapu wrote: ... > @@ -8323,15 +8808,27 @@ ath12k_mac_op_set_bitrate_mask(struct ieee80211_hw *hw, > ieee80211_iterate_stations_atomic(hw, > ath12k_mac_disable_peer_fixed_rate, > arvif); > - } else if (ath12k_mac_bitrate_mask_get_single_nss(ar, band, mask, > + } else if (ath12k_mac_bitrate_mask_get_single_nss(ar, vif, band, mask, > &single_nss)) { > rate = WMI_FIXED_RATE_NONE; > nss = single_nss; > + mutex_lock(&ar->conf_mutex); > + arvif->bitrate_mask = *mask; > + ieee80211_iterate_stations_atomic(hw, > + ath12k_mac_set_bitrate_mask_iter, > + arvif); > + mutex_unlock(&ar->conf_mutex); > } else { > rate = WMI_FIXED_RATE_NONE; > - nss = min_t(u32, ar->num_tx_chains, > - max(ath12k_mac_max_ht_nss(ht_mcs_mask), > - ath12k_mac_max_vht_nss(vht_mcs_mask))); > + > + if (!ath12k_mac_validate_vht_he_fixed_rate_settings(ar, band, mask)) > + ath12k_warn(ar->ab, > + "could not update fixed rate settings to all peers due to mcs/nss incompatiblity\n"); checkpatch says: WARNING:TYPO_SPELLING: 'incompatiblity' may be misspelled - perhaps 'incompatibility'? > + > + mac_nss = max3(ath12k_mac_max_ht_nss(ht_mcs_mask), > + ath12k_mac_max_vht_nss(vht_mcs_mask), > + ath12k_mac_max_he_nss(he_mcs_mask)); > + nss = min_t(u32, ar->num_tx_chains, mac_nss); > > /* If multiple rates across different preambles are given > * we can reconfigure this info with all peers using PEER_ASSOC