All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/6] ath9k: AR9002 calibration fixes
@ 2020-04-24  0:49 Sergey Ryazanov
  2020-04-24  0:49 ` [PATCH 1/6] ath9k: fix AR9002 ADC and NF calibrations Sergey Ryazanov
                   ` (5 more replies)
  0 siblings, 6 replies; 8+ messages in thread
From: Sergey Ryazanov @ 2020-04-24  0:49 UTC (permalink / raw)
  To: Kalle Valo; +Cc: QCA ath9k Development, linux-wireless

Hello,

I am faced a situation where the AR9220 AGC is goes crazy in case of a
low Rx signal in a noisy environment. It seems like it turned off the
internal LNA, so low signal neighbours become completely inaccessable,
and RSSI of neighbours with a strong signal drops by around 30 dB.
Periodic NF calibration perfectly solves this situation. But the NF
calibration itself in some cases could be blocked by the ADCs & I/Q
calibrations forever. This series is an attempt to address these NF
calibration blocking issues.

The first patch disables ADC gain & offset calibrations for unsupported
channels. The second patch is a trivial code cleanup.

And the last four patches together prevent the NF calibration infinite
deferring. They limit the run time of individual calibration, allow
correct running of NF calibration in between ADCs & I/Q calibrations
and prevent missing of NF periodic calibrations.

Run tested with AR9220 based NIC.

Sergey Ryazanov (6):
  ath9k: fix AR9002 ADC and NF calibrations
  ath9k: remove needless NFCAL_PENDING flag setting
  ath9k: do not miss longcal on AR9002
  ath9k: interleaved NF calibration on AR9002
  ath9k: invalidate all calibrations at once
  ath9k: add calibration timeout for AR9002

 drivers/net/wireless/ath/ath9k/ar9002_calib.c | 49 +++++++++++++++----
 drivers/net/wireless/ath/ath9k/calib.c        | 16 +++---
 drivers/net/wireless/ath/ath9k/hw.h           |  2 +
 3 files changed, 51 insertions(+), 16 deletions(-)

-- 
2.24.1


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 1/6] ath9k: fix AR9002 ADC and NF calibrations
  2020-04-24  0:49 [PATCH 0/6] ath9k: AR9002 calibration fixes Sergey Ryazanov
@ 2020-04-24  0:49 ` Sergey Ryazanov
  2020-04-28  9:07   ` Kalle Valo
  2020-04-24  0:49 ` [PATCH 2/6] ath9k: remove needless NFCAL_PENDING flag setting Sergey Ryazanov
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 8+ messages in thread
From: Sergey Ryazanov @ 2020-04-24  0:49 UTC (permalink / raw)
  To: Kalle Valo; +Cc: QCA ath9k Development, linux-wireless

ADC calibration is only required for a 80 MHz sampling rate (i.e. for
40 MHz channels), when the chip utilizes the pair of ADCs in interleved
mode. Calibration on a 20 MHz channel will never be completed.

Previous channel check is trying to exclude all channels where the
calibration will get stuck. It effectively blocks the calibration run
for HT20 channels, but fails to exclude 20 MHz channels without HT (e.g.
legacy mode channels).

Fix this issue by reworking the channel check to explicitly allow ADCs
gain & DC offset calibrations for HT40 channels only. Also update the
complicated comment to make it clear that these calibrations are for
multi-ADC mode only.

Stuck ADCs calibration blocks the NF calibration, what could make it
impossible to work in a noisy evironment: too big Rx attentuation,
invalid RSSI value, etc. So this change is actually more of a NF
calibration fix rather then the ADC calibration fix.

Run tested with AR9220.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>
---
 drivers/net/wireless/ath/ath9k/ar9002_calib.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/net/wireless/ath/ath9k/ar9002_calib.c b/drivers/net/wireless/ath/ath9k/ar9002_calib.c
index fd9db8ca99d7..14eee06744ed 100644
--- a/drivers/net/wireless/ath/ath9k/ar9002_calib.c
+++ b/drivers/net/wireless/ath/ath9k/ar9002_calib.c
@@ -37,9 +37,8 @@ static bool ar9002_hw_is_cal_supported(struct ath_hw *ah,
 		break;
 	case ADC_GAIN_CAL:
 	case ADC_DC_CAL:
-		/* Run ADC Gain Cal for non-CCK & non 2GHz-HT20 only */
-		if (!((IS_CHAN_2GHZ(chan) || IS_CHAN_A_FAST_CLOCK(ah, chan)) &&
-		      IS_CHAN_HT20(chan)))
+		/* Run even/odd ADCs calibrations for HT40 channels only */
+		if (IS_CHAN_HT40(chan))
 			supported = true;
 		break;
 	}
-- 
2.24.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 2/6] ath9k: remove needless NFCAL_PENDING flag setting
  2020-04-24  0:49 [PATCH 0/6] ath9k: AR9002 calibration fixes Sergey Ryazanov
  2020-04-24  0:49 ` [PATCH 1/6] ath9k: fix AR9002 ADC and NF calibrations Sergey Ryazanov
@ 2020-04-24  0:49 ` Sergey Ryazanov
  2020-04-24  0:49 ` [PATCH 3/6] ath9k: do not miss longcal on AR9002 Sergey Ryazanov
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: Sergey Ryazanov @ 2020-04-24  0:49 UTC (permalink / raw)
  To: Kalle Valo; +Cc: QCA ath9k Development, linux-wireless

The NFCAL_PENDING flag is set by the ath9k_hw_start_nfcal() routine,
so there is no reason to set it manually after calling it during the
AR9002 calibrations initialization.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>
---
 drivers/net/wireless/ath/ath9k/ar9002_calib.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/drivers/net/wireless/ath/ath9k/ar9002_calib.c b/drivers/net/wireless/ath/ath9k/ar9002_calib.c
index 14eee06744ed..0f7c5812e5c2 100644
--- a/drivers/net/wireless/ath/ath9k/ar9002_calib.c
+++ b/drivers/net/wireless/ath/ath9k/ar9002_calib.c
@@ -857,9 +857,6 @@ static bool ar9002_hw_init_cal(struct ath_hw *ah, struct ath9k_channel *chan)
 	ath9k_hw_loadnf(ah, chan);
 	ath9k_hw_start_nfcal(ah, true);
 
-	if (ah->caldata)
-		set_bit(NFCAL_PENDING, &ah->caldata->cal_flags);
-
 	ah->cal_list = ah->cal_list_last = ah->cal_list_curr = NULL;
 
 	/* Enable IQ, ADC Gain and ADC DC offset CALs */
-- 
2.24.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 3/6] ath9k: do not miss longcal on AR9002
  2020-04-24  0:49 [PATCH 0/6] ath9k: AR9002 calibration fixes Sergey Ryazanov
  2020-04-24  0:49 ` [PATCH 1/6] ath9k: fix AR9002 ADC and NF calibrations Sergey Ryazanov
  2020-04-24  0:49 ` [PATCH 2/6] ath9k: remove needless NFCAL_PENDING flag setting Sergey Ryazanov
@ 2020-04-24  0:49 ` Sergey Ryazanov
  2020-04-24  0:49 ` [PATCH 4/6] ath9k: interleaved NF calibration " Sergey Ryazanov
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: Sergey Ryazanov @ 2020-04-24  0:49 UTC (permalink / raw)
  To: Kalle Valo; +Cc: QCA ath9k Development, linux-wireless

Each of AGC & I/Q calibrations can take a long time. Long calibration
and NF calibration in particular are forbiden for parallel run with
ADC & I/Q calibrations. So, the chip could not be ready to perform the
long calibration at the time of request. And a request to perform the
long calibration may be lost.

In order to fix this, preserve the long calibration request as a
calibration state flag and restore the long calibration request each
time the calibration function is called again (i.e. on each subsequent
ivocation of the short calibration).

This feature will be twice useful after the next change, which will
make it possible to start the long calibration before all ADCs & I/Q
calibrations are completed.

Run tested with AR9220.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>
---
 drivers/net/wireless/ath/ath9k/ar9002_calib.c | 10 +++++++++-
 drivers/net/wireless/ath/ath9k/hw.h           |  1 +
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/drivers/net/wireless/ath/ath9k/ar9002_calib.c b/drivers/net/wireless/ath/ath9k/ar9002_calib.c
index 0f7c5812e5c2..ad8db7720993 100644
--- a/drivers/net/wireless/ath/ath9k/ar9002_calib.c
+++ b/drivers/net/wireless/ath/ath9k/ar9002_calib.c
@@ -663,8 +663,13 @@ static int ar9002_hw_calibrate(struct ath_hw *ah, struct ath9k_channel *chan,
 	int ret;
 
 	nfcal = !!(REG_READ(ah, AR_PHY_AGC_CONTROL) & AR_PHY_AGC_CONTROL_NF);
-	if (ah->caldata)
+	if (ah->caldata) {
 		nfcal_pending = test_bit(NFCAL_PENDING, &ah->caldata->cal_flags);
+		if (longcal)		/* Remember to not miss */
+			set_bit(LONGCAL_PENDING, &ah->caldata->cal_flags);
+		else if (test_bit(LONGCAL_PENDING, &ah->caldata->cal_flags))
+			longcal = true;	/* Respin a previous one */
+	}
 
 	percal_pending = (currCal &&
 			  (currCal->calState == CAL_RUNNING ||
@@ -700,6 +705,9 @@ static int ar9002_hw_calibrate(struct ath_hw *ah, struct ath9k_channel *chan,
 		}
 
 		if (longcal) {
+			if (ah->caldata)
+				clear_bit(LONGCAL_PENDING,
+					  &ah->caldata->cal_flags);
 			ath9k_hw_start_nfcal(ah, false);
 			/* Do periodic PAOffset Cal */
 			ar9002_hw_pa_cal(ah, false);
diff --git a/drivers/net/wireless/ath/ath9k/hw.h b/drivers/net/wireless/ath/ath9k/hw.h
index 2e4489700a85..c99f3c77c823 100644
--- a/drivers/net/wireless/ath/ath9k/hw.h
+++ b/drivers/net/wireless/ath/ath9k/hw.h
@@ -427,6 +427,7 @@ enum ath9k_cal_flags {
 	TXIQCAL_DONE,
 	TXCLCAL_DONE,
 	SW_PKDET_DONE,
+	LONGCAL_PENDING,
 };
 
 struct ath9k_hw_cal_data {
-- 
2.24.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 4/6] ath9k: interleaved NF calibration on AR9002
  2020-04-24  0:49 [PATCH 0/6] ath9k: AR9002 calibration fixes Sergey Ryazanov
                   ` (2 preceding siblings ...)
  2020-04-24  0:49 ` [PATCH 3/6] ath9k: do not miss longcal on AR9002 Sergey Ryazanov
@ 2020-04-24  0:49 ` Sergey Ryazanov
  2020-04-24  0:49 ` [PATCH 5/6] ath9k: invalidate all calibrations at once Sergey Ryazanov
  2020-04-24  0:49 ` [PATCH 6/6] ath9k: add calibration timeout for AR9002 Sergey Ryazanov
  5 siblings, 0 replies; 8+ messages in thread
From: Sergey Ryazanov @ 2020-04-24  0:49 UTC (permalink / raw)
  To: Kalle Valo; +Cc: QCA ath9k Development, linux-wireless

NF calibration and other elements of long calibration are usually faster
than ADCs & I/Q calibrations due to independence of receiption of the
OFDM signal. Moreover sometime I/Q calibration can not be completed at
all without preceding NF calibration. This is due to AGC, which has a
habit to block a weak signal without regular NF calibration. Thus, we do
not need to deferr the long calibration forever.

So, if the long calibration is requested, then deferr the ADCs & I/Q
calibration(s) and run the longcal (the NF calibration in particular) to
obtain fresh noise data.

Run tested with AR9220.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>
---
 drivers/net/wireless/ath/ath9k/ar9002_calib.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/ath/ath9k/ar9002_calib.c b/drivers/net/wireless/ath/ath9k/ar9002_calib.c
index ad8db7720993..68188f500949 100644
--- a/drivers/net/wireless/ath/ath9k/ar9002_calib.c
+++ b/drivers/net/wireless/ath/ath9k/ar9002_calib.c
@@ -680,8 +680,12 @@ static int ar9002_hw_calibrate(struct ath_hw *ah, struct ath9k_channel *chan,
 			return 0;
 
 		ah->cal_list_curr = currCal = currCal->calNext;
-		if (currCal->calState == CAL_WAITING)
-			ath9k_hw_reset_calibration(ah, currCal);
+		percal_pending = currCal->calState == CAL_WAITING;
+	}
+
+	/* Do not start a next calibration if the longcal is in action */
+	if (percal_pending && !nfcal && !longcal) {
+		ath9k_hw_reset_calibration(ah, currCal);
 
 		return 0;
 	}
-- 
2.24.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 5/6] ath9k: invalidate all calibrations at once
  2020-04-24  0:49 [PATCH 0/6] ath9k: AR9002 calibration fixes Sergey Ryazanov
                   ` (3 preceding siblings ...)
  2020-04-24  0:49 ` [PATCH 4/6] ath9k: interleaved NF calibration " Sergey Ryazanov
@ 2020-04-24  0:49 ` Sergey Ryazanov
  2020-04-24  0:49 ` [PATCH 6/6] ath9k: add calibration timeout for AR9002 Sergey Ryazanov
  5 siblings, 0 replies; 8+ messages in thread
From: Sergey Ryazanov @ 2020-04-24  0:49 UTC (permalink / raw)
  To: Kalle Valo; +Cc: QCA ath9k Development, linux-wireless

Previously after the calibration validity period is over,
calibrations are invalidated in a one at time manner. So, for AR9002
family, which has three calibrations, the full recalibration interval
becomes 3 x ATH_RESTART_CALINTERVAL. And each next calibration will be
separated by the ATH_RESTART_CALINTERVAL time from a previous one.

It seems like it is better to do whole recalibration at once. Also, this
change makes the driver behaviour a little simpler. So, invalidate all
calibrations at once at the end of the calibration validity interval.

This change affects only AR9002 chips family, since the AR9003 utilize
only a single calibration.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>
---
 drivers/net/wireless/ath/ath9k/calib.c | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/drivers/net/wireless/ath/ath9k/calib.c b/drivers/net/wireless/ath/ath9k/calib.c
index 695c779ae8cf..2ac3eefd3851 100644
--- a/drivers/net/wireless/ath/ath9k/calib.c
+++ b/drivers/net/wireless/ath/ath9k/calib.c
@@ -209,14 +209,17 @@ bool ath9k_hw_reset_calvalid(struct ath_hw *ah)
 		return true;
 	}
 
-	if (!(ah->supp_cals & currCal->calData->calType))
-		return true;
+	currCal = ah->cal_list;
+	do {
+		ath_dbg(common, CALIBRATE, "Resetting Cal %d state for channel %u\n",
+			currCal->calData->calType,
+			ah->curchan->chan->center_freq);
 
-	ath_dbg(common, CALIBRATE, "Resetting Cal %d state for channel %u\n",
-		currCal->calData->calType, ah->curchan->chan->center_freq);
+		ah->caldata->CalValid &= ~currCal->calData->calType;
+		currCal->calState = CAL_WAITING;
 
-	ah->caldata->CalValid &= ~currCal->calData->calType;
-	currCal->calState = CAL_WAITING;
+		currCal = currCal->calNext;
+	} while (currCal != ah->cal_list);
 
 	return false;
 }
-- 
2.24.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 6/6] ath9k: add calibration timeout for AR9002
  2020-04-24  0:49 [PATCH 0/6] ath9k: AR9002 calibration fixes Sergey Ryazanov
                   ` (4 preceding siblings ...)
  2020-04-24  0:49 ` [PATCH 5/6] ath9k: invalidate all calibrations at once Sergey Ryazanov
@ 2020-04-24  0:49 ` Sergey Ryazanov
  5 siblings, 0 replies; 8+ messages in thread
From: Sergey Ryazanov @ 2020-04-24  0:49 UTC (permalink / raw)
  To: Kalle Valo; +Cc: QCA ath9k Development, linux-wireless

ADC & I/Q calibrations could take infinite time to comple, since they
depend on received frames. In particular the I/Q mismatch calibration
requires receiving of OFDM frames for completion. But in the 2.4GHz
band, a station could receive only CCK frames for a very long time.

And while we wait for the completion of one of the mentioned
calibrations, the NF calibration is blocked. Moreover, in some
environments, I/Q calibration is unable to complete until a correct
noise calibration will be performed due to AGC behaviour.

In order to avoid delaying NF calibration on forever, limit the maximum
duration of ADCs & I/Q calibrations. If the calibration is not completed
within the maximum time, it will be interrupted and a next calibration
will be performed. The code that selects the next calibration has been
reworked to the loop so incompleted calibration will be respinned later.

А maximum calibration time of 30 seconds was selected to give the
calibration enough time to complete and to not interfere with the long
(NF) calibration.

Run tested with AR9220.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>
---
 drivers/net/wireless/ath/ath9k/ar9002_calib.c | 25 +++++++++++++++++--
 drivers/net/wireless/ath/ath9k/calib.c        |  1 +
 drivers/net/wireless/ath/ath9k/hw.h           |  1 +
 3 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/ath/ath9k/ar9002_calib.c b/drivers/net/wireless/ath/ath9k/ar9002_calib.c
index 68188f500949..fd53b5f9e9b5 100644
--- a/drivers/net/wireless/ath/ath9k/ar9002_calib.c
+++ b/drivers/net/wireless/ath/ath9k/ar9002_calib.c
@@ -19,6 +19,8 @@
 #include "ar9002_phy.h"
 
 #define AR9285_CLCAL_REDO_THRESH    1
+/* AGC & I/Q calibrations time limit, ms */
+#define AR9002_CAL_MAX_TIME		30000
 
 enum ar9002_cal_types {
 	ADC_GAIN_CAL = BIT(0),
@@ -104,6 +106,14 @@ static bool ar9002_hw_per_calibration(struct ath_hw *ah,
 			} else {
 				ar9002_hw_setup_calibration(ah, currCal);
 			}
+		} else if (time_after(jiffies, ah->cal_start_time +
+				      msecs_to_jiffies(AR9002_CAL_MAX_TIME))) {
+			REG_CLR_BIT(ah, AR_PHY_TIMING_CTRL4(0),
+				    AR_PHY_TIMING_CTRL4_DO_CAL);
+			ath_dbg(ath9k_hw_common(ah), CALIBRATE,
+				"calibration timeout\n");
+			currCal->calState = CAL_WAITING;	/* Try later */
+			iscaldone = true;
 		}
 	} else if (!(caldata->CalValid & currCal->calData->calType)) {
 		ath9k_hw_reset_calibration(ah, currCal);
@@ -679,8 +689,19 @@ static int ar9002_hw_calibrate(struct ath_hw *ah, struct ath9k_channel *chan,
 		if (!ar9002_hw_per_calibration(ah, chan, rxchainmask, currCal))
 			return 0;
 
-		ah->cal_list_curr = currCal = currCal->calNext;
-		percal_pending = currCal->calState == CAL_WAITING;
+		/* Looking for next waiting calibration if any */
+		for (currCal = currCal->calNext; currCal != ah->cal_list_curr;
+		     currCal = currCal->calNext) {
+			if (currCal->calState == CAL_WAITING)
+				break;
+		}
+		if (currCal->calState == CAL_WAITING) {
+			percal_pending = true;
+			ah->cal_list_curr = currCal;
+		} else {
+			percal_pending = false;
+			ah->cal_list_curr = ah->cal_list;
+		}
 	}
 
 	/* Do not start a next calibration if the longcal is in action */
diff --git a/drivers/net/wireless/ath/ath9k/calib.c b/drivers/net/wireless/ath/ath9k/calib.c
index 2ac3eefd3851..0422a33395b7 100644
--- a/drivers/net/wireless/ath/ath9k/calib.c
+++ b/drivers/net/wireless/ath/ath9k/calib.c
@@ -176,6 +176,7 @@ void ath9k_hw_reset_calibration(struct ath_hw *ah,
 
 	ath9k_hw_setup_calibration(ah, currCal);
 
+	ah->cal_start_time = jiffies;
 	currCal->calState = CAL_RUNNING;
 
 	for (i = 0; i < AR5416_MAX_CHAINS; i++) {
diff --git a/drivers/net/wireless/ath/ath9k/hw.h b/drivers/net/wireless/ath/ath9k/hw.h
index c99f3c77c823..023599e10dd5 100644
--- a/drivers/net/wireless/ath/ath9k/hw.h
+++ b/drivers/net/wireless/ath/ath9k/hw.h
@@ -834,6 +834,7 @@ struct ath_hw {
 
 	/* Calibration */
 	u32 supp_cals;
+	unsigned long cal_start_time;
 	struct ath9k_cal_list iq_caldata;
 	struct ath9k_cal_list adcgain_caldata;
 	struct ath9k_cal_list adcdc_caldata;
-- 
2.24.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH 1/6] ath9k: fix AR9002 ADC and NF calibrations
  2020-04-24  0:49 ` [PATCH 1/6] ath9k: fix AR9002 ADC and NF calibrations Sergey Ryazanov
@ 2020-04-28  9:07   ` Kalle Valo
  0 siblings, 0 replies; 8+ messages in thread
From: Kalle Valo @ 2020-04-28  9:07 UTC (permalink / raw)
  To: Sergey Ryazanov; +Cc: QCA ath9k Development, linux-wireless

Sergey Ryazanov <ryazanov.s.a@gmail.com> wrote:

> ADC calibration is only required for a 80 MHz sampling rate (i.e. for
> 40 MHz channels), when the chip utilizes the pair of ADCs in interleved
> mode. Calibration on a 20 MHz channel will never be completed.
> 
> Previous channel check is trying to exclude all channels where the
> calibration will get stuck. It effectively blocks the calibration run
> for HT20 channels, but fails to exclude 20 MHz channels without HT (e.g.
> legacy mode channels).
> 
> Fix this issue by reworking the channel check to explicitly allow ADCs
> gain & DC offset calibrations for HT40 channels only. Also update the
> complicated comment to make it clear that these calibrations are for
> multi-ADC mode only.
> 
> Stuck ADCs calibration blocks the NF calibration, what could make it
> impossible to work in a noisy evironment: too big Rx attentuation,
> invalid RSSI value, etc. So this change is actually more of a NF
> calibration fix rather then the ADC calibration fix.
> 
> Run tested with AR9220.
> 
> Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>
> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>

6 patches applied to ath-next branch of ath.git, thanks.

d6cae2bc195b ath9k: fix AR9002 ADC and NF calibrations
93f8d4223163 ath9k: remove needless NFCAL_PENDING flag setting
41ba50fd6cac ath9k: do not miss longcal on AR9002
2bb7027b64b6 ath9k: interleaved NF calibration on AR9002
ded6ff15a191 ath9k: invalidate all calibrations at once
d8d20845c7f1 ath9k: add calibration timeout for AR9002

-- 
https://patchwork.kernel.org/patch/11506891/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2020-04-28  9:08 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-24  0:49 [PATCH 0/6] ath9k: AR9002 calibration fixes Sergey Ryazanov
2020-04-24  0:49 ` [PATCH 1/6] ath9k: fix AR9002 ADC and NF calibrations Sergey Ryazanov
2020-04-28  9:07   ` Kalle Valo
2020-04-24  0:49 ` [PATCH 2/6] ath9k: remove needless NFCAL_PENDING flag setting Sergey Ryazanov
2020-04-24  0:49 ` [PATCH 3/6] ath9k: do not miss longcal on AR9002 Sergey Ryazanov
2020-04-24  0:49 ` [PATCH 4/6] ath9k: interleaved NF calibration " Sergey Ryazanov
2020-04-24  0:49 ` [PATCH 5/6] ath9k: invalidate all calibrations at once Sergey Ryazanov
2020-04-24  0:49 ` [PATCH 6/6] ath9k: add calibration timeout for AR9002 Sergey Ryazanov

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.