ath10k-ct: switch to version 5.2
[openwrt/staging/wigyori.git] / package / kernel / ath10k-ct / patches / 163-ath10k-fix-incorrect-multicast-broadcast-rate-settin.patch
index 2b550e76df7eb0e1cfd80f25ffb5b9561e7679ac..d4090e5673d3a571ccf8efb6d48d6f0881d4ce2d 100644 (file)
@@ -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;