mirror of https://gitee.com/openkylin/linux.git
ath9k_hw: add 8 points for 5G temp slop
Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
c21d34a302
commit
420e2b1b4a
|
@ -138,7 +138,8 @@ static const struct ar9300_eeprom ar9300_default = {
|
||||||
},
|
},
|
||||||
.base_ext1 = {
|
.base_ext1 = {
|
||||||
.ant_div_control = 0,
|
.ant_div_control = 0,
|
||||||
.future = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
|
.future = {0, 0, 0},
|
||||||
|
.tempslopextension = {0, 0, 0, 0, 0, 0, 0, 0}
|
||||||
},
|
},
|
||||||
.calFreqPier2G = {
|
.calFreqPier2G = {
|
||||||
FREQ2FBIN(2412, 1),
|
FREQ2FBIN(2412, 1),
|
||||||
|
@ -713,7 +714,8 @@ static const struct ar9300_eeprom ar9300_x113 = {
|
||||||
},
|
},
|
||||||
.base_ext1 = {
|
.base_ext1 = {
|
||||||
.ant_div_control = 0,
|
.ant_div_control = 0,
|
||||||
.future = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
|
.future = {0, 0, 0},
|
||||||
|
.tempslopextension = {0, 0, 0, 0, 0, 0, 0, 0}
|
||||||
},
|
},
|
||||||
.calFreqPier2G = {
|
.calFreqPier2G = {
|
||||||
FREQ2FBIN(2412, 1),
|
FREQ2FBIN(2412, 1),
|
||||||
|
@ -1289,7 +1291,8 @@ static const struct ar9300_eeprom ar9300_h112 = {
|
||||||
},
|
},
|
||||||
.base_ext1 = {
|
.base_ext1 = {
|
||||||
.ant_div_control = 0,
|
.ant_div_control = 0,
|
||||||
.future = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
|
.future = {0, 0, 0},
|
||||||
|
.tempslopextension = {0, 0, 0, 0, 0, 0, 0, 0}
|
||||||
},
|
},
|
||||||
.calFreqPier2G = {
|
.calFreqPier2G = {
|
||||||
FREQ2FBIN(2412, 1),
|
FREQ2FBIN(2412, 1),
|
||||||
|
@ -1865,7 +1868,8 @@ static const struct ar9300_eeprom ar9300_x112 = {
|
||||||
},
|
},
|
||||||
.base_ext1 = {
|
.base_ext1 = {
|
||||||
.ant_div_control = 0,
|
.ant_div_control = 0,
|
||||||
.future = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
|
.future = {0, 0, 0},
|
||||||
|
.tempslopextension = {0, 0, 0, 0, 0, 0, 0, 0}
|
||||||
},
|
},
|
||||||
.calFreqPier2G = {
|
.calFreqPier2G = {
|
||||||
FREQ2FBIN(2412, 1),
|
FREQ2FBIN(2412, 1),
|
||||||
|
@ -2440,7 +2444,8 @@ static const struct ar9300_eeprom ar9300_h116 = {
|
||||||
},
|
},
|
||||||
.base_ext1 = {
|
.base_ext1 = {
|
||||||
.ant_div_control = 0,
|
.ant_div_control = 0,
|
||||||
.future = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
|
.future = {0, 0, 0},
|
||||||
|
.tempslopextension = {0, 0, 0, 0, 0, 0, 0, 0}
|
||||||
},
|
},
|
||||||
.calFreqPier2G = {
|
.calFreqPier2G = {
|
||||||
FREQ2FBIN(2412, 1),
|
FREQ2FBIN(2412, 1),
|
||||||
|
@ -4586,7 +4591,7 @@ static int ar9003_hw_power_control_override(struct ath_hw *ah,
|
||||||
{
|
{
|
||||||
int tempSlope = 0;
|
int tempSlope = 0;
|
||||||
struct ar9300_eeprom *eep = &ah->eeprom.ar9300_eep;
|
struct ar9300_eeprom *eep = &ah->eeprom.ar9300_eep;
|
||||||
int f[3], t[3];
|
int f[8], t[8], i;
|
||||||
|
|
||||||
REG_RMW(ah, AR_PHY_TPC_11_B0,
|
REG_RMW(ah, AR_PHY_TPC_11_B0,
|
||||||
(correction[0] << AR_PHY_TPC_OLPC_GAIN_DELTA_S),
|
(correction[0] << AR_PHY_TPC_OLPC_GAIN_DELTA_S),
|
||||||
|
@ -4619,7 +4624,14 @@ static int ar9003_hw_power_control_override(struct ath_hw *ah,
|
||||||
*/
|
*/
|
||||||
if (frequency < 4000)
|
if (frequency < 4000)
|
||||||
tempSlope = eep->modalHeader2G.tempSlope;
|
tempSlope = eep->modalHeader2G.tempSlope;
|
||||||
else if (eep->base_ext2.tempSlopeLow != 0) {
|
else if ((eep->baseEepHeader.miscConfiguration & 0x20) != 0) {
|
||||||
|
for (i = 0; i < 8; i++) {
|
||||||
|
t[i] = eep->base_ext1.tempslopextension[i];
|
||||||
|
f[i] = FBIN2FREQ(eep->calFreqPier5G[i], 0);
|
||||||
|
}
|
||||||
|
tempSlope = ar9003_hw_power_interpolate((s32) frequency,
|
||||||
|
f, t, 8);
|
||||||
|
} else if (eep->base_ext2.tempSlopeLow != 0) {
|
||||||
t[0] = eep->base_ext2.tempSlopeLow;
|
t[0] = eep->base_ext2.tempSlopeLow;
|
||||||
f[0] = 5180;
|
f[0] = 5180;
|
||||||
t[1] = eep->modalHeader5G.tempSlope;
|
t[1] = eep->modalHeader5G.tempSlope;
|
||||||
|
|
|
@ -267,7 +267,8 @@ struct cal_ctl_data_5g {
|
||||||
|
|
||||||
struct ar9300_BaseExtension_1 {
|
struct ar9300_BaseExtension_1 {
|
||||||
u8 ant_div_control;
|
u8 ant_div_control;
|
||||||
u8 future[11];
|
u8 future[3];
|
||||||
|
u8 tempslopextension[8];
|
||||||
int8_t quick_drop_low;
|
int8_t quick_drop_low;
|
||||||
int8_t quick_drop_high;
|
int8_t quick_drop_high;
|
||||||
} __packed;
|
} __packed;
|
||||||
|
|
|
@ -96,6 +96,7 @@
|
||||||
|
|
||||||
#define ATH9K_POW_SM(_r, _s) (((_r) & 0x3f) << (_s))
|
#define ATH9K_POW_SM(_r, _s) (((_r) & 0x3f) << (_s))
|
||||||
#define FREQ2FBIN(x, y) ((y) ? ((x) - 2300) : (((x) - 4800) / 5))
|
#define FREQ2FBIN(x, y) ((y) ? ((x) - 2300) : (((x) - 4800) / 5))
|
||||||
|
#define FBIN2FREQ(x, y) ((y) ? (2300 + x) : (4800 + 5 * x))
|
||||||
#define ath9k_hw_use_flash(_ah) (!(_ah->ah_flags & AH_USE_EEPROM))
|
#define ath9k_hw_use_flash(_ah) (!(_ah->ah_flags & AH_USE_EEPROM))
|
||||||
|
|
||||||
#define AR5416_VER_MASK (eep->baseEepHeader.version & AR5416_EEP_VER_MINOR_MASK)
|
#define AR5416_VER_MASK (eep->baseEepHeader.version & AR5416_EEP_VER_MINOR_MASK)
|
||||||
|
|
Loading…
Reference in New Issue