diff options
Diffstat (limited to 'package/kernel/ath10k-ct/patches/163-ath10k-fix-incorrect-multicast-broadcast-rate-settin.patch')
-rw-r--r-- | package/kernel/ath10k-ct/patches/163-ath10k-fix-incorrect-multicast-broadcast-rate-settin.patch | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/package/kernel/ath10k-ct/patches/163-ath10k-fix-incorrect-multicast-broadcast-rate-settin.patch b/package/kernel/ath10k-ct/patches/163-ath10k-fix-incorrect-multicast-broadcast-rate-settin.patch index 2b550e76df..d4090e5673 100644 --- a/package/kernel/ath10k-ct/patches/163-ath10k-fix-incorrect-multicast-broadcast-rate-settin.patch +++ b/package/kernel/ath10k-ct/patches/163-ath10k-fix-incorrect-multicast-broadcast-rate-settin.patch @@ -41,3 +41,29 @@ Origin: other, https://patchwork.kernel.org/patch/10723033/ if (ar->phy_capability & WHAL_WLAN_11A_CAPABILITY) rateidx += ATH10K_MAC_FIRST_OFDM_RATE_IDX; +--- a/ath10k-5.2/mac.c ++++ b/ath10k-5.2/mac.c +@@ -6518,8 +6518,8 @@ static void ath10k_bss_info_changed(stru + struct cfg80211_chan_def def; + u32 vdev_param, pdev_param, slottime, preamble; + u16 bitrate, hw_value; +- u8 rate, basic_rate_idx; +- int rateidx, ret = 0, hw_rate_code; ++ u8 rate, basic_rate_idx, rateidx; ++ int ret = 0, hw_rate_code, mcast_rate; + enum nl80211_band band; + const struct ieee80211_supported_band *sband; + +@@ -6706,7 +6706,11 @@ static void ath10k_bss_info_changed(stru + if (changed & BSS_CHANGED_MCAST_RATE && + !ath10k_mac_vif_chan(arvif->vif, &def)) { + band = def.chan->band; +- rateidx = vif->bss_conf.mcast_rate[band] - 1; ++ mcast_rate = vif->bss_conf.mcast_rate[band]; ++ if (mcast_rate > 0) ++ rateidx = mcast_rate - 1; ++ else ++ rateidx = ffs(vif->bss_conf.basic_rates) - 1; + + if (ar->phy_capability & WHAL_WLAN_11A_CAPABILITY) + rateidx += ATH10K_MAC_FIRST_OFDM_RATE_IDX; |