ath9k: merge noisefloor load implementations
AR5008+ and AR9003 currently use two separate implementations of the ath9k_hw_loadnf function. There are three main differences: - PHY registers for AR9003 are different - AR9003 always uses 3 chains, earlier versions are more selective - The AR9003 variant contains a fix for NF load timeouts This patch merges the two implementations into one, storing the register array in the ath_hw struct. The fix for NF load timeouts is not just relevant for AR9003, but also important for earlier hardware, so it's better to just keep one common implementation. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
committed by
John W. Linville
parent
b11b160def
commit
bbacee13f4
@ -510,7 +510,6 @@ struct ath_gen_timer_table {
|
||||
* AR_RTC_PLL_CONTROL for a given channel
|
||||
* @setup_calibration: set up calibration
|
||||
* @iscal_supported: used to query if a type of calibration is supported
|
||||
* @loadnf: load noise floor read from each chain on the CCA registers
|
||||
*
|
||||
* @ani_reset: reset ANI parameters to default values
|
||||
* @ani_lower_immunity: lower the noise immunity level. The level controls
|
||||
@ -564,7 +563,6 @@ struct ath_hw_private_ops {
|
||||
bool (*ani_control)(struct ath_hw *ah, enum ath9k_ani_cmd cmd,
|
||||
int param);
|
||||
void (*do_getnf)(struct ath_hw *ah, int16_t nfarray[NUM_NF_READINGS]);
|
||||
void (*loadnf)(struct ath_hw *ah, struct ath9k_channel *chan);
|
||||
|
||||
/* ANI */
|
||||
void (*ani_reset)(struct ath_hw *ah, bool is_scanning);
|
||||
@ -658,6 +656,7 @@ struct ath_hw {
|
||||
bool need_an_top2_fixup;
|
||||
u16 tx_trig_level;
|
||||
|
||||
u32 nf_regs[6];
|
||||
struct ath_nf_limits nf_2g;
|
||||
struct ath_nf_limits nf_5g;
|
||||
u16 rfsilent;
|
||||
|
Reference in New Issue
Block a user