From: Pradeep kumar Chitrapu <[email protected]>

Invalid rate code is sent to firmware when multicast rate value of 0 is
sent to driver indicating disabled case, causing broken mesh path.
so fix that.

Tested on QCA9984 with firmware 10.4-3.6.1-00827

Fixes: cd93b83ad92 ("ath10k: support for multicast rate control")
Co-developed-by: Zhi Chen <[email protected]>
Signed-off-by: Zhi Chen <[email protected]>
Signed-off-by: Pradeep Kumar Chitrapu <[email protected]>
---
 drivers/net/wireless/ath/ath10k/mac.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/drivers/net/wireless/ath/ath10k/mac.c 
b/drivers/net/wireless/ath/ath10k/mac.c
index 6771d8185af5..4546b73b2e45 100644
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -5486,8 +5486,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;
 
@@ -5674,7 +5674,11 @@ static void ath10k_bss_info_changed(struct ieee80211_hw 
*hw,
        if (changed & BSS_CHANGED_MCAST_RATE &&
            !WARN_ON(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;
-- 
1.9.1


_______________________________________________
ath10k mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/ath10k

Reply via email to