diff options
| -rw-r--r-- | drivers/net/wireless/ath/ath9k/init.c | 10 | ||||
| -rw-r--r-- | drivers/net/wireless/ath/ath9k/mac.c | 5 | ||||
| -rw-r--r-- | drivers/net/wireless/ath/ath9k/mac.h | 3 |
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 | ||
