ath5k: Reset cleanup and generic cleanup
* No functional changes * Clean up reset: Introduce init functions for each unit and call them instead of having everything inside ath5k_hw_reset (it's just c/p for now so nothing changes except calling order -I tested it with various cards and it's ok-) * Further cleanups: ofdm_timings belongs to phy.c rate_duration belongs to pcu.c clock functions are general and belong to reset.c (more to follow) * Reorder functions for better organization: We start with helpers and other functions follow in categories, init functions are last Signed-off-by: Nick Kossifidis <mickflemm@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:

committed by
John W. Linville

vanhempi
ea066d5a91
commit
9320b5c4a7
@@ -28,6 +28,43 @@
|
||||
#include "debug.h"
|
||||
#include "base.h"
|
||||
|
||||
|
||||
/******************\
|
||||
* Helper functions *
|
||||
\******************/
|
||||
|
||||
/*
|
||||
* Translate binary channel representation in EEPROM to frequency
|
||||
*/
|
||||
static u16 ath5k_eeprom_bin2freq(struct ath5k_eeprom_info *ee, u16 bin,
|
||||
unsigned int mode)
|
||||
{
|
||||
u16 val;
|
||||
|
||||
if (bin == AR5K_EEPROM_CHANNEL_DIS)
|
||||
return bin;
|
||||
|
||||
if (mode == AR5K_EEPROM_MODE_11A) {
|
||||
if (ee->ee_version > AR5K_EEPROM_VERSION_3_2)
|
||||
val = (5 * bin) + 4800;
|
||||
else
|
||||
val = bin > 62 ? (10 * 62) + (5 * (bin - 62)) + 5100 :
|
||||
(bin * 10) + 5100;
|
||||
} else {
|
||||
if (ee->ee_version > AR5K_EEPROM_VERSION_3_2)
|
||||
val = bin + 2300;
|
||||
else
|
||||
val = bin + 2400;
|
||||
}
|
||||
|
||||
return val;
|
||||
}
|
||||
|
||||
|
||||
/*********\
|
||||
* Parsers *
|
||||
\*********/
|
||||
|
||||
/*
|
||||
* Read from eeprom
|
||||
*/
|
||||
@@ -62,33 +99,6 @@ static int ath5k_hw_eeprom_read(struct ath5k_hw *ah, u32 offset, u16 *data)
|
||||
return -ETIMEDOUT;
|
||||
}
|
||||
|
||||
/*
|
||||
* Translate binary channel representation in EEPROM to frequency
|
||||
*/
|
||||
static u16 ath5k_eeprom_bin2freq(struct ath5k_eeprom_info *ee, u16 bin,
|
||||
unsigned int mode)
|
||||
{
|
||||
u16 val;
|
||||
|
||||
if (bin == AR5K_EEPROM_CHANNEL_DIS)
|
||||
return bin;
|
||||
|
||||
if (mode == AR5K_EEPROM_MODE_11A) {
|
||||
if (ee->ee_version > AR5K_EEPROM_VERSION_3_2)
|
||||
val = (5 * bin) + 4800;
|
||||
else
|
||||
val = bin > 62 ? (10 * 62) + (5 * (bin - 62)) + 5100 :
|
||||
(bin * 10) + 5100;
|
||||
} else {
|
||||
if (ee->ee_version > AR5K_EEPROM_VERSION_3_2)
|
||||
val = bin + 2300;
|
||||
else
|
||||
val = bin + 2400;
|
||||
}
|
||||
|
||||
return val;
|
||||
}
|
||||
|
||||
/*
|
||||
* Initialize eeprom & capabilities structs
|
||||
*/
|
||||
@@ -647,6 +657,7 @@ ath5k_eeprom_init_11bg_2413(struct ath5k_hw *ah, unsigned int mode, int offset)
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Read power calibration for RF5111 chips
|
||||
*
|
||||
@@ -1514,6 +1525,7 @@ ath5k_eeprom_read_target_rate_pwr_info(struct ath5k_hw *ah, unsigned int mode)
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Read per channel calibration info from EEPROM
|
||||
*
|
||||
@@ -1607,15 +1619,6 @@ ath5k_eeprom_free_pcal_info(struct ath5k_hw *ah, int mode)
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
ath5k_eeprom_detach(struct ath5k_hw *ah)
|
||||
{
|
||||
u8 mode;
|
||||
|
||||
for (mode = AR5K_EEPROM_MODE_11A; mode <= AR5K_EEPROM_MODE_11G; mode++)
|
||||
ath5k_eeprom_free_pcal_info(ah, mode);
|
||||
}
|
||||
|
||||
/* Read conformance test limits used for regulatory control */
|
||||
static int
|
||||
ath5k_eeprom_read_ctl_info(struct ath5k_hw *ah)
|
||||
@@ -1756,37 +1759,6 @@ ath5k_eeprom_read_spur_chans(struct ath5k_hw *ah)
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
* Initialize eeprom data structure
|
||||
*/
|
||||
int
|
||||
ath5k_eeprom_init(struct ath5k_hw *ah)
|
||||
{
|
||||
int err;
|
||||
|
||||
err = ath5k_eeprom_init_header(ah);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
err = ath5k_eeprom_init_modes(ah);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
err = ath5k_eeprom_read_pcal_info(ah);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
err = ath5k_eeprom_read_ctl_info(ah);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
err = ath5k_eeprom_read_spur_chans(ah);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Read the MAC address from eeprom
|
||||
*/
|
||||
@@ -1819,3 +1791,48 @@ int ath5k_eeprom_read_mac(struct ath5k_hw *ah, u8 *mac)
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/***********************\
|
||||
* Init/Detach functions *
|
||||
\***********************/
|
||||
|
||||
/*
|
||||
* Initialize eeprom data structure
|
||||
*/
|
||||
int
|
||||
ath5k_eeprom_init(struct ath5k_hw *ah)
|
||||
{
|
||||
int err;
|
||||
|
||||
err = ath5k_eeprom_init_header(ah);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
err = ath5k_eeprom_init_modes(ah);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
err = ath5k_eeprom_read_pcal_info(ah);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
err = ath5k_eeprom_read_ctl_info(ah);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
err = ath5k_eeprom_read_spur_chans(ah);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
ath5k_eeprom_detach(struct ath5k_hw *ah)
|
||||
{
|
||||
u8 mode;
|
||||
|
||||
for (mode = AR5K_EEPROM_MODE_11A; mode <= AR5K_EEPROM_MODE_11G; mode++)
|
||||
ath5k_eeprom_free_pcal_info(ah, mode);
|
||||
}
|
||||
|
Viittaa uudesa ongelmassa
Block a user