summaryrefslogtreecommitdiff
path: root/package/mac80211/patches/501-ath9k-eeprom_endianess.patch
diff options
context:
space:
mode:
authorJohn Crispin <john@openwrt.org>2012-03-25 09:07:09 +0000
committerJohn Crispin <john@openwrt.org>2012-03-25 09:07:09 +0000
commitbf65d4aa772030b25a76c71fb0743d7fdfa50104 (patch)
tree75d70cee51349fb1c96cbc4f58aae88918200020 /package/mac80211/patches/501-ath9k-eeprom_endianess.patch
parentfca4c80b355f757f9c865262d95719c00e1cf6a7 (diff)
downloadmtk-20170518-bf65d4aa772030b25a76c71fb0743d7fdfa50104.zip
mtk-20170518-bf65d4aa772030b25a76c71fb0743d7fdfa50104.tar.gz
mtk-20170518-bf65d4aa772030b25a76c71fb0743d7fdfa50104.tar.bz2
fixes #31068, rename 999-ath9k.patch to 501-ath9k-eeprom_endianess.patch
SVN-Revision: 31071
Diffstat (limited to 'package/mac80211/patches/501-ath9k-eeprom_endianess.patch')
-rw-r--r--package/mac80211/patches/501-ath9k-eeprom_endianess.patch48
1 files changed, 48 insertions, 0 deletions
diff --git a/package/mac80211/patches/501-ath9k-eeprom_endianess.patch b/package/mac80211/patches/501-ath9k-eeprom_endianess.patch
new file mode 100644
index 0000000..25d5450
--- /dev/null
+++ b/package/mac80211/patches/501-ath9k-eeprom_endianess.patch
@@ -0,0 +1,48 @@
+--- a/drivers/net/wireless/ath/ath9k/eeprom_def.c
++++ b/drivers/net/wireless/ath/ath9k/eeprom_def.c
+@@ -267,7 +267,7 @@ static int ath9k_hw_def_check_eeprom(str
+ struct ar5416_eeprom_def *eep =
+ (struct ar5416_eeprom_def *) &ah->eeprom.def;
+ struct ath_common *common = ath9k_hw_common(ah);
+- u16 *eepdata, temp, magic, magic2;
++ u16 *eepdata, temp, magic;
+ u32 sum = 0, el;
+ bool need_swap = false;
+ int i, addr, size;
+@@ -277,27 +277,15 @@ static int ath9k_hw_def_check_eeprom(str
+ return false;
+ }
+
+- if (!ath9k_hw_use_flash(ah)) {
+- ath_dbg(common, EEPROM, "Read Magic = 0x%04X\n", magic);
+-
+- if (magic != AR5416_EEPROM_MAGIC) {
+- magic2 = swab16(magic);
+-
+- if (magic2 == AR5416_EEPROM_MAGIC) {
+- size = sizeof(struct ar5416_eeprom_def);
+- need_swap = true;
+- eepdata = (u16 *) (&ah->eeprom);
+-
+- for (addr = 0; addr < size / sizeof(u16); addr++) {
+- temp = swab16(*eepdata);
+- *eepdata = temp;
+- eepdata++;
+- }
+- } else {
+- ath_err(common,
+- "Invalid EEPROM Magic. Endianness mismatch.\n");
+- return -EINVAL;
+- }
++ if (swab16(magic) == AR5416_EEPROM_MAGIC) {
++ size = sizeof(struct ar5416_eeprom_def);
++ need_swap = true;
++ eepdata = (u16 *) (&ah->eeprom);
++
++ for (addr = 0; addr < size / sizeof(u16); addr++) {
++ temp = swab16(*eepdata);
++ *eepdata = temp;
++ eepdata++;
+ }
+ }
+