aboutsummaryrefslogtreecommitdiffstats
path: root/package/mac80211/patches/304-pending-ath9k-use-struct-ath_hw-as-the-first-argument-for-at.patch
diff options
context:
space:
mode:
authorGabor Juhos <juhosg@openwrt.org>2012-12-10 15:46:15 +0000
committerGabor Juhos <juhosg@openwrt.org>2012-12-10 15:46:15 +0000
commit23fe7d4e4f141228f550ebb73d9f206f2207bdfe (patch)
tree71035955e3316c23993431b787701ea3e413c882 /package/mac80211/patches/304-pending-ath9k-use-struct-ath_hw-as-the-first-argument-for-at.patch
parentf7b644774fa7d6db2962e30f5e9d57c298b8669e (diff)
downloadmaster-187ad058-23fe7d4e4f141228f550ebb73d9f206f2207bdfe.tar.gz
master-187ad058-23fe7d4e4f141228f550ebb73d9f206f2207bdfe.tar.bz2
master-187ad058-23fe7d4e4f141228f550ebb73d9f206f2207bdfe.zip
mac80211: ath9k: allow to load EEPROM data via firmware API
Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34606 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/mac80211/patches/304-pending-ath9k-use-struct-ath_hw-as-the-first-argument-for-at.patch')
-rw-r--r--package/mac80211/patches/304-pending-ath9k-use-struct-ath_hw-as-the-first-argument-for-at.patch203
1 files changed, 203 insertions, 0 deletions
diff --git a/package/mac80211/patches/304-pending-ath9k-use-struct-ath_hw-as-the-first-argument-for-at.patch b/package/mac80211/patches/304-pending-ath9k-use-struct-ath_hw-as-the-first-argument-for-at.patch
new file mode 100644
index 0000000000..9076522a8b
--- /dev/null
+++ b/package/mac80211/patches/304-pending-ath9k-use-struct-ath_hw-as-the-first-argument-for-at.patch
@@ -0,0 +1,203 @@
+From 26c22324cca2db37fa294156fd875100d95438f4 Mon Sep 17 00:00:00 2001
+From: Gabor Juhos <juhosg@openwrt.org>
+Date: Sun, 9 Dec 2012 15:19:01 +0100
+Subject: [PATCH 3/4] ath9k: use 'struct ath_hw *' as the first argument for
+ 'ath9k_hw_nvram_read'
+
+The 'ath9k_hw_nvram_read' function takes a
+'struct ath_common *' as its first argument.
+Almost each of its caller has a 'struct ath_hw *'
+parameter in their argument list, and that is
+dereferenced in order to get the 'struct ath_common'
+pointer.
+
+Change the first argument of 'ath9k_hw_nvram_read'
+to be a 'struct ath_hw *', and remove the dereference
+calls from the callers.
+
+Also change the type of the first argument of the
+ar9300_eeprom_read_{byte,word} functions.
+
+Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+---
+ drivers/net/wireless/ath/ath9k/ar9003_eeprom.c | 17 ++++++++---------
+ drivers/net/wireless/ath/ath9k/eeprom.c | 3 ++-
+ drivers/net/wireless/ath/ath9k/eeprom.h | 2 +-
+ drivers/net/wireless/ath/ath9k/eeprom_4k.c | 6 ++----
+ drivers/net/wireless/ath/ath9k/eeprom_9287.c | 6 ++----
+ drivers/net/wireless/ath/ath9k/eeprom_def.c | 5 ++---
+ 6 files changed, 17 insertions(+), 22 deletions(-)
+
+--- a/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
++++ b/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
+@@ -3005,24 +3005,24 @@ static u32 ath9k_hw_ar9300_get_eeprom(st
+ }
+ }
+
+-static bool ar9300_eeprom_read_byte(struct ath_common *common, int address,
++static bool ar9300_eeprom_read_byte(struct ath_hw *ah, int address,
+ u8 *buffer)
+ {
+ u16 val;
+
+- if (unlikely(!ath9k_hw_nvram_read(common, address / 2, &val)))
++ if (unlikely(!ath9k_hw_nvram_read(ah, address / 2, &val)))
+ return false;
+
+ *buffer = (val >> (8 * (address % 2))) & 0xff;
+ return true;
+ }
+
+-static bool ar9300_eeprom_read_word(struct ath_common *common, int address,
++static bool ar9300_eeprom_read_word(struct ath_hw *ah, int address,
+ u8 *buffer)
+ {
+ u16 val;
+
+- if (unlikely(!ath9k_hw_nvram_read(common, address / 2, &val)))
++ if (unlikely(!ath9k_hw_nvram_read(ah, address / 2, &val)))
+ return false;
+
+ buffer[0] = val >> 8;
+@@ -3048,14 +3048,14 @@ static bool ar9300_read_eeprom(struct at
+ * the 16-bit word at that address
+ */
+ if (address % 2 == 0) {
+- if (!ar9300_eeprom_read_byte(common, address--, buffer++))
++ if (!ar9300_eeprom_read_byte(ah, address--, buffer++))
+ goto error;
+
+ count--;
+ }
+
+ for (i = 0; i < count / 2; i++) {
+- if (!ar9300_eeprom_read_word(common, address, buffer))
++ if (!ar9300_eeprom_read_word(ah, address, buffer))
+ goto error;
+
+ address -= 2;
+@@ -3063,7 +3063,7 @@ static bool ar9300_read_eeprom(struct at
+ }
+
+ if (count % 2)
+- if (!ar9300_eeprom_read_byte(common, address, buffer))
++ if (!ar9300_eeprom_read_byte(ah, address, buffer))
+ goto error;
+
+ return true;
+@@ -3240,12 +3240,11 @@ static bool ar9300_check_eeprom_header(s
+ static int ar9300_eeprom_restore_flash(struct ath_hw *ah, u8 *mptr,
+ int mdata_size)
+ {
+- struct ath_common *common = ath9k_hw_common(ah);
+ u16 *data = (u16 *) mptr;
+ int i;
+
+ for (i = 0; i < mdata_size / 2; i++, data++)
+- ath9k_hw_nvram_read(common, i, data);
++ ath9k_hw_nvram_read(ah, i, data);
+
+ return 0;
+ }
+--- a/drivers/net/wireless/ath/ath9k/eeprom.c
++++ b/drivers/net/wireless/ath/ath9k/eeprom.c
+@@ -113,8 +113,9 @@ void ath9k_hw_usb_gen_fill_eeprom(struct
+ }
+ }
+
+-bool ath9k_hw_nvram_read(struct ath_common *common, u32 off, u16 *data)
++bool ath9k_hw_nvram_read(struct ath_hw *ah, u32 off, u16 *data)
+ {
++ struct ath_common *common = ath9k_hw_common(ah);
+ bool ret;
+
+ ret = common->bus_ops->eeprom_read(common, off, data);
+--- a/drivers/net/wireless/ath/ath9k/eeprom.h
++++ b/drivers/net/wireless/ath/ath9k/eeprom.h
+@@ -663,7 +663,7 @@ int16_t ath9k_hw_interpolate(u16 target,
+ int16_t targetRight);
+ bool ath9k_hw_get_lower_upper_index(u8 target, u8 *pList, u16 listSize,
+ u16 *indexL, u16 *indexR);
+-bool ath9k_hw_nvram_read(struct ath_common *common, u32 off, u16 *data);
++bool ath9k_hw_nvram_read(struct ath_hw *ah, u32 off, u16 *data);
+ void ath9k_hw_usb_gen_fill_eeprom(struct ath_hw *ah, u16 *eep_data,
+ int eep_start_loc, int size);
+ void ath9k_hw_fill_vpd_table(u8 pwrMin, u8 pwrMax, u8 *pPwrList,
+--- a/drivers/net/wireless/ath/ath9k/eeprom_4k.c
++++ b/drivers/net/wireless/ath/ath9k/eeprom_4k.c
+@@ -32,13 +32,11 @@ static int ath9k_hw_4k_get_eeprom_rev(st
+
+ static bool __ath9k_hw_4k_fill_eeprom(struct ath_hw *ah)
+ {
+- struct ath_common *common = ath9k_hw_common(ah);
+ u16 *eep_data = (u16 *)&ah->eeprom.map4k;
+ int addr, eep_start_loc = 64;
+
+ for (addr = 0; addr < SIZE_EEPROM_4K; addr++) {
+- if (!ath9k_hw_nvram_read(common, addr + eep_start_loc,
+- eep_data))
++ if (!ath9k_hw_nvram_read(ah, addr + eep_start_loc, eep_data))
+ return false;
+ eep_data++;
+ }
+@@ -194,7 +192,7 @@ static int ath9k_hw_4k_check_eeprom(stru
+
+
+ if (!ath9k_hw_use_flash(ah)) {
+- if (!ath9k_hw_nvram_read(common, AR5416_EEPROM_MAGIC_OFFSET,
++ if (!ath9k_hw_nvram_read(ah, AR5416_EEPROM_MAGIC_OFFSET,
+ &magic)) {
+ ath_err(common, "Reading Magic # failed\n");
+ return false;
+--- a/drivers/net/wireless/ath/ath9k/eeprom_9287.c
++++ b/drivers/net/wireless/ath/ath9k/eeprom_9287.c
+@@ -33,14 +33,12 @@ static int ath9k_hw_ar9287_get_eeprom_re
+ static bool __ath9k_hw_ar9287_fill_eeprom(struct ath_hw *ah)
+ {
+ struct ar9287_eeprom *eep = &ah->eeprom.map9287;
+- struct ath_common *common = ath9k_hw_common(ah);
+ u16 *eep_data;
+ int addr, eep_start_loc = AR9287_EEP_START_LOC;
+ eep_data = (u16 *)eep;
+
+ for (addr = 0; addr < SIZE_EEPROM_AR9287; addr++) {
+- if (!ath9k_hw_nvram_read(common, addr + eep_start_loc,
+- eep_data))
++ if (!ath9k_hw_nvram_read(ah, addr + eep_start_loc, eep_data))
+ return false;
+ eep_data++;
+ }
+@@ -187,7 +185,7 @@ static int ath9k_hw_ar9287_check_eeprom(
+ struct ath_common *common = ath9k_hw_common(ah);
+
+ if (!ath9k_hw_use_flash(ah)) {
+- if (!ath9k_hw_nvram_read(common, AR5416_EEPROM_MAGIC_OFFSET,
++ if (!ath9k_hw_nvram_read(ah, AR5416_EEPROM_MAGIC_OFFSET,
+ &magic)) {
+ ath_err(common, "Reading Magic # failed\n");
+ return false;
+--- a/drivers/net/wireless/ath/ath9k/eeprom_def.c
++++ b/drivers/net/wireless/ath/ath9k/eeprom_def.c
+@@ -91,12 +91,11 @@ static int ath9k_hw_def_get_eeprom_rev(s
+
+ static bool __ath9k_hw_def_fill_eeprom(struct ath_hw *ah)
+ {
+- struct ath_common *common = ath9k_hw_common(ah);
+ u16 *eep_data = (u16 *)&ah->eeprom.def;
+ int addr, ar5416_eep_start_loc = 0x100;
+
+ for (addr = 0; addr < SIZE_EEPROM_DEF; addr++) {
+- if (!ath9k_hw_nvram_read(common, addr + ar5416_eep_start_loc,
++ if (!ath9k_hw_nvram_read(ah, addr + ar5416_eep_start_loc,
+ eep_data))
+ return false;
+ eep_data++;
+@@ -268,7 +267,7 @@ static int ath9k_hw_def_check_eeprom(str
+ bool need_swap = false;
+ int i, addr, size;
+
+- if (!ath9k_hw_nvram_read(common, AR5416_EEPROM_MAGIC_OFFSET, &magic)) {
++ if (!ath9k_hw_nvram_read(ah, AR5416_EEPROM_MAGIC_OFFSET, &magic)) {
+ ath_err(common, "Reading Magic # failed\n");
+ return false;
+ }