aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSujith <Sujith.Manoharan@atheros.com>2010-05-17 02:31:19 -0400
committerJohn W. Linville <linville@tuxdriver.com>2010-06-02 16:13:16 -0400
commitb4dec5e8f5c02f75d8c08dd377193f73b553bfe2 (patch)
tree1e3a16548d419acd84fde9ae5edac85a620d276b
parent2c76ef89b05654457555a1458ccf2aa8eec5fc50 (diff)
ath9k_htc: Enable SGI in HT20 for AR9271
Signed-off-by: Sujith <Sujith.Manoharan@atheros.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/ath/ath9k/htc_drv_init.c3
-rw-r--r--drivers/net/wireless/ath/ath9k/htc_drv_main.c7
-rw-r--r--drivers/net/wireless/ath/ath9k/hw.c2
3 files changed, 9 insertions, 3 deletions
diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_init.c b/drivers/net/wireless/ath/ath9k/htc_drv_init.c
index 7ec2c2ec9d52..8b202e05034e 100644
--- a/drivers/net/wireless/ath/ath9k/htc_drv_init.c
+++ b/drivers/net/wireless/ath/ath9k/htc_drv_init.c
@@ -404,6 +404,9 @@ static void setup_ht_cap(struct ath9k_htc_priv *priv,
404 IEEE80211_HT_CAP_SGI_40 | 404 IEEE80211_HT_CAP_SGI_40 |
405 IEEE80211_HT_CAP_DSSSCCK40; 405 IEEE80211_HT_CAP_DSSSCCK40;
406 406
407 if (priv->ah->caps.hw_caps & ATH9K_HW_CAP_SGI_20)
408 ht_info->cap |= IEEE80211_HT_CAP_SGI_20;
409
407 ht_info->ampdu_factor = IEEE80211_HT_MAX_AMPDU_64K; 410 ht_info->ampdu_factor = IEEE80211_HT_MAX_AMPDU_64K;
408 ht_info->ampdu_density = IEEE80211_HT_MPDU_DENSITY_8; 411 ht_info->ampdu_density = IEEE80211_HT_MPDU_DENSITY_8;
409 412
diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_main.c b/drivers/net/wireless/ath/ath9k/htc_drv_main.c
index 80feeb3a6bf0..6d464237d13a 100644
--- a/drivers/net/wireless/ath/ath9k/htc_drv_main.c
+++ b/drivers/net/wireless/ath/ath9k/htc_drv_main.c
@@ -367,9 +367,12 @@ static void ath9k_htc_setup_rate(struct ath9k_htc_priv *priv,
367 caps = WLAN_RC_HT_FLAG; 367 caps = WLAN_RC_HT_FLAG;
368 if (sta->ht_cap.cap & IEEE80211_HT_CAP_SUP_WIDTH_20_40) 368 if (sta->ht_cap.cap & IEEE80211_HT_CAP_SUP_WIDTH_20_40)
369 caps |= WLAN_RC_40_FLAG; 369 caps |= WLAN_RC_40_FLAG;
370 if (sta->ht_cap.cap & IEEE80211_HT_CAP_SGI_40) 370 if (conf_is_ht40(&priv->hw->conf) &&
371 (sta->ht_cap.cap & IEEE80211_HT_CAP_SGI_40))
372 caps |= WLAN_RC_SGI_FLAG;
373 else if (conf_is_ht20(&priv->hw->conf) &&
374 (sta->ht_cap.cap & IEEE80211_HT_CAP_SGI_20))
371 caps |= WLAN_RC_SGI_FLAG; 375 caps |= WLAN_RC_SGI_FLAG;
372
373 } 376 }
374 377
375 trate->sta_index = ista->index; 378 trate->sta_index = ista->index;
diff --git a/drivers/net/wireless/ath/ath9k/hw.c b/drivers/net/wireless/ath/ath9k/hw.c
index 2fd62546187a..841c8b05a07c 100644
--- a/drivers/net/wireless/ath/ath9k/hw.c
+++ b/drivers/net/wireless/ath/ath9k/hw.c
@@ -2234,7 +2234,7 @@ int ath9k_hw_fill_cap_info(struct ath_hw *ah)
2234 if (AR_SREV_9300_20_OR_LATER(ah)) 2234 if (AR_SREV_9300_20_OR_LATER(ah))
2235 pCap->hw_caps |= ATH9K_HW_CAP_RAC_SUPPORTED; 2235 pCap->hw_caps |= ATH9K_HW_CAP_RAC_SUPPORTED;
2236 2236
2237 if (AR_SREV_9287_10_OR_LATER(ah)) 2237 if (AR_SREV_9287_10_OR_LATER(ah) || AR_SREV_9271(ah))
2238 pCap->hw_caps |= ATH9K_HW_CAP_SGI_20; 2238 pCap->hw_caps |= ATH9K_HW_CAP_SGI_20;
2239 2239
2240 return 0; 2240 return 0;