2011-09-06 14:50:37

by Rajkumar Manoharan

[permalink] [raw]
Subject: [PATCH 1/2] ath9k: Take the samples in unassociated state

Currently the samples debugfs which maintains the snapshorts of
mac/bb only on associated state. Hence to cover the unassociated
issues, the samples are taken whenever the debugfs entry is read.

Signed-off-by: Rajkumar Manoharan <[email protected]>
---
drivers/net/wireless/ath/ath9k/debug.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/net/wireless/ath/ath9k/debug.c b/drivers/net/wireless/ath/ath9k/debug.c
index 727e8de..3d377ee 100644
--- a/drivers/net/wireless/ath/ath9k/debug.c
+++ b/drivers/net/wireless/ath/ath9k/debug.c
@@ -1381,6 +1381,8 @@ static int open_file_bb_mac_samps(struct inode *inode, struct file *file)
vfree(buf);
return -ENOMEM;
}
+ /* Account the current state too */
+ ath9k_debug_samp_bb_mac(sc);

spin_lock_bh(&sc->debug.samp_lock);
memcpy(bb_mac_samp, sc->debug.bb_mac_samp,
--
1.7.6.1



2011-09-06 14:50:42

by Rajkumar Manoharan

[permalink] [raw]
Subject: [PATCH 2/2] ath9k: Move cycle conters under cc_lock

This patch protects cycle counters access by cc_lock
and also prints current sample index.

Signed-off-by: Rajkumar Manoharan <[email protected]>
---
drivers/net/wireless/ath/ath9k/debug.c | 9 ++++++---
1 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/net/wireless/ath/ath9k/debug.c b/drivers/net/wireless/ath/ath9k/debug.c
index 3d377ee..ee8640d 100644
--- a/drivers/net/wireless/ath/ath9k/debug.c
+++ b/drivers/net/wireless/ath/ath9k/debug.c
@@ -1323,16 +1323,17 @@ void ath9k_debug_samp_bb_mac(struct ath_softc *sc)

ath9k_ps_wakeup(sc);

+ spin_lock_bh(&sc->debug.samp_lock);
+
spin_lock_irqsave(&common->cc_lock, flags);
ath_hw_cycle_counters_update(common);
- spin_unlock_irqrestore(&common->cc_lock, flags);
-
- spin_lock_bh(&sc->debug.samp_lock);

ATH_SAMP_DBG(cc.cycles) = common->cc_ani.cycles;
ATH_SAMP_DBG(cc.rx_busy) = common->cc_ani.rx_busy;
ATH_SAMP_DBG(cc.rx_frame) = common->cc_ani.rx_frame;
ATH_SAMP_DBG(cc.tx_frame) = common->cc_ani.tx_frame;
+ spin_unlock_irqrestore(&common->cc_lock, flags);
+
ATH_SAMP_DBG(noise) = ah->noise;

REG_WRITE_D(ah, AR_MACMISC,
@@ -1387,6 +1388,8 @@ static int open_file_bb_mac_samps(struct inode *inode, struct file *file)
spin_lock_bh(&sc->debug.samp_lock);
memcpy(bb_mac_samp, sc->debug.bb_mac_samp,
sizeof(*bb_mac_samp) * ATH_DBG_MAX_SAMPLES);
+ len += snprintf(buf + len, size - len,
+ "Current Sample Index: %d\n", sc->debug.sampidx);
spin_unlock_bh(&sc->debug.samp_lock);

len += snprintf(buf + len, size - len,
--
1.7.6.1