mac80211: update to wireless-testing 2017-01-31
[openwrt/staging/blogic.git] / package / kernel / mac80211 / patches / 554-ath9k-consistently-use-get_eeprom_rev-ah.patch
diff --git a/package/kernel/mac80211/patches/554-ath9k-consistently-use-get_eeprom_rev-ah.patch b/package/kernel/mac80211/patches/554-ath9k-consistently-use-get_eeprom_rev-ah.patch
deleted file mode 100644 (file)
index 86809fd..0000000
+++ /dev/null
@@ -1,342 +0,0 @@
-From c763af71bcc2f01bd5ef6e65c7c34b46c7235a16 Mon Sep 17 00:00:00 2001
-From: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
-Date: Mon, 3 Oct 2016 00:29:11 +0200
-Subject: [v2 PATCH 5/7] ath9k: consistently use get_eeprom_rev(ah)
-
-The AR5416_VER_MASK macro does the same as get_eeprom_rev, except that
-one has to know the actual EEPROM type (and providing a reference to
-that in a variable named "eep"). Additionally the eeprom_*.c
-implementations used the same shifting logic multiple times to get the
-eeprom revision which was also unnecessary duplication of
-get_eeprom_rev.
-
-Also use the AR5416_EEP_VER_MINOR_MASK macro where needed and introduce
-a similar macro (AR5416_EEP_VER_MAJOR_MASK) for the major version.
-Finally drop AR9287_EEP_VER_MINOR_MASK since it simply duplicates the
-already defined AR5416_EEP_VER_MINOR_MASK.
-
-Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
----
- drivers/net/wireless/ath/ath9k/eeprom.h      |  4 +--
- drivers/net/wireless/ath/ath9k/eeprom_4k.c   | 32 ++++++++++------------
- drivers/net/wireless/ath/ath9k/eeprom_9287.c | 19 +++++++------
- drivers/net/wireless/ath/ath9k/eeprom_def.c  | 41 +++++++++++++++-------------
- drivers/net/wireless/ath/ath9k/xmit.c        |  3 +-
- 5 files changed, 52 insertions(+), 47 deletions(-)
-
---- a/drivers/net/wireless/ath/ath9k/eeprom.h
-+++ b/drivers/net/wireless/ath/ath9k/eeprom.h
-@@ -99,7 +99,6 @@
- #define FBIN2FREQ(x, y)               ((y) ? (2300 + x) : (4800 + 5 * x))
- #define ath9k_hw_use_flash(_ah)       (!(_ah->ah_flags & AH_USE_EEPROM))
--#define AR5416_VER_MASK (eep->baseEepHeader.version & AR5416_EEP_VER_MINOR_MASK)
- #define OLC_FOR_AR9280_20_LATER (AR_SREV_9280_20_OR_LATER(ah) && \
-                                ah->eep_ops->get_eeprom(ah, EEP_OL_PWRCTRL))
- #define OLC_FOR_AR9287_10_LATER (AR_SREV_9287_11_OR_LATER(ah) && \
-@@ -121,6 +120,8 @@
- #define AR5416_EEP_NO_BACK_VER       0x1
- #define AR5416_EEP_VER               0xE
-+#define AR5416_EEP_VER_MAJOR_SHIFT   12
-+#define AR5416_EEP_VER_MAJOR_MASK    0xF000
- #define AR5416_EEP_VER_MINOR_MASK    0x0FFF
- #define AR5416_EEP_MINOR_VER_2       0x2
- #define AR5416_EEP_MINOR_VER_3       0x3
-@@ -177,7 +178,6 @@
- #define AR9280_TX_GAIN_TABLE_SIZE 22
- #define AR9287_EEP_VER               0xE
--#define AR9287_EEP_VER_MINOR_MASK    0xFFF
- #define AR9287_EEP_MINOR_VER_1       0x1
- #define AR9287_EEP_MINOR_VER_2       0x2
- #define AR9287_EEP_MINOR_VER_3       0x3
---- a/drivers/net/wireless/ath/ath9k/eeprom_4k.c
-+++ b/drivers/net/wireless/ath/ath9k/eeprom_4k.c
-@@ -20,12 +20,17 @@
- static int ath9k_hw_4k_get_eeprom_ver(struct ath_hw *ah)
- {
--      return ((ah->eeprom.map4k.baseEepHeader.version >> 12) & 0xF);
-+      u16 version = ah->eeprom.map4k.baseEepHeader.version;
-+
-+      return (version & AR5416_EEP_VER_MAJOR_MASK) >>
-+              AR5416_EEP_VER_MAJOR_SHIFT;
- }
- static int ath9k_hw_4k_get_eeprom_rev(struct ath_hw *ah)
- {
--      return ((ah->eeprom.map4k.baseEepHeader.version) & 0xFFF);
-+      u16 version = ah->eeprom.map4k.baseEepHeader.version;
-+
-+      return version & AR5416_EEP_VER_MINOR_MASK;
- }
- #define SIZE_EEPROM_4K (sizeof(struct ar5416_eeprom_4k) / sizeof(u16))
-@@ -136,8 +141,8 @@ static u32 ath9k_hw_4k_dump_eeprom(struc
-               goto out;
-       }
--      PR_EEP("Major Version", pBase->version >> 12);
--      PR_EEP("Minor Version", pBase->version & 0xFFF);
-+      PR_EEP("Major Version", ath9k_hw_4k_get_eeprom_ver(ah));
-+      PR_EEP("Minor Version", ath9k_hw_4k_get_eeprom_rev(ah));
-       PR_EEP("Checksum", pBase->checksum);
-       PR_EEP("Length", pBase->length);
-       PR_EEP("RegDomain1", pBase->regDmn[0]);
-@@ -314,14 +319,12 @@ static void ath9k_hw_set_4k_power_cal_ta
-       xpdMask = pEepData->modalHeader.xpdGain;
--      if ((pEepData->baseEepHeader.version & AR5416_EEP_VER_MINOR_MASK) >=
--          AR5416_EEP_MINOR_VER_2) {
-+      if (ath9k_hw_4k_get_eeprom_rev(ah) >= AR5416_EEP_MINOR_VER_2)
-               pdGainOverlap_t2 =
-                       pEepData->modalHeader.pdGainOverlap;
--      } else {
-+      else
-               pdGainOverlap_t2 = (u16)(MS(REG_READ(ah, AR_PHY_TPCRG5),
-                                           AR_PHY_TPCRG5_PD_GAIN_OVERLAP));
--      }
-       pCalBChans = pEepData->calFreqPier2G;
-       numPiers = AR5416_EEP4K_NUM_2G_CAL_PIERS;
-@@ -607,10 +610,8 @@ static void ath9k_hw_4k_set_txpower(stru
-       memset(ratesArray, 0, sizeof(ratesArray));
--      if ((pEepData->baseEepHeader.version & AR5416_EEP_VER_MINOR_MASK) >=
--          AR5416_EEP_MINOR_VER_2) {
-+      if (ath9k_hw_4k_get_eeprom_rev(ah) >= AR5416_EEP_MINOR_VER_2)
-               ht40PowerIncForPdadc = pModal->ht40PowerIncForPdadc;
--      }
-       ath9k_hw_set_4k_power_per_rate_table(ah, chan,
-                                            &ratesArray[0], cfgCtl,
-@@ -730,8 +731,7 @@ static void ath9k_hw_4k_set_gain(struct
-               SM(pModal->iqCalQCh[0], AR_PHY_TIMING_CTRL4_IQCORR_Q_Q_COFF),
-               AR_PHY_TIMING_CTRL4_IQCORR_Q_Q_COFF | AR_PHY_TIMING_CTRL4_IQCORR_Q_I_COFF);
--      if ((eep->baseEepHeader.version & AR5416_EEP_VER_MINOR_MASK) >=
--          AR5416_EEP_MINOR_VER_3) {
-+      if (ath9k_hw_4k_get_eeprom_rev(ah) >= AR5416_EEP_MINOR_VER_3) {
-               txRxAttenLocal = pModal->txRxAttenCh[0];
-               REG_RMW_FIELD(ah, AR_PHY_GAIN_2GHZ,
-@@ -1009,16 +1009,14 @@ static void ath9k_hw_4k_set_board_values
-       REG_RMW_FIELD(ah, AR_PHY_EXT_CCA0, AR_PHY_EXT_CCA0_THRESH62,
-                     pModal->thresh62);
--      if ((eep->baseEepHeader.version & AR5416_EEP_VER_MINOR_MASK) >=
--                                              AR5416_EEP_MINOR_VER_2) {
-+      if (ath9k_hw_4k_get_eeprom_rev(ah) >= AR5416_EEP_MINOR_VER_2) {
-               REG_RMW_FIELD(ah, AR_PHY_RF_CTL2, AR_PHY_TX_END_DATA_START,
-                             pModal->txFrameToDataStart);
-               REG_RMW_FIELD(ah, AR_PHY_RF_CTL2, AR_PHY_TX_END_PA_ON,
-                             pModal->txFrameToPaOn);
-       }
--      if ((eep->baseEepHeader.version & AR5416_EEP_VER_MINOR_MASK) >=
--                                              AR5416_EEP_MINOR_VER_3) {
-+      if (ath9k_hw_4k_get_eeprom_rev(ah) >= AR5416_EEP_MINOR_VER_3) {
-               if (IS_CHAN_HT40(chan))
-                       REG_RMW_FIELD(ah, AR_PHY_SETTLING,
-                                     AR_PHY_SETTLING_SWITCH,
---- a/drivers/net/wireless/ath/ath9k/eeprom_9287.c
-+++ b/drivers/net/wireless/ath/ath9k/eeprom_9287.c
-@@ -22,12 +22,17 @@
- static int ath9k_hw_ar9287_get_eeprom_ver(struct ath_hw *ah)
- {
--      return (ah->eeprom.map9287.baseEepHeader.version >> 12) & 0xF;
-+      u16 version = ah->eeprom.map9287.baseEepHeader.version;
-+
-+      return (version & AR5416_EEP_VER_MAJOR_MASK) >>
-+              AR5416_EEP_VER_MAJOR_SHIFT;
- }
- static int ath9k_hw_ar9287_get_eeprom_rev(struct ath_hw *ah)
- {
--      return (ah->eeprom.map9287.baseEepHeader.version) & 0xFFF;
-+      u16 version = ah->eeprom.map9287.baseEepHeader.version;
-+
-+      return version & AR5416_EEP_VER_MINOR_MASK;
- }
- static bool __ath9k_hw_ar9287_fill_eeprom(struct ath_hw *ah)
-@@ -132,8 +137,8 @@ static u32 ath9k_hw_ar9287_dump_eeprom(s
-               goto out;
-       }
--      PR_EEP("Major Version", pBase->version >> 12);
--      PR_EEP("Minor Version", pBase->version & 0xFFF);
-+      PR_EEP("Major Version", ath9k_hw_ar9287_get_eeprom_ver(ah));
-+      PR_EEP("Minor Version", ath9k_hw_ar9287_get_eeprom_rev(ah));
-       PR_EEP("Checksum", pBase->checksum);
-       PR_EEP("Length", pBase->length);
-       PR_EEP("RegDomain1", pBase->regDmn[0]);
-@@ -383,8 +388,7 @@ static void ath9k_hw_set_ar9287_power_ca
-       xpdMask = pEepData->modalHeader.xpdGain;
--      if ((pEepData->baseEepHeader.version & AR9287_EEP_VER_MINOR_MASK) >=
--          AR9287_EEP_MINOR_VER_2)
-+      if (ath9k_hw_ar9287_get_eeprom_rev(ah) >= AR9287_EEP_MINOR_VER_2)
-               pdGainOverlap_t2 = pEepData->modalHeader.pdGainOverlap;
-       else
-               pdGainOverlap_t2 = (u16)(MS(REG_READ(ah, AR_PHY_TPCRG5),
-@@ -733,8 +737,7 @@ static void ath9k_hw_ar9287_set_txpower(
-       memset(ratesArray, 0, sizeof(ratesArray));
--      if ((pEepData->baseEepHeader.version & AR9287_EEP_VER_MINOR_MASK) >=
--          AR9287_EEP_MINOR_VER_2)
-+      if (ath9k_hw_ar9287_get_eeprom_rev(ah) >= AR9287_EEP_MINOR_VER_2)
-               ht40PowerIncForPdadc = pModal->ht40PowerIncForPdadc;
-       ath9k_hw_set_ar9287_power_per_rate_table(ah, chan,
---- a/drivers/net/wireless/ath/ath9k/eeprom_def.c
-+++ b/drivers/net/wireless/ath/ath9k/eeprom_def.c
-@@ -79,12 +79,17 @@ static void ath9k_olc_get_pdadcs(struct
- static int ath9k_hw_def_get_eeprom_ver(struct ath_hw *ah)
- {
--      return ((ah->eeprom.def.baseEepHeader.version >> 12) & 0xF);
-+      u16 version = ah->eeprom.def.baseEepHeader.version;
-+
-+      return (version & AR5416_EEP_VER_MAJOR_MASK) >>
-+              AR5416_EEP_VER_MAJOR_SHIFT;
- }
- static int ath9k_hw_def_get_eeprom_rev(struct ath_hw *ah)
- {
--      return ((ah->eeprom.def.baseEepHeader.version) & 0xFFF);
-+      u16 version = ah->eeprom.def.baseEepHeader.version;
-+
-+      return version & AR5416_EEP_VER_MINOR_MASK;
- }
- #define SIZE_EEPROM_DEF (sizeof(struct ar5416_eeprom_def) / sizeof(u16))
-@@ -214,8 +219,8 @@ static u32 ath9k_hw_def_dump_eeprom(stru
-               goto out;
-       }
--      PR_EEP("Major Version", pBase->version >> 12);
--      PR_EEP("Minor Version", pBase->version & 0xFFF);
-+      PR_EEP("Major Version", ath9k_hw_def_get_eeprom_ver(ah));
-+      PR_EEP("Minor Version", ath9k_hw_def_get_eeprom_rev(ah));
-       PR_EEP("Checksum", pBase->checksum);
-       PR_EEP("Length", pBase->length);
-       PR_EEP("RegDomain1", pBase->regDmn[0]);
-@@ -391,27 +396,27 @@ static u32 ath9k_hw_def_get_eeprom(struc
-       case EEP_TXGAIN_TYPE:
-               return pBase->txGainType;
-       case EEP_OL_PWRCTRL:
--              if (AR5416_VER_MASK >= AR5416_EEP_MINOR_VER_19)
-+              if (ath9k_hw_def_get_eeprom_rev(ah) >= AR5416_EEP_MINOR_VER_19)
-                       return pBase->openLoopPwrCntl ? true : false;
-               else
-                       return false;
-       case EEP_RC_CHAIN_MASK:
--              if (AR5416_VER_MASK >= AR5416_EEP_MINOR_VER_19)
-+              if (ath9k_hw_def_get_eeprom_rev(ah) >= AR5416_EEP_MINOR_VER_19)
-                       return pBase->rcChainMask;
-               else
-                       return 0;
-       case EEP_DAC_HPWR_5G:
--              if (AR5416_VER_MASK >= AR5416_EEP_MINOR_VER_20)
-+              if (ath9k_hw_def_get_eeprom_rev(ah) >= AR5416_EEP_MINOR_VER_20)
-                       return pBase->dacHiPwrMode_5G;
-               else
-                       return 0;
-       case EEP_FRAC_N_5G:
--              if (AR5416_VER_MASK >= AR5416_EEP_MINOR_VER_22)
-+              if (ath9k_hw_def_get_eeprom_rev(ah) >= AR5416_EEP_MINOR_VER_22)
-                       return pBase->frac_n_5g;
-               else
-                       return 0;
-       case EEP_PWR_TABLE_OFFSET:
--              if (AR5416_VER_MASK >= AR5416_EEP_MINOR_VER_21)
-+              if (ath9k_hw_def_get_eeprom_rev(ah) >= AR5416_EEP_MINOR_VER_21)
-                       return pBase->pwr_table_offset;
-               else
-                       return AR5416_PWR_TABLE_OFFSET_DB;
-@@ -434,7 +439,7 @@ static void ath9k_hw_def_set_gain(struct
-                                 u8 txRxAttenLocal, int regChainOffset, int i)
- {
-       ENABLE_REG_RMW_BUFFER(ah);
--      if (AR5416_VER_MASK >= AR5416_EEP_MINOR_VER_3) {
-+      if (ath9k_hw_def_get_eeprom_rev(ah) >= AR5416_EEP_MINOR_VER_3) {
-               txRxAttenLocal = pModal->txRxAttenCh[i];
-               if (AR_SREV_9280_20_OR_LATER(ah)) {
-@@ -603,7 +608,7 @@ static void ath9k_hw_def_set_board_value
-                             pModal->thresh62);
-       }
--      if (AR5416_VER_MASK >= AR5416_EEP_MINOR_VER_2) {
-+      if (ath9k_hw_def_get_eeprom_rev(ah) >= AR5416_EEP_MINOR_VER_2) {
-               REG_RMW_FIELD(ah, AR_PHY_RF_CTL2,
-                             AR_PHY_TX_END_DATA_START,
-                             pModal->txFrameToDataStart);
-@@ -611,7 +616,7 @@ static void ath9k_hw_def_set_board_value
-                             pModal->txFrameToPaOn);
-       }
--      if (AR5416_VER_MASK >= AR5416_EEP_MINOR_VER_3) {
-+      if (ath9k_hw_def_get_eeprom_rev(ah) >= AR5416_EEP_MINOR_VER_3) {
-               if (IS_CHAN_HT40(chan))
-                       REG_RMW_FIELD(ah, AR_PHY_SETTLING,
-                                     AR_PHY_SETTLING_SWITCH,
-@@ -619,13 +624,14 @@ static void ath9k_hw_def_set_board_value
-       }
-       if (AR_SREV_9280_20_OR_LATER(ah) &&
--          AR5416_VER_MASK >= AR5416_EEP_MINOR_VER_19)
-+          ath9k_hw_def_get_eeprom_rev(ah) >= AR5416_EEP_MINOR_VER_19)
-               REG_RMW_FIELD(ah, AR_PHY_CCK_TX_CTRL,
-                             AR_PHY_CCK_TX_CTRL_TX_DAC_SCALE_CCK,
-                             pModal->miscBits);
--      if (AR_SREV_9280_20(ah) && AR5416_VER_MASK >= AR5416_EEP_MINOR_VER_20) {
-+      if (AR_SREV_9280_20(ah) &&
-+          ath9k_hw_def_get_eeprom_rev(ah) >= AR5416_EEP_MINOR_VER_20) {
-               if (IS_CHAN_2GHZ(chan))
-                       REG_RMW_FIELD(ah, AR_AN_TOP1, AR_AN_TOP1_DACIPMODE,
-                                       eep->baseEepHeader.dacLpMode);
-@@ -796,8 +802,7 @@ static void ath9k_hw_set_def_power_cal_t
-       pwr_table_offset = ah->eep_ops->get_eeprom(ah, EEP_PWR_TABLE_OFFSET);
--      if ((pEepData->baseEepHeader.version & AR5416_EEP_VER_MINOR_MASK) >=
--          AR5416_EEP_MINOR_VER_2) {
-+      if (ath9k_hw_def_get_eeprom_rev(ah) >= AR5416_EEP_MINOR_VER_2) {
-               pdGainOverlap_t2 =
-                       pEepData->modalHeader[modalIdx].pdGainOverlap;
-       } else {
-@@ -1169,10 +1174,8 @@ static void ath9k_hw_def_set_txpower(str
-       memset(ratesArray, 0, sizeof(ratesArray));
--      if ((pEepData->baseEepHeader.version & AR5416_EEP_VER_MINOR_MASK) >=
--          AR5416_EEP_MINOR_VER_2) {
-+      if (ath9k_hw_def_get_eeprom_rev(ah) >= AR5416_EEP_MINOR_VER_2)
-               ht40PowerIncForPdadc = pModal->ht40PowerIncForPdadc;
--      }
-       ath9k_hw_set_def_power_per_rate_table(ah, chan,
-                                              &ratesArray[0], cfgCtl,
---- a/drivers/net/wireless/ath/ath9k/xmit.c
-+++ b/drivers/net/wireless/ath/ath9k/xmit.c
-@@ -1236,8 +1236,9 @@ static u8 ath_get_rate_txpower(struct at
-               if (is_40) {
-                       u8 power_ht40delta;
-                       struct ar5416_eeprom_def *eep = &ah->eeprom.def;
-+                      u16 eeprom_rev = ah->eep_ops->get_eeprom_rev(ah);
--                      if (AR5416_VER_MASK >= AR5416_EEP_MINOR_VER_2) {
-+                      if (eeprom_rev >= AR5416_EEP_MINOR_VER_2) {
-                               bool is_2ghz;
-                               struct modal_eep_header *pmodal;