diff options
author | Felix Fietkau <nbd@openwrt.org> | 2016-01-21 15:37:43 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2016-01-21 15:37:43 +0000 |
commit | df9275b25e10fa77819bed4ceae4899e6cb235b5 (patch) | |
tree | a4cdbaf5aeaae0775e486a535cc3714d98852a9c /package/kernel/mac80211/patches/310-ath9k_hw-ignore-eeprom-magic-mismatch-on-flash-based.patch | |
parent | 16ea0369e9751bae9a0ac89ce2645701fcb83a99 (diff) | |
download | mtk-20170518-df9275b25e10fa77819bed4ceae4899e6cb235b5.zip mtk-20170518-df9275b25e10fa77819bed4ceae4899e6cb235b5.tar.gz mtk-20170518-df9275b25e10fa77819bed4ceae4899e6cb235b5.tar.bz2 |
ath9k: ignore EEPROM mismatch on flash based devices (fixes #21611)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 48438
Diffstat (limited to 'package/kernel/mac80211/patches/310-ath9k_hw-ignore-eeprom-magic-mismatch-on-flash-based.patch')
-rw-r--r-- | package/kernel/mac80211/patches/310-ath9k_hw-ignore-eeprom-magic-mismatch-on-flash-based.patch | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/310-ath9k_hw-ignore-eeprom-magic-mismatch-on-flash-based.patch b/package/kernel/mac80211/patches/310-ath9k_hw-ignore-eeprom-magic-mismatch-on-flash-based.patch new file mode 100644 index 0000000..287d6e1 --- /dev/null +++ b/package/kernel/mac80211/patches/310-ath9k_hw-ignore-eeprom-magic-mismatch-on-flash-based.patch @@ -0,0 +1,38 @@ +From: Felix Fietkau <nbd@openwrt.org> +Date: Thu, 21 Jan 2016 16:28:44 +0100 +Subject: [PATCH] ath9k_hw: ignore eeprom magic mismatch on flash based devices + +Many AR913x based devices (maybe others too) do not have a valid EEPROM +magic in their calibration data partition. + +Fixes: 6fa658fd5ab2 ("ath9k: Simplify and fix eeprom endianness swapping") +Signed-off-by: Felix Fietkau <nbd@openwrt.org> +--- + +--- a/drivers/net/wireless/ath/ath9k/eeprom.c ++++ b/drivers/net/wireless/ath/ath9k/eeprom.c +@@ -150,18 +150,18 @@ int ath9k_hw_nvram_swap_data(struct ath_ + return -EIO; + } + +- if (magic == AR5416_EEPROM_MAGIC) { +- *swap_needed = false; +- } else if (swab16(magic) == AR5416_EEPROM_MAGIC) { ++ *swap_needed = false; ++ if (swab16(magic) == AR5416_EEPROM_MAGIC) { + if (ah->ah_flags & AH_NO_EEP_SWAP) { + ath_info(common, + "Ignoring endianness difference in EEPROM magic bytes.\n"); +- +- *swap_needed = false; + } else { + *swap_needed = true; + } +- } else { ++ } else if (magic != AR5416_EEPROM_MAGIC) { ++ if (ath9k_hw_use_flash(ah)) ++ return 0; ++ + ath_err(common, + "Invalid EEPROM Magic (0x%04x).\n", magic); + return -EINVAL; |