mwifiex: do not update MCS set from hostapd
authorGanapathi Bhat <gbhat@marvell.com>
Wed, 28 Jun 2017 06:56:58 +0000 (12:26 +0530)
committerBen Hutchings <ben@decadent.org.uk>
Thu, 12 Oct 2017 14:27:58 +0000 (15:27 +0100)
commit 8a063a27815a759b99ad710402da1ccd1b0987f7 upstream.

We should not copy the MCS set from hostapd RX-STBC. We
have to just use the MCS set supported by the hardware.
This fixes an issue, where mwifiex is advertising wrong
MCS sets in beacons.

Fixes: 474a41e94dfc ("mwifiex: update MCS set as per RX-STBC bit from hostapd")
Signed-off-by: Ganapathi Bhat <gbhat@marvell.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
[bwh: Backported to 3.16:
 - Deleted code is slightly different
 - Adjust filename]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
drivers/net/wireless/mwifiex/fw.h
drivers/net/wireless/mwifiex/uap_cmd.c

index 3175dd04834b9960698c67e750fc3d8928075088..f58c6f1fba0c9c1bd290240ab4e05e462711b625 100644 (file)
@@ -203,11 +203,6 @@ enum MWIFIEX_802_11_PRIVACY_FILTER {
 
 #define MWIFIEX_DEF_AMPDU      IEEE80211_HT_AMPDU_PARM_FACTOR
 
-#define GET_RXSTBC(x) (x & IEEE80211_HT_CAP_RX_STBC)
-#define MWIFIEX_RX_STBC1       0x0100
-#define MWIFIEX_RX_STBC12      0x0200
-#define MWIFIEX_RX_STBC123     0x0300
-
 /* dev_cap bitmap
  * BIT
  * 0-16                reserved
index 32643555dd2a32a302d1301427e463d877c8260a..a6a6a53cda40686bd0da8ba1bcdf32f100177723 100644 (file)
@@ -159,7 +159,6 @@ mwifiex_set_ht_params(struct mwifiex_private *priv,
                      struct cfg80211_ap_settings *params)
 {
        const u8 *ht_ie;
-       u16 cap_info;
 
        if (!ISSUPP_11NENABLED(priv->adapter->fw_cap_info))
                return;
@@ -169,27 +168,6 @@ mwifiex_set_ht_params(struct mwifiex_private *priv,
        if (ht_ie) {
                memcpy(&bss_cfg->ht_cap, ht_ie + 2,
                       sizeof(struct ieee80211_ht_cap));
-               cap_info = le16_to_cpu(bss_cfg->ht_cap.cap_info);
-               memset(&bss_cfg->ht_cap.mcs, 0,
-                      priv->adapter->number_of_antenna);
-               switch (GET_RXSTBC(cap_info)) {
-               case MWIFIEX_RX_STBC1:
-                       /* HT_CAP 1X1 mode */
-                       bss_cfg->ht_cap.mcs.rx_mask[0] = 0xff;
-                       break;
-               case MWIFIEX_RX_STBC12: /* fall through */
-               case MWIFIEX_RX_STBC123:
-                       /* HT_CAP 2X2 mode */
-                       bss_cfg->ht_cap.mcs.rx_mask[0] = 0xff;
-                       bss_cfg->ht_cap.mcs.rx_mask[1] = 0xff;
-                       break;
-               default:
-                       dev_warn(priv->adapter->dev,
-                                "Unsupported RX-STBC, default to 2x2\n");
-                       bss_cfg->ht_cap.mcs.rx_mask[0] = 0xff;
-                       bss_cfg->ht_cap.mcs.rx_mask[1] = 0xff;
-                       break;
-               }
                priv->ap_11n_enabled = 1;
        } else {
                memset(&bss_cfg->ht_cap , 0, sizeof(struct ieee80211_ht_cap));