204 lines
6.9 KiB
Diff
204 lines
6.9 KiB
Diff
|
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;
|
||
|
}
|