diff options
author | Felix Fietkau <nbd@openwrt.org> | 2013-08-13 10:35:14 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2013-08-13 10:35:14 +0000 |
commit | 339fd0a8e13f237a67685d224a9cfb36d157fc62 (patch) | |
tree | d8f26b6a25f9511f3ef9b5f59d4d25b30392039b /package/kernel/mac80211/patches/543-ath9k-allow-to-disable-bands-via-platform-data.patch | |
parent | 6d651b4e3d6de30fd31fce25fa8e4b4b39b2b3a7 (diff) | |
download | upstream-339fd0a8e13f237a67685d224a9cfb36d157fc62.tar.gz upstream-339fd0a8e13f237a67685d224a9cfb36d157fc62.tar.bz2 upstream-339fd0a8e13f237a67685d224a9cfb36d157fc62.zip |
ath9k: reorganize patches
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37766 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/kernel/mac80211/patches/543-ath9k-allow-to-disable-bands-via-platform-data.patch')
-rw-r--r-- | package/kernel/mac80211/patches/543-ath9k-allow-to-disable-bands-via-platform-data.patch | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/543-ath9k-allow-to-disable-bands-via-platform-data.patch b/package/kernel/mac80211/patches/543-ath9k-allow-to-disable-bands-via-platform-data.patch new file mode 100644 index 0000000000..c5b90af68c --- /dev/null +++ b/package/kernel/mac80211/patches/543-ath9k-allow-to-disable-bands-via-platform-data.patch @@ -0,0 +1,70 @@ +--- a/include/linux/ath9k_platform.h ++++ b/include/linux/ath9k_platform.h +@@ -33,6 +33,9 @@ struct ath9k_platform_data { + + bool endian_check; + bool is_clk_25mhz; ++ bool disable_2ghz; ++ bool disable_5ghz; ++ + int (*get_mac_revision)(void); + int (*external_reset)(void); + +--- a/drivers/net/wireless/ath/ath9k/hw.c ++++ b/drivers/net/wireless/ath/ath9k/hw.c +@@ -2449,17 +2449,25 @@ int ath9k_hw_fill_cap_info(struct ath_hw + } + + eeval = ah->eep_ops->get_eeprom(ah, EEP_OP_MODE); +- if ((eeval & (AR5416_OPFLAGS_11G | AR5416_OPFLAGS_11A)) == 0) { +- ath_err(common, +- "no band has been marked as supported in EEPROM\n"); +- return -EINVAL; ++ ++ if (eeval & AR5416_OPFLAGS_11A) { ++ if (ah->disable_5ghz) ++ ath_warn(common, "disabling 5GHz band\n"); ++ else ++ pCap->hw_caps |= ATH9K_HW_CAP_5GHZ; + } + +- if (eeval & AR5416_OPFLAGS_11A) +- pCap->hw_caps |= ATH9K_HW_CAP_5GHZ; ++ if (eeval & AR5416_OPFLAGS_11G) { ++ if (ah->disable_2ghz) ++ ath_warn(common, "disabling 2GHz band\n"); ++ else ++ pCap->hw_caps |= ATH9K_HW_CAP_2GHZ; ++ } + +- if (eeval & AR5416_OPFLAGS_11G) +- pCap->hw_caps |= ATH9K_HW_CAP_2GHZ; ++ if ((pCap->hw_caps & (ATH9K_HW_CAP_2GHZ | ATH9K_HW_CAP_5GHZ)) == 0) { ++ ath_err(common, "both bands are disabled\n"); ++ return -EINVAL; ++ } + + if (AR_SREV_9485(ah) || + AR_SREV_9285(ah) || +--- a/drivers/net/wireless/ath/ath9k/hw.h ++++ b/drivers/net/wireless/ath/ath9k/hw.h +@@ -948,6 +948,8 @@ struct ath_hw { + bool is_clk_25mhz; + int (*get_mac_revision)(void); + int (*external_reset)(void); ++ bool disable_2ghz; ++ bool disable_5ghz; + + const struct firmware *eeprom_blob; + }; +--- a/drivers/net/wireless/ath/ath9k/init.c ++++ b/drivers/net/wireless/ath/ath9k/init.c +@@ -613,6 +613,8 @@ static int ath9k_init_softc(u16 devid, s + ah->is_clk_25mhz = pdata->is_clk_25mhz; + ah->get_mac_revision = pdata->get_mac_revision; + ah->external_reset = pdata->external_reset; ++ ah->disable_2ghz = pdata->disable_2ghz; ++ ah->disable_5ghz = pdata->disable_5ghz; + if (!pdata->endian_check) + ah->ah_flags |= AH_NO_EEP_SWAP; + } |