]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/blobdiff - drivers/net/wireless/ath/ath10k/mac.c
Merge ath-next from git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
[mirror_ubuntu-jammy-kernel.git] / drivers / net / wireless / ath / ath10k / mac.c
index 9c703d287333e715349d818028f8db57cbd3dca0..b500fd427595a9d2773d55bf6db9297674f4f472 100644 (file)
@@ -1630,6 +1630,10 @@ static int ath10k_mac_setup_prb_tmpl(struct ath10k_vif *arvif)
        if (arvif->vdev_type != WMI_VDEV_TYPE_AP)
                return 0;
 
+        /* For mesh, probe response and beacon share the same template */
+       if (ieee80211_vif_is_mesh(vif))
+               return 0;
+
        prb = ieee80211_proberesp_get(hw, vif);
        if (!prb) {
                ath10k_warn(ar, "failed to get probe resp template from mac80211\n");
@@ -5588,8 +5592,8 @@ static void ath10k_bss_info_changed(struct ieee80211_hw *hw,
        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;
 
@@ -5776,7 +5780,11 @@ static void ath10k_bss_info_changed(struct ieee80211_hw *hw,
        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;