aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/wireless/ath/ath9k/init.c10
-rw-r--r--drivers/net/wireless/ath/ath9k/mac.c5
-rw-r--r--drivers/net/wireless/ath/ath9k/mac.h3
3 files changed, 15 insertions, 3 deletions
diff --git a/drivers/net/wireless/ath/ath9k/init.c b/drivers/net/wireless/ath/ath9k/init.c
index c7b888f22703..0536d442b068 100644
--- a/drivers/net/wireless/ath/ath9k/init.c
+++ b/drivers/net/wireless/ath/ath9k/init.c
@@ -21,6 +21,7 @@
21#include <linux/ath9k_platform.h> 21#include <linux/ath9k_platform.h>
22#include <linux/module.h> 22#include <linux/module.h>
23#include <linux/relay.h> 23#include <linux/relay.h>
24#include <net/ieee80211_radiotap.h>
24 25
25#include "ath9k.h" 26#include "ath9k.h"
26 27
@@ -766,8 +767,13 @@ void ath9k_set_hw_capab(struct ath_softc *sc, struct ieee80211_hw *hw)
766 IEEE80211_HW_REPORTS_TX_ACK_STATUS | 767 IEEE80211_HW_REPORTS_TX_ACK_STATUS |
767 IEEE80211_HW_SUPPORTS_RC_TABLE; 768 IEEE80211_HW_SUPPORTS_RC_TABLE;
768 769
769 if (sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_HT) 770 if (sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_HT) {
770 hw->flags |= IEEE80211_HW_AMPDU_AGGREGATION; 771 hw->flags |= IEEE80211_HW_AMPDU_AGGREGATION;
772
773 if (AR_SREV_9280_20_OR_LATER(ah))
774 hw->radiotap_mcs_details |=
775 IEEE80211_RADIOTAP_MCS_HAVE_STBC;
776 }
771 777
772 if (AR_SREV_9160_10_OR_LATER(sc->sc_ah) || ath9k_modparam_nohwcrypt) 778 if (AR_SREV_9160_10_OR_LATER(sc->sc_ah) || ath9k_modparam_nohwcrypt)
773 hw->flags |= IEEE80211_HW_MFP_CAPABLE; 779 hw->flags |= IEEE80211_HW_MFP_CAPABLE;
diff --git a/drivers/net/wireless/ath/ath9k/mac.c b/drivers/net/wireless/ath/ath9k/mac.c
index a52081d73bef..d055e389abfc 100644
--- a/drivers/net/wireless/ath/ath9k/mac.c
+++ b/drivers/net/wireless/ath/ath9k/mac.c
@@ -593,6 +593,11 @@ int ath9k_hw_rxprocdesc(struct ath_hw *ah, struct ath_desc *ds,
593 (ads.ds_rxstatus3 & AR_GI) ? RX_FLAG_SHORT_GI : 0; 593 (ads.ds_rxstatus3 & AR_GI) ? RX_FLAG_SHORT_GI : 0;
594 rs->flag |= 594 rs->flag |=
595 (ads.ds_rxstatus3 & AR_2040) ? RX_FLAG_40MHZ : 0; 595 (ads.ds_rxstatus3 & AR_2040) ? RX_FLAG_40MHZ : 0;
596 if (AR_SREV_9280_20_OR_LATER(ah))
597 rs->flag |=
598 (ads.ds_rxstatus3 & AR_STBC) ?
599 /* we can only Nss=1 STBC */
600 (1 << RX_FLAG_STBC_SHIFT) : 0;
596 601
597 if (ads.ds_rxstatus8 & AR_PreDelimCRCErr) 602 if (ads.ds_rxstatus8 & AR_PreDelimCRCErr)
598 rs->rs_flags |= ATH9K_RX_DELIM_CRC_PRE; 603 rs->rs_flags |= ATH9K_RX_DELIM_CRC_PRE;
diff --git a/drivers/net/wireless/ath/ath9k/mac.h b/drivers/net/wireless/ath/ath9k/mac.h
index 3f1e7754a1a7..b02dfce964b4 100644
--- a/drivers/net/wireless/ath/ath9k/mac.h
+++ b/drivers/net/wireless/ath/ath9k/mac.h
@@ -534,7 +534,8 @@ struct ar5416_desc {
534#define AR_2040 0x00000002 534#define AR_2040 0x00000002
535#define AR_Parallel40 0x00000004 535#define AR_Parallel40 0x00000004
536#define AR_Parallel40_S 2 536#define AR_Parallel40_S 2
537#define AR_RxStatusRsvd30 0x000000f8 537#define AR_STBC 0x00000008 /* on ar9280 and later */
538#define AR_RxStatusRsvd30 0x000000f0
538#define AR_RxAntenna 0xffffff00 539#define AR_RxAntenna 0xffffff00
539#define AR_RxAntenna_S 8 540#define AR_RxAntenna_S 8
540 541