ath10k: disable TX_STBC for tx chainmask of 1
authorMohammed Shafi Shajakhan <mohammed@qti.qualcomm.com>
Wed, 29 Jun 2016 16:29:27 +0000 (19:29 +0300)
committerKalle Valo <kvalo@qca.qualcomm.com>
Thu, 30 Jun 2016 11:00:39 +0000 (14:00 +0300)
Disable TX_STBC for both HT and VHT if the devices tx chainmask is '1'
TX_STBC is required only for devices with tx_chainmask > 1. This fixes
a ping failure for QCA9887 (1x1) in HT/VHT mode

Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qti.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
drivers/net/wireless/ath/ath10k/mac.c

index 3560ae9..e9d464c 100644 (file)
@@ -4226,6 +4226,9 @@ static struct ieee80211_sta_vht_cap ath10k_create_vht_cap(struct ath10k *ar)
                        mcs_map |= IEEE80211_VHT_MCS_NOT_SUPPORTED << (i * 2);
        }
 
+       if (ar->cfg_tx_chainmask <= 1)
+               vht_cap.cap &= ~IEEE80211_VHT_CAP_TXSTBC;
+
        vht_cap.vht_mcs.rx_mcs_map = cpu_to_le16(mcs_map);
        vht_cap.vht_mcs.tx_mcs_map = cpu_to_le16(mcs_map);
 
@@ -4263,7 +4266,7 @@ static struct ieee80211_sta_ht_cap ath10k_get_ht_cap(struct ath10k *ar)
                ht_cap.cap |= smps;
        }
 
-       if (ar->ht_cap_info & WMI_HT_CAP_TX_STBC)
+       if (ar->ht_cap_info & WMI_HT_CAP_TX_STBC && (ar->cfg_tx_chainmask > 1))
                ht_cap.cap |= IEEE80211_HT_CAP_TX_STBC;
 
        if (ar->ht_cap_info & WMI_HT_CAP_RX_STBC) {