From: Greg Kroah-Hartman Date: Wed, 30 Jan 2013 10:31:05 +0000 (+0100) Subject: 3.7-stable patches X-Git-Tag: v3.0.62~20 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=980dab2ee2349f2b8024477f1df01ca7ea369192;p=thirdparty%2Fkernel%2Fstable-queue.git 3.7-stable patches added patches: ath9k-allow-setting-arbitrary-antenna-masks-on-ar9003.patch ath9k_hw-fix-chain-swap-setting-when-setting-rx-chainmask-to-5.patch --- diff --git a/queue-3.7/ath9k-allow-setting-arbitrary-antenna-masks-on-ar9003.patch b/queue-3.7/ath9k-allow-setting-arbitrary-antenna-masks-on-ar9003.patch new file mode 100644 index 00000000000..33c99af9d3a --- /dev/null +++ b/queue-3.7/ath9k-allow-setting-arbitrary-antenna-masks-on-ar9003.patch @@ -0,0 +1,29 @@ +From fea92cbf0850d788683827990670d3968f893327 Mon Sep 17 00:00:00 2001 +From: Felix Fietkau +Date: Sun, 20 Jan 2013 21:55:22 +0100 +Subject: ath9k: allow setting arbitrary antenna masks on AR9003+ + +From: Felix Fietkau + +commit fea92cbf0850d788683827990670d3968f893327 upstream. + +Signed-off-by: Felix Fietkau +Signed-off-by: John W. Linville +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/net/wireless/ath/ath9k/main.c | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/drivers/net/wireless/ath/ath9k/main.c ++++ b/drivers/net/wireless/ath/ath9k/main.c +@@ -1830,6 +1830,9 @@ static u32 fill_chainmask(u32 cap, u32 n + + static bool validate_antenna_mask(struct ath_hw *ah, u32 val) + { ++ if (AR_SREV_9300_20_OR_LATER(ah)) ++ return true; ++ + switch (val & 0x7) { + case 0x1: + case 0x3: diff --git a/queue-3.7/ath9k_hw-fix-chain-swap-setting-when-setting-rx-chainmask-to-5.patch b/queue-3.7/ath9k_hw-fix-chain-swap-setting-when-setting-rx-chainmask-to-5.patch new file mode 100644 index 00000000000..c831138bb18 --- /dev/null +++ b/queue-3.7/ath9k_hw-fix-chain-swap-setting-when-setting-rx-chainmask-to-5.patch @@ -0,0 +1,59 @@ +From 24171dd92096fc370b195f3f6bdc0798855dc3f9 Mon Sep 17 00:00:00 2001 +From: Felix Fietkau +Date: Sun, 20 Jan 2013 21:55:21 +0100 +Subject: ath9k_hw: fix chain swap setting when setting rx chainmask to 5 + +From: Felix Fietkau + +commit 24171dd92096fc370b195f3f6bdc0798855dc3f9 upstream. + +Chain swapping should only be enabled when the EEPROM chainmask is set to 5, +regardless of what the runtime chainmask is. + +Signed-off-by: Felix Fietkau +Signed-off-by: John W. Linville +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/net/wireless/ath/ath9k/ar9003_phy.c | 25 ++++++------------------- + 1 file changed, 6 insertions(+), 19 deletions(-) + +--- a/drivers/net/wireless/ath/ath9k/ar9003_phy.c ++++ b/drivers/net/wireless/ath/ath9k/ar9003_phy.c +@@ -588,30 +588,17 @@ static void ar9003_hw_init_bb(struct ath + + static void ar9003_hw_set_chain_masks(struct ath_hw *ah, u8 rx, u8 tx) + { +- switch (rx) { +- case 0x5: ++ if (ah->caps.tx_chainmask == 5 || ah->caps.rx_chainmask == 5) + REG_SET_BIT(ah, AR_PHY_ANALOG_SWAP, + AR_PHY_SWAP_ALT_CHAIN); +- case 0x3: +- case 0x1: +- case 0x2: +- case 0x7: +- REG_WRITE(ah, AR_PHY_RX_CHAINMASK, rx); +- REG_WRITE(ah, AR_PHY_CAL_CHAINMASK, rx); +- break; +- default: +- break; +- } ++ ++ REG_WRITE(ah, AR_PHY_RX_CHAINMASK, rx); ++ REG_WRITE(ah, AR_PHY_CAL_CHAINMASK, rx); + + if ((ah->caps.hw_caps & ATH9K_HW_CAP_APM) && (tx == 0x7)) +- REG_WRITE(ah, AR_SELFGEN_MASK, 0x3); +- else +- REG_WRITE(ah, AR_SELFGEN_MASK, tx); ++ tx = 3; + +- if (tx == 0x5) { +- REG_SET_BIT(ah, AR_PHY_ANALOG_SWAP, +- AR_PHY_SWAP_ALT_CHAIN); +- } ++ REG_WRITE(ah, AR_SELFGEN_MASK, tx); + } + + /* diff --git a/queue-3.7/series b/queue-3.7/series index df127c88b6b..8aa818eb2a7 100644 --- a/queue-3.7/series +++ b/queue-3.7/series @@ -39,3 +39,5 @@ ath9k-add-a-better-fix-for-the-rx-tasklet-vs-rx-flush-race.patch ath9k-fix-rx-flush-handling.patch ath9k-remove-sc-rx.rxbuflock-to-fix-a-deadlock.patch ath9k-disable-the-tasklet-before-taking-the-pcu-lock.patch +ath9k_hw-fix-chain-swap-setting-when-setting-rx-chainmask-to-5.patch +ath9k-allow-setting-arbitrary-antenna-masks-on-ar9003.patch