* [PATCH v4 0/4] Fix the way ANI is being handled for ar9100 and ar9340
@ 2011-12-03 3:39 Nikolay Martynov
2011-12-03 3:39 ` [PATCH v4 1/4] ath9k: trivial: cosmetic fix in calibration debug log Nikolay Martynov
` (3 more replies)
0 siblings, 4 replies; 7+ messages in thread
From: Nikolay Martynov @ 2011-12-03 3:39 UTC (permalink / raw)
To: linville; +Cc: linux-wireless, Nikolay Martynov
Resending patches after fixing compilation problem noted by Felix.
Nikolay Martynov (4):
ath9k: trivial: cosmetic fix in calibration debug log
ath9k: change calibration debug log to output all calibration types
ath9k: use config.enable_ani to check if ani should be performed
ath9k: enable ANI for ar9100 chips
drivers/net/wireless/ath/ath9k/ar9002_calib.c | 2 +-
drivers/net/wireless/ath/ath9k/ar9003_calib.c | 2 +-
drivers/net/wireless/ath/ath9k/htc_drv_main.c | 5 +++--
drivers/net/wireless/ath/ath9k/hw.c | 6 +++++-
drivers/net/wireless/ath/ath9k/main.c | 13 ++++++++-----
5 files changed, 18 insertions(+), 10 deletions(-)
--
1.7.4.1
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v4 1/4] ath9k: trivial: cosmetic fix in calibration debug log
2011-12-03 3:39 [PATCH v4 0/4] Fix the way ANI is being handled for ar9100 and ar9340 Nikolay Martynov
@ 2011-12-03 3:39 ` Nikolay Martynov
2011-12-03 3:39 ` [PATCH v4 2/4] ath9k: change calibration debug log to output all calibration types Nikolay Martynov
` (2 subsequent siblings)
3 siblings, 0 replies; 7+ messages in thread
From: Nikolay Martynov @ 2011-12-03 3:39 UTC (permalink / raw)
To: linville; +Cc: linux-wireless, Nikolay Martynov
Add missed space and change typo in calibration debugging log.
Signed-off-by: Nikolay Martynov <mar.kolya@gmail.com>
---
drivers/net/wireless/ath/ath9k/ar9002_calib.c | 2 +-
drivers/net/wireless/ath/ath9k/ar9003_calib.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/wireless/ath/ath9k/ar9002_calib.c b/drivers/net/wireless/ath/ath9k/ar9002_calib.c
index 88279e3..157337f 100644
--- a/drivers/net/wireless/ath/ath9k/ar9002_calib.c
+++ b/drivers/net/wireless/ath/ath9k/ar9002_calib.c
@@ -203,7 +203,7 @@ static void ar9002_hw_iqcalibrate(struct ath_hw *ah, u8 numChains)
i);
ath_dbg(common, ATH_DBG_CALIBRATE,
- "Orignal: Chn %diq_corr_meas = 0x%08x\n",
+ "Original: Chn %d iq_corr_meas = 0x%08x\n",
i, ah->totalIqCorrMeas[i]);
iqCorrNeg = 0;
diff --git a/drivers/net/wireless/ath/ath9k/ar9003_calib.c b/drivers/net/wireless/ath/ath9k/ar9003_calib.c
index ddeba86..23b3a6c 100644
--- a/drivers/net/wireless/ath/ath9k/ar9003_calib.c
+++ b/drivers/net/wireless/ath/ath9k/ar9003_calib.c
@@ -226,7 +226,7 @@ static void ar9003_hw_iqcalibrate(struct ath_hw *ah, u8 numChains)
i);
ath_dbg(common, ATH_DBG_CALIBRATE,
- "Orignal: Chn %diq_corr_meas = 0x%08x\n",
+ "Original: Chn %d iq_corr_meas = 0x%08x\n",
i, ah->totalIqCorrMeas[i]);
iqCorrNeg = 0;
--
1.7.4.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v4 2/4] ath9k: change calibration debug log to output all calibration types
2011-12-03 3:39 [PATCH v4 0/4] Fix the way ANI is being handled for ar9100 and ar9340 Nikolay Martynov
2011-12-03 3:39 ` [PATCH v4 1/4] ath9k: trivial: cosmetic fix in calibration debug log Nikolay Martynov
@ 2011-12-03 3:39 ` Nikolay Martynov
2011-12-03 3:39 ` [PATCH v4 3/4] ath9k: use config.enable_ani to check if ani should be performed Nikolay Martynov
2011-12-03 3:39 ` [PATCH v4 4/4] ath9k: enable ANI for ar9100 chips Nikolay Martynov
3 siblings, 0 replies; 7+ messages in thread
From: Nikolay Martynov @ 2011-12-03 3:39 UTC (permalink / raw)
To: linville; +Cc: linux-wireless, Nikolay Martynov
To help debugging write a log entry when long calibration, short
calibration or ANI is performed.
Signed-off-by: Nikolay Martynov <mar.kolya@gmail.com>
---
drivers/net/wireless/ath/ath9k/main.c | 8 +++++---
1 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c
index fd59c1f..461afb9 100644
--- a/drivers/net/wireless/ath/ath9k/main.c
+++ b/drivers/net/wireless/ath/ath9k/main.c
@@ -561,7 +561,6 @@ void ath_ani_calibrate(unsigned long data)
/* Long calibration runs independently of short calibration. */
if ((timestamp - common->ani.longcal_timer) >= long_cal_interval) {
longcal = true;
- ath_dbg(common, ATH_DBG_ANI, "longcal @%lu\n", jiffies);
common->ani.longcal_timer = timestamp;
}
@@ -569,8 +568,6 @@ void ath_ani_calibrate(unsigned long data)
if (!common->ani.caldone) {
if ((timestamp - common->ani.shortcal_timer) >= short_cal_interval) {
shortcal = true;
- ath_dbg(common, ATH_DBG_ANI,
- "shortcal @%lu\n", jiffies);
common->ani.shortcal_timer = timestamp;
common->ani.resetcal_timer = timestamp;
}
@@ -605,6 +602,11 @@ void ath_ani_calibrate(unsigned long data)
ah->rxchainmask, longcal);
}
+ ath_dbg(common, ATH_DBG_ANI,
+ "Calibration @%lu finished: %s %s %s, caldone: %s\n", jiffies,
+ longcal ? "long" : "", shortcal ? "short" : "",
+ aniflag ? "ani" : "", common->ani.caldone ? "true" : "false");
+
ath9k_ps_restore(sc);
set_timer:
--
1.7.4.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v4 3/4] ath9k: use config.enable_ani to check if ani should be performed
2011-12-03 3:39 [PATCH v4 0/4] Fix the way ANI is being handled for ar9100 and ar9340 Nikolay Martynov
2011-12-03 3:39 ` [PATCH v4 1/4] ath9k: trivial: cosmetic fix in calibration debug log Nikolay Martynov
2011-12-03 3:39 ` [PATCH v4 2/4] ath9k: change calibration debug log to output all calibration types Nikolay Martynov
@ 2011-12-03 3:39 ` Nikolay Martynov
2011-12-03 3:39 ` [PATCH v4 4/4] ath9k: enable ANI for ar9100 chips Nikolay Martynov
3 siblings, 0 replies; 7+ messages in thread
From: Nikolay Martynov @ 2011-12-03 3:39 UTC (permalink / raw)
To: linville; +Cc: linux-wireless, Nikolay Martynov
Currently in ath9k code there is an attempt which is meant to
disable ANI for ar9100 and ar9340. But it doesn't really achieve
this. All it does is disable ANI init and setup (i.e. calls to
ath9k_hw_ani_setup and ath9k_hw_ani_init). Since ath9k_hw_ani_setup is
not called ah->config.ani_poll_interval is never initialized (i.e. it
is always zero) and ath_ani_calibrate always executes ANI procedures
(over uninitialized ANI parameters).
Moreover, ath_ani_calibrate is being called each 1ms because
common->ani.timer is set to zero interval because
ah->config.ani_poll_interval==0 (and thus smallest value of all
intervals). Normally it should not be called this often.
This patch changes the code so config.enable_ani is used to check if
ANI should be performed.
config.enable_ani is initialized to true by default. This patch sets
it to false for ar9100 and ar9340.
Signed-off-by: Nikolay Martynov <mar.kolya@gmail.com>
---
drivers/net/wireless/ath/ath9k/htc_drv_main.c | 5 +++--
drivers/net/wireless/ath/ath9k/hw.c | 6 +++++-
drivers/net/wireless/ath/ath9k/main.c | 5 +++--
3 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_main.c b/drivers/net/wireless/ath/ath9k/htc_drv_main.c
index 0b9a0e8..f8ce4ea 100644
--- a/drivers/net/wireless/ath/ath9k/htc_drv_main.c
+++ b/drivers/net/wireless/ath/ath9k/htc_drv_main.c
@@ -808,7 +808,8 @@ void ath9k_htc_ani_work(struct work_struct *work)
}
/* Verify whether we must check ANI */
- if ((timestamp - common->ani.checkani_timer) >= ATH_ANI_POLLINTERVAL) {
+ if (ah->config.enable_ani &&
+ (timestamp - common->ani.checkani_timer) >= ATH_ANI_POLLINTERVAL) {
aniflag = true;
common->ani.checkani_timer = timestamp;
}
@@ -838,7 +839,7 @@ set_timer:
* short calibration and long calibration.
*/
cal_interval = ATH_LONG_CALINTERVAL;
- if (priv->ah->config.enable_ani)
+ if (ah->config.enable_ani)
cal_interval = min(cal_interval, (u32)ATH_ANI_POLLINTERVAL);
if (!common->ani.caldone)
cal_interval = min(cal_interval, (u32)short_cal_interval);
diff --git a/drivers/net/wireless/ath/ath9k/hw.c b/drivers/net/wireless/ath/ath9k/hw.c
index caf572c..9871072 100644
--- a/drivers/net/wireless/ath/ath9k/hw.c
+++ b/drivers/net/wireless/ath/ath9k/hw.c
@@ -504,7 +504,7 @@ static int ath9k_hw_post_init(struct ath_hw *ah)
return ecode;
}
- if (!AR_SREV_9100(ah) && !AR_SREV_9340(ah)) {
+ if (ah->config.enable_ani) {
ath9k_hw_ani_setup(ah);
ath9k_hw_ani_init(ah);
}
@@ -610,6 +610,10 @@ static int __ath9k_hw_init(struct ath_hw *ah)
if (!AR_SREV_9300_20_OR_LATER(ah))
ah->ani_function &= ~ATH9K_ANI_MRC_CCK;
+ /* disable ANI for 9100 and 9340 */
+ if (AR_SREV_9100(ah) || AR_SREV_9340(ah))
+ ah->config.enable_ani = false;
+
ath9k_hw_init_mode_regs(ah);
if (!ah->is_pciexpress)
diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c
index 461afb9..93fa4f3 100644
--- a/drivers/net/wireless/ath/ath9k/main.c
+++ b/drivers/net/wireless/ath/ath9k/main.c
@@ -581,8 +581,9 @@ void ath_ani_calibrate(unsigned long data)
}
/* Verify whether we must check ANI */
- if ((timestamp - common->ani.checkani_timer) >=
- ah->config.ani_poll_interval) {
+ if (sc->sc_ah->config.enable_ani
+ && (timestamp - common->ani.checkani_timer) >=
+ ah->config.ani_poll_interval) {
aniflag = true;
common->ani.checkani_timer = timestamp;
}
--
1.7.4.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v4 4/4] ath9k: enable ANI for ar9100 chips
2011-12-03 3:39 [PATCH v4 0/4] Fix the way ANI is being handled for ar9100 and ar9340 Nikolay Martynov
` (2 preceding siblings ...)
2011-12-03 3:39 ` [PATCH v4 3/4] ath9k: use config.enable_ani to check if ani should be performed Nikolay Martynov
@ 2011-12-03 3:39 ` Nikolay Martynov
2011-12-06 20:59 ` John W. Linville
3 siblings, 1 reply; 7+ messages in thread
From: Nikolay Martynov @ 2011-12-03 3:39 UTC (permalink / raw)
To: linville; +Cc: linux-wireless, Nikolay Martynov
Enable ANI for ar9100 since it seems to be working fine (and as a matter of fact ANI was always performed for ar9100 since code which was supposed to disable it didn't achieve this goal).
This patch sets config.enable_ani to default (true) value for ar9100.
Signed-off-by: Nikolay Martynov <mar.kolya@gmail.com>
---
drivers/net/wireless/ath/ath9k/hw.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/wireless/ath/ath9k/hw.c b/drivers/net/wireless/ath/ath9k/hw.c
index 9871072..7f8fc65 100644
--- a/drivers/net/wireless/ath/ath9k/hw.c
+++ b/drivers/net/wireless/ath/ath9k/hw.c
@@ -610,8 +610,8 @@ static int __ath9k_hw_init(struct ath_hw *ah)
if (!AR_SREV_9300_20_OR_LATER(ah))
ah->ani_function &= ~ATH9K_ANI_MRC_CCK;
- /* disable ANI for 9100 and 9340 */
- if (AR_SREV_9100(ah) || AR_SREV_9340(ah))
+ /* disable ANI for 9340 */
+ if (AR_SREV_9340(ah))
ah->config.enable_ani = false;
ath9k_hw_init_mode_regs(ah);
--
1.7.4.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v4 4/4] ath9k: enable ANI for ar9100 chips
2011-12-03 3:39 ` [PATCH v4 4/4] ath9k: enable ANI for ar9100 chips Nikolay Martynov
@ 2011-12-06 20:59 ` John W. Linville
2011-12-07 2:57 ` [PATCH v5 " Nikolay Martynov
0 siblings, 1 reply; 7+ messages in thread
From: John W. Linville @ 2011-12-06 20:59 UTC (permalink / raw)
To: Nikolay Martynov; +Cc: linux-wireless
On Fri, Dec 02, 2011 at 10:39:17PM -0500, Nikolay Martynov wrote:
> Enable ANI for ar9100 since it seems to be working fine (and as a matter of fact ANI was always performed for ar9100 since code which was supposed to disable it didn't achieve this goal).
> This patch sets config.enable_ani to default (true) value for ar9100.
>
> Signed-off-by: Nikolay Martynov <mar.kolya@gmail.com>
Please wrap the lines in your changelog. Somewhere around 72
characters looks nice.
John
--
John W. Linville Someday the world will need a hero, and you
linville@tuxdriver.com might be all we have. Be ready.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v5 4/4] ath9k: enable ANI for ar9100 chips
2011-12-06 20:59 ` John W. Linville
@ 2011-12-07 2:57 ` Nikolay Martynov
0 siblings, 0 replies; 7+ messages in thread
From: Nikolay Martynov @ 2011-12-07 2:57 UTC (permalink / raw)
To: linville; +Cc: linux-wireless, Nikolay Martynov
Enable ANI for ar9100 since it seems to be working fine (and as a
matter of fact ANI was always performed for ar9100 since code which
was supposed to disable it didn't achieve this goal).
This patch sets config.enable_ani to default (true) value for
ar9100.
Signed-off-by: Nikolay Martynov <mar.kolya@gmail.com>
---
drivers/net/wireless/ath/ath9k/hw.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/wireless/ath/ath9k/hw.c b/drivers/net/wireless/ath/ath9k/hw.c
index 9871072..7f8fc65 100644
--- a/drivers/net/wireless/ath/ath9k/hw.c
+++ b/drivers/net/wireless/ath/ath9k/hw.c
@@ -610,8 +610,8 @@ static int __ath9k_hw_init(struct ath_hw *ah)
if (!AR_SREV_9300_20_OR_LATER(ah))
ah->ani_function &= ~ATH9K_ANI_MRC_CCK;
- /* disable ANI for 9100 and 9340 */
- if (AR_SREV_9100(ah) || AR_SREV_9340(ah))
+ /* disable ANI for 9340 */
+ if (AR_SREV_9340(ah))
ah->config.enable_ani = false;
ath9k_hw_init_mode_regs(ah);
--
1.7.4.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
end of thread, other threads:[~2011-12-07 2:57 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-12-03 3:39 [PATCH v4 0/4] Fix the way ANI is being handled for ar9100 and ar9340 Nikolay Martynov
2011-12-03 3:39 ` [PATCH v4 1/4] ath9k: trivial: cosmetic fix in calibration debug log Nikolay Martynov
2011-12-03 3:39 ` [PATCH v4 2/4] ath9k: change calibration debug log to output all calibration types Nikolay Martynov
2011-12-03 3:39 ` [PATCH v4 3/4] ath9k: use config.enable_ani to check if ani should be performed Nikolay Martynov
2011-12-03 3:39 ` [PATCH v4 4/4] ath9k: enable ANI for ar9100 chips Nikolay Martynov
2011-12-06 20:59 ` John W. Linville
2011-12-07 2:57 ` [PATCH v5 " Nikolay Martynov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).