117 REG_RMW_FIELD(ah, AR_PHY_SFCORR_EXT,
118 AR_PHY_SFCORR_EXT_M1_THRESH_LOW,
119 m1ThreshLow[on]);
120 REG_RMW_FIELD(ah, AR_PHY_SFCORR_EXT,
121 AR_PHY_SFCORR_EXT_M2_THRESH_LOW,
122 m2ThreshLow[on]);
123 REG_RMW_FIELD(ah, AR_PHY_SFCORR_EXT,
124 AR_PHY_SFCORR_EXT_M1_THRESH,
125 m1Thresh[on]);
126 REG_RMW_FIELD(ah, AR_PHY_SFCORR_EXT,
127 AR_PHY_SFCORR_EXT_M2_THRESH,
128 m2Thresh[on]);
129
130 if (on)
131 REG_SET_BIT(ah, AR_PHY_SFCORR_LOW,
132 AR_PHY_SFCORR_LOW_USE_SELF_CORR_LOW);
133 else
134 REG_CLR_BIT(ah, AR_PHY_SFCORR_LOW,
135 AR_PHY_SFCORR_LOW_USE_SELF_CORR_LOW);
136
137 if (!on != aniState->ofdmWeakSigDetectOff) {
138 if (on)
139 ahp->ah_stats.ast_ani_ofdmon++;
140 else
141 ahp->ah_stats.ast_ani_ofdmoff++;
142 aniState->ofdmWeakSigDetectOff = !on;
143 }
144 break;
145 }
146 case ATH9K_ANI_CCK_WEAK_SIGNAL_THR: {
147 const int weakSigThrCck[] = { 8, 6 };
148 uint32_t high = param ? 1 : 0;
149
150 REG_RMW_FIELD(ah, AR_PHY_CCK_DETECT,
151 AR_PHY_CCK_DETECT_WEAK_SIG_THR_CCK,
152 weakSigThrCck[high]);
153 if (high != aniState->cckWeakSigThreshold) {
154 if (high)
155 ahp->ah_stats.ast_ani_cckhigh++;
156 else
157 ahp->ah_stats.ast_ani_ccklow++;
|
117 REG_RMW_FIELD(ah, AR_PHY_SFCORR_EXT,
118 AR_PHY_SFCORR_EXT_M1_THRESH_LOW,
119 m1ThreshLow[on]);
120 REG_RMW_FIELD(ah, AR_PHY_SFCORR_EXT,
121 AR_PHY_SFCORR_EXT_M2_THRESH_LOW,
122 m2ThreshLow[on]);
123 REG_RMW_FIELD(ah, AR_PHY_SFCORR_EXT,
124 AR_PHY_SFCORR_EXT_M1_THRESH,
125 m1Thresh[on]);
126 REG_RMW_FIELD(ah, AR_PHY_SFCORR_EXT,
127 AR_PHY_SFCORR_EXT_M2_THRESH,
128 m2Thresh[on]);
129
130 if (on)
131 REG_SET_BIT(ah, AR_PHY_SFCORR_LOW,
132 AR_PHY_SFCORR_LOW_USE_SELF_CORR_LOW);
133 else
134 REG_CLR_BIT(ah, AR_PHY_SFCORR_LOW,
135 AR_PHY_SFCORR_LOW_USE_SELF_CORR_LOW);
136
137 if ((!on) != aniState->ofdmWeakSigDetectOff) {
138 if (on)
139 ahp->ah_stats.ast_ani_ofdmon++;
140 else
141 ahp->ah_stats.ast_ani_ofdmoff++;
142 aniState->ofdmWeakSigDetectOff = !on;
143 }
144 break;
145 }
146 case ATH9K_ANI_CCK_WEAK_SIGNAL_THR: {
147 const int weakSigThrCck[] = { 8, 6 };
148 uint32_t high = param ? 1 : 0;
149
150 REG_RMW_FIELD(ah, AR_PHY_CCK_DETECT,
151 AR_PHY_CCK_DETECT_WEAK_SIG_THR_CCK,
152 weakSigThrCck[high]);
153 if (high != aniState->cckWeakSigThreshold) {
154 if (high)
155 ahp->ah_stats.ast_ani_cckhigh++;
156 else
157 ahp->ah_stats.ast_ani_ccklow++;
|