Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5bc225ac authored by Lorenzo Bianconi's avatar Lorenzo Bianconi Committed by John W. Linville
Browse files

ath9k: add noise floor parameter to ath9k_hw_getchan_noise



Add nf parameter to ath9k_hw_getchan_noise() in order to compute NF for EXT
chains with the same scale of noise floor calculated on CTL chains.
ath9k_hw_getchan_noise() will be used in ath_process_fft() for spectral scan on
HT40 channels

Signed-off-by: default avatarLorenzo Bianconi <lorenzo.bianconi83@gmail.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent df3c2ade
Loading
Loading
Loading
Loading
+5 −5
Original line number Original line Diff line number Diff line
@@ -63,13 +63,13 @@ static s16 ath9k_hw_get_default_nf(struct ath_hw *ah,
	return ath9k_hw_get_nf_limits(ah, chan)->nominal;
	return ath9k_hw_get_nf_limits(ah, chan)->nominal;
}
}


s16 ath9k_hw_getchan_noise(struct ath_hw *ah, struct ath9k_channel *chan)
s16 ath9k_hw_getchan_noise(struct ath_hw *ah, struct ath9k_channel *chan,
			   s16 nf)
{
{
	s8 noise = ATH_DEFAULT_NOISE_FLOOR;
	s8 noise = ATH_DEFAULT_NOISE_FLOOR;


	if (chan && chan->noisefloor) {
	if (nf) {
		s8 delta = chan->noisefloor -
		s8 delta = nf - ATH9K_NF_CAL_NOISE_THRESH -
			   ATH9K_NF_CAL_NOISE_THRESH -
			   ath9k_hw_get_default_nf(ah, chan);
			   ath9k_hw_get_default_nf(ah, chan);
		if (delta > 0)
		if (delta > 0)
			noise += delta;
			noise += delta;
@@ -392,7 +392,7 @@ bool ath9k_hw_getnf(struct ath_hw *ah, struct ath9k_channel *chan)
	clear_bit(NFCAL_PENDING, &caldata->cal_flags);
	clear_bit(NFCAL_PENDING, &caldata->cal_flags);
	ath9k_hw_update_nfcal_hist_buffer(ah, caldata, nfarray);
	ath9k_hw_update_nfcal_hist_buffer(ah, caldata, nfarray);
	chan->noisefloor = h[0].privNF;
	chan->noisefloor = h[0].privNF;
	ah->noise = ath9k_hw_getchan_noise(ah, chan);
	ah->noise = ath9k_hw_getchan_noise(ah, chan, chan->noisefloor);
	return true;
	return true;
}
}
EXPORT_SYMBOL(ath9k_hw_getnf);
EXPORT_SYMBOL(ath9k_hw_getnf);
+2 −1
Original line number Original line Diff line number Diff line
@@ -116,7 +116,8 @@ void ath9k_init_nfcal_hist_buffer(struct ath_hw *ah,
void ath9k_hw_bstuck_nfcal(struct ath_hw *ah);
void ath9k_hw_bstuck_nfcal(struct ath_hw *ah);
void ath9k_hw_reset_calibration(struct ath_hw *ah,
void ath9k_hw_reset_calibration(struct ath_hw *ah,
				struct ath9k_cal_list *currCal);
				struct ath9k_cal_list *currCal);
s16 ath9k_hw_getchan_noise(struct ath_hw *ah, struct ath9k_channel *chan);
s16 ath9k_hw_getchan_noise(struct ath_hw *ah, struct ath9k_channel *chan,
			   s16 nf);




#endif /* CALIB_H */
#endif /* CALIB_H */
+1 −1
Original line number Original line Diff line number Diff line
@@ -1885,7 +1885,7 @@ int ath9k_hw_reset(struct ath_hw *ah, struct ath9k_channel *chan,
	} else if (caldata) {
	} else if (caldata) {
		clear_bit(PAPRD_PACKET_SENT, &caldata->cal_flags);
		clear_bit(PAPRD_PACKET_SENT, &caldata->cal_flags);
	}
	}
	ah->noise = ath9k_hw_getchan_noise(ah, chan);
	ah->noise = ath9k_hw_getchan_noise(ah, chan, chan->noisefloor);


	if (fastcc) {
	if (fastcc) {
		r = ath9k_hw_do_fastcc(ah, chan);
		r = ath9k_hw_do_fastcc(ah, chan);
+2 −1
Original line number Original line Diff line number Diff line
@@ -518,7 +518,8 @@ void ath_update_survey_nf(struct ath_softc *sc, int channel)


	if (chan->noisefloor) {
	if (chan->noisefloor) {
		survey->filled |= SURVEY_INFO_NOISE_DBM;
		survey->filled |= SURVEY_INFO_NOISE_DBM;
		survey->noise = ath9k_hw_getchan_noise(ah, chan);
		survey->noise = ath9k_hw_getchan_noise(ah, chan,
						       chan->noisefloor);
	}
	}
}
}