diff options
Diffstat (limited to 'package/mac80211/patches/501-ath9k-eeprom_endianess.patch')
-rw-r--r-- | package/mac80211/patches/501-ath9k-eeprom_endianess.patch | 102 |
1 files changed, 0 insertions, 102 deletions
diff --git a/package/mac80211/patches/501-ath9k-eeprom_endianess.patch b/package/mac80211/patches/501-ath9k-eeprom_endianess.patch deleted file mode 100644 index 3d904e939d..0000000000 --- a/package/mac80211/patches/501-ath9k-eeprom_endianess.patch +++ /dev/null @@ -1,102 +0,0 @@ ---- a/drivers/net/wireless/ath/ath9k/eeprom_def.c -+++ b/drivers/net/wireless/ath/ath9k/eeprom_def.c -@@ -262,7 +262,7 @@ static int ath9k_hw_def_check_eeprom(str - { - struct ar5416_eeprom_def *eep = &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; -@@ -272,27 +272,16 @@ 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 && -+ !(ah->ah_flags & AH_NO_EEP_SWAP)) { -+ 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++; - } - } - ---- a/drivers/net/wireless/ath/ath9k/eeprom_4k.c -+++ b/drivers/net/wireless/ath/ath9k/eeprom_4k.c -@@ -57,7 +57,7 @@ static bool ath9k_hw_4k_fill_eeprom(stru - { - struct ath_common *common = ath9k_hw_common(ah); - -- if (!ath9k_hw_use_flash(ah)) { -+ if (!(ah->ah_flags & AH_NO_EEP_SWAP)) { - ath_dbg(common, EEPROM, "Reading from EEPROM, not flash\n"); - } - ---- a/drivers/net/wireless/ath/ath9k/eeprom_9287.c -+++ b/drivers/net/wireless/ath/ath9k/eeprom_9287.c -@@ -60,7 +60,7 @@ static bool ath9k_hw_ar9287_fill_eeprom( - { - struct ath_common *common = ath9k_hw_common(ah); - -- if (!ath9k_hw_use_flash(ah)) { -+ if (!(ah->ah_flags & AH_NO_EEP_SWAP)) { - ath_dbg(common, EEPROM, "Reading from EEPROM, not flash\n"); - } - ---- a/drivers/net/wireless/ath/ath9k/hw.h -+++ b/drivers/net/wireless/ath/ath9k/hw.h -@@ -735,6 +735,7 @@ enum ath_cal_list { - #define AH_USE_EEPROM 0x1 - #define AH_UNPLUGGED 0x2 /* The card has been physically removed. */ - #define AH_FASTCC 0x4 -+#define AH_NO_EEP_SWAP 0x8 /* Do not swap EEPROM data */ - - struct ath_hw { - struct ath_ops reg_ops; ---- a/drivers/net/wireless/ath/ath9k/init.c -+++ b/drivers/net/wireless/ath/ath9k/init.c -@@ -592,6 +592,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; -+ if (!pdata->endian_check) -+ ah->ah_flags |= AH_NO_EEP_SWAP; - } - - common = ath9k_hw_common(ah); ---- a/include/linux/ath9k_platform.h -+++ b/include/linux/ath9k_platform.h -@@ -31,6 +31,7 @@ struct ath9k_platform_data { - u32 gpio_mask; - u32 gpio_val; - -+ bool endian_check; - bool is_clk_25mhz; - int (*get_mac_revision)(void); - int (*external_reset)(void); |