diff options
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/htc_drv_main.c')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/htc_drv_main.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_main.c b/drivers/net/wireless/ath/ath9k/htc_drv_main.c index 569b9c0fee3..b7ce902f245 100644 --- a/drivers/net/wireless/ath/ath9k/htc_drv_main.c +++ b/drivers/net/wireless/ath/ath9k/htc_drv_main.c | |||
@@ -325,9 +325,9 @@ static int ath9k_htc_update_cap_target(struct ath9k_htc_priv *priv) | |||
325 | tcap.flags_ext = 0x80601000; | 325 | tcap.flags_ext = 0x80601000; |
326 | tcap.ampdu_limit = 0xffff0000; | 326 | tcap.ampdu_limit = 0xffff0000; |
327 | tcap.ampdu_subframes = 20; | 327 | tcap.ampdu_subframes = 20; |
328 | tcap.tx_chainmask_legacy = 1; | 328 | tcap.tx_chainmask_legacy = priv->ah->caps.tx_chainmask; |
329 | tcap.protmode = 1; | 329 | tcap.protmode = 1; |
330 | tcap.tx_chainmask = 1; | 330 | tcap.tx_chainmask = priv->ah->caps.tx_chainmask; |
331 | 331 | ||
332 | WMI_CMD_BUF(WMI_TARGET_IC_UPDATE_CMDID, &tcap); | 332 | WMI_CMD_BUF(WMI_TARGET_IC_UPDATE_CMDID, &tcap); |
333 | 333 | ||
@@ -365,6 +365,11 @@ static void ath9k_htc_setup_rate(struct ath9k_htc_priv *priv, | |||
365 | trate->rates.ht_rates.rs_nrates = j; | 365 | trate->rates.ht_rates.rs_nrates = j; |
366 | 366 | ||
367 | caps = WLAN_RC_HT_FLAG; | 367 | caps = WLAN_RC_HT_FLAG; |
368 | if (priv->ah->caps.tx_chainmask != 1 && | ||
369 | ath9k_hw_getcapability(priv->ah, ATH9K_CAP_DS, 0, NULL)) { | ||
370 | if (sta->ht_cap.mcs.rx_mask[1]) | ||
371 | caps |= WLAN_RC_DS_FLAG; | ||
372 | } | ||
368 | if (sta->ht_cap.cap & IEEE80211_HT_CAP_SUP_WIDTH_20_40) | 373 | if (sta->ht_cap.cap & IEEE80211_HT_CAP_SUP_WIDTH_20_40) |
369 | caps |= WLAN_RC_40_FLAG; | 374 | caps |= WLAN_RC_40_FLAG; |
370 | if (conf_is_ht40(&priv->hw->conf) && | 375 | if (conf_is_ht40(&priv->hw->conf) && |