|
@@ -3984,18 +3984,20 @@ static void ar9003_hw_quick_drop_apply(struct ath_hw *ah, u16 freq)
|
|
|
int quick_drop;
|
|
|
s32 t[3], f[3] = {5180, 5500, 5785};
|
|
|
|
|
|
- if (!(pBase->miscConfiguration & BIT(1)))
|
|
|
+ if (!(pBase->miscConfiguration & BIT(4)))
|
|
|
return;
|
|
|
|
|
|
- if (freq < 4000)
|
|
|
- quick_drop = eep->modalHeader2G.quick_drop;
|
|
|
- else {
|
|
|
- t[0] = eep->base_ext1.quick_drop_low;
|
|
|
- t[1] = eep->modalHeader5G.quick_drop;
|
|
|
- t[2] = eep->base_ext1.quick_drop_high;
|
|
|
- quick_drop = ar9003_hw_power_interpolate(freq, f, t, 3);
|
|
|
+ if (AR_SREV_9300(ah) || AR_SREV_9580(ah) || AR_SREV_9340(ah)) {
|
|
|
+ if (freq < 4000) {
|
|
|
+ quick_drop = eep->modalHeader2G.quick_drop;
|
|
|
+ } else {
|
|
|
+ t[0] = eep->base_ext1.quick_drop_low;
|
|
|
+ t[1] = eep->modalHeader5G.quick_drop;
|
|
|
+ t[2] = eep->base_ext1.quick_drop_high;
|
|
|
+ quick_drop = ar9003_hw_power_interpolate(freq, f, t, 3);
|
|
|
+ }
|
|
|
+ REG_RMW_FIELD(ah, AR_PHY_AGC, AR_PHY_AGC_QUICK_DROP, quick_drop);
|
|
|
}
|
|
|
- REG_RMW_FIELD(ah, AR_PHY_AGC, AR_PHY_AGC_QUICK_DROP, quick_drop);
|
|
|
}
|
|
|
|
|
|
static void ar9003_hw_txend_to_xpa_off_apply(struct ath_hw *ah, bool is2ghz)
|