diff options
Diffstat (limited to 'package/mac80211/patches/405-ath9k-cleanup-AR5416-version-checking-macros.patch')
-rw-r--r-- | package/mac80211/patches/405-ath9k-cleanup-AR5416-version-checking-macros.patch | 161 |
1 files changed, 161 insertions, 0 deletions
diff --git a/package/mac80211/patches/405-ath9k-cleanup-AR5416-version-checking-macros.patch b/package/mac80211/patches/405-ath9k-cleanup-AR5416-version-checking-macros.patch new file mode 100644 index 0000000000..3cc35a1f90 --- /dev/null +++ b/package/mac80211/patches/405-ath9k-cleanup-AR5416-version-checking-macros.patch @@ -0,0 +1,161 @@ +From 0f1a8ac314c886aa3a4c14e3d868207483ad343c Mon Sep 17 00:00:00 2001 +From: Gabor Juhos <juhosg@openwrt.org> +Date: Thu, 5 Mar 2009 10:18:35 +0100 +Subject: [PATCH v2 1/3] ath9k: cleanup AR5416 version checking macros + +Currently we have two different versions of this macros. Because they +would have to do the same thing, we should simplify and merge them. + +Changes-licensed-under: ISC + +Signed-off-by: Gabor Juhos <juhosg@openwrt.org> +Signed-off-by: Imre Kaloz <kaloz@openwrt.org> +--- + drivers/net/wireless/ath9k/eeprom.c | 16 ++++++++-------- + drivers/net/wireless/ath9k/hw.c | 4 ++-- + drivers/net/wireless/ath9k/mac.h | 2 +- + drivers/net/wireless/ath9k/reg.h | 19 +++++++++++-------- + 4 files changed, 22 insertions(+), 19 deletions(-) + +--- a/drivers/net/wireless/ath9k/eeprom.c ++++ b/drivers/net/wireless/ath9k/eeprom.c +@@ -640,7 +640,7 @@ static void ath9k_hw_get_4k_gain_boundar + pPdGainBoundaries[i] = + min((u16)AR5416_MAX_RATE_POWER, pPdGainBoundaries[i]); + +- if ((i == 0) && !AR_SREV_5416_V20_OR_LATER(ah)) { ++ if ((i == 0) && !AR_SREV_5416_20_OR_LATER(ah)) { + minDelta = pPdGainBoundaries[0] - 23; + pPdGainBoundaries[0] = 23; + } else { +@@ -755,7 +755,7 @@ static bool ath9k_hw_set_4k_power_cal_ta + REG_RMW_FIELD(ah, AR_PHY_TPCRG1, AR_PHY_TPCRG1_PD_GAIN_3, 0); + + for (i = 0; i < AR5416_MAX_CHAINS; i++) { +- if (AR_SREV_5416_V20_OR_LATER(ah) && ++ if (AR_SREV_5416_20_OR_LATER(ah) && + (ah->rxchainmask == 5 || ah->txchainmask == 5) && + (i != 0)) { + regChainOffset = (i == 1) ? 0x2000 : 0x1000; +@@ -771,7 +771,7 @@ static bool ath9k_hw_set_4k_power_cal_ta + &tMinCalPower, gainBoundaries, + pdadcValues, numXpdGain); + +- if ((i == 0) || AR_SREV_5416_V20_OR_LATER(ah)) { ++ if ((i == 0) || AR_SREV_5416_20_OR_LATER(ah)) { + REG_WRITE(ah, AR_PHY_TPCRG5 + regChainOffset, + SM(pdGainOverlap_t2, + AR_PHY_TPCRG5_PD_GAIN_OVERLAP) +@@ -1707,7 +1707,7 @@ static bool ath9k_hw_def_set_board_value + break; + } + +- if (AR_SREV_5416_V20_OR_LATER(ah) && ++ if (AR_SREV_5416_20_OR_LATER(ah) && + (ah->rxchainmask == 5 || ah->txchainmask == 5) + && (i != 0)) + regChainOffset = (i == 1) ? 0x2000 : 0x1000; +@@ -1728,7 +1728,7 @@ static bool ath9k_hw_def_set_board_value + SM(pModal->iqCalQCh[i], + AR_PHY_TIMING_CTRL4_IQCORR_Q_Q_COFF)); + +- if ((i == 0) || AR_SREV_5416_V20_OR_LATER(ah)) { ++ if ((i == 0) || AR_SREV_5416_20_OR_LATER(ah)) { + if (AR5416_VER_MASK >= AR5416_EEP_MINOR_VER_3) { + txRxAttenLocal = pModal->txRxAttenCh[i]; + if (AR_SREV_9280_10_OR_LATER(ah)) { +@@ -2094,7 +2094,7 @@ static void ath9k_hw_get_def_gain_bounda + pPdGainBoundaries[i] = + min((u16)AR5416_MAX_RATE_POWER, pPdGainBoundaries[i]); + +- if ((i == 0) && !AR_SREV_5416_V20_OR_LATER(ah)) { ++ if ((i == 0) && !AR_SREV_5416_20_OR_LATER(ah)) { + minDelta = pPdGainBoundaries[0] - 23; + pPdGainBoundaries[0] = 23; + } else { +@@ -2228,7 +2228,7 @@ static bool ath9k_hw_set_def_power_cal_t + xpdGainValues[2]); + + for (i = 0; i < AR5416_MAX_CHAINS; i++) { +- if (AR_SREV_5416_V20_OR_LATER(ah) && ++ if (AR_SREV_5416_20_OR_LATER(ah) && + (ah->rxchainmask == 5 || ah->txchainmask == 5) && + (i != 0)) { + regChainOffset = (i == 1) ? 0x2000 : 0x1000; +@@ -2262,7 +2262,7 @@ static bool ath9k_hw_set_def_power_cal_t + numXpdGain); + } + +- if ((i == 0) || AR_SREV_5416_V20_OR_LATER(ah)) { ++ if ((i == 0) || AR_SREV_5416_20_OR_LATER(ah)) { + if (OLC_FOR_AR9280_20_LATER) { + REG_WRITE(ah, + AR_PHY_TPCRG5 + regChainOffset, +--- a/drivers/net/wireless/ath9k/hw.c ++++ b/drivers/net/wireless/ath9k/hw.c +@@ -1160,7 +1160,7 @@ static void ath9k_hw_override_ini(struct + REG_SET_BIT(ah, AR_DIAG_SW, (AR_DIAG_RX_DIS | AR_DIAG_RX_ABORT)); + + +- if (!AR_SREV_5416_V20_OR_LATER(ah) || ++ if (!AR_SREV_5416_20_OR_LATER(ah) || + AR_SREV_9280_10_OR_LATER(ah)) + return; + +@@ -1262,7 +1262,7 @@ static int ath9k_hw_process_ini(struct a + REG_WRITE(ah, AR_PHY_ADC_SERIAL_CTL, AR_PHY_SEL_EXTERNAL_RADIO); + ah->eep_ops->set_addac(ah, chan); + +- if (AR_SREV_5416_V22_OR_LATER(ah)) { ++ if (AR_SREV_5416_22_OR_LATER(ah)) { + REG_WRITE_ARRAY(&ah->iniAddac, 1, regWrites); + } else { + struct ar5416IniArray temp; +--- a/drivers/net/wireless/ath9k/mac.h ++++ b/drivers/net/wireless/ath9k/mac.h +@@ -17,7 +17,7 @@ + #ifndef MAC_H + #define MAC_H + +-#define RXSTATUS_RATE(ah, ads) (AR_SREV_5416_V20_OR_LATER(ah) ? \ ++#define RXSTATUS_RATE(ah, ads) (AR_SREV_5416_20_OR_LATER(ah) ? \ + MS(ads->ds_rxstatus0, AR_RxRate) : \ + (ads->ds_rxstatus3 >> 2) & 0xFF) + +--- a/drivers/net/wireless/ath9k/reg.h ++++ b/drivers/net/wireless/ath9k/reg.h +@@ -161,10 +161,6 @@ + #define AR_SREV_VERSION_9100 0x014 + + #define AR_SREV_9100(ah) ((ah->hw_version.macVersion) == AR_SREV_VERSION_9100) +-#define AR_SREV_5416_V20_OR_LATER(_ah) \ +- (AR_SREV_9100((_ah)) || AR_SREV_5416_20_OR_LATER(_ah)) +-#define AR_SREV_5416_V22_OR_LATER(_ah) \ +- (AR_SREV_9100((_ah)) || AR_SREV_5416_22_OR_LATER(_ah)) + + #define AR_ISR 0x0080 + #define AR_ISR_RXOK 0x00000001 +@@ -748,12 +744,19 @@ + + #define AR_SREV_9100_OR_LATER(_ah) \ + (((_ah)->hw_version.macVersion >= AR_SREV_VERSION_5416_PCIE)) ++ ++#define AR_SREV_5416(_ah) \ ++ (((_ah)->hw_version.macVersion == AR_SREV_VERSION_5416_PCI) || \ ++ ((_ah)->hw_version.macVersion == AR_SREV_VERSION_5416_PCIE)) + #define AR_SREV_5416_20_OR_LATER(_ah) \ +- (((_ah)->hw_version.macVersion >= AR_SREV_VERSION_9160) || \ +- ((_ah)->hw_version.macRev >= AR_SREV_REVISION_5416_20)) ++ (((AR_SREV_5416(_ah)) && \ ++ ((_ah)->hw_version.macRev >= AR_SREV_REVISION_5416_20)) || \ ++ ((_ah)->hw_version.macVersion >= AR_SREV_VERSION_9100)) + #define AR_SREV_5416_22_OR_LATER(_ah) \ +- (((_ah)->hw_version.macVersion >= AR_SREV_VERSION_9160) || \ +- ((_ah)->hw_version.macRev >= AR_SREV_REVISION_5416_22)) ++ (((AR_SREV_5416(_ah)) && \ ++ ((_ah)->hw_version.macRev >= AR_SREV_REVISION_5416_22)) || \ ++ ((_ah)->hw_version.macVersion >= AR_SREV_VERSION_9100)) ++ + #define AR_SREV_9160(_ah) \ + (((_ah)->hw_version.macVersion == AR_SREV_VERSION_9160)) + #define AR_SREV_9160_10_OR_LATER(_ah) \ |