This is helpful to see whether spectral samples get discarded.

Signed-off-by: Simon Wunderlich <s...@simonwunderlich.de>
---
 drivers/net/wireless/ath/ath9k/common-debug.c    |  2 ++
 drivers/net/wireless/ath/ath9k/common-debug.h    |  4 ++++
 drivers/net/wireless/ath/ath9k/common-spectral.c | 15 +++++++++++++--
 3 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/ath/ath9k/common-debug.c 
b/drivers/net/wireless/ath/ath9k/common-debug.c
index 239429f10378..53ca4b063eb9 100644
--- a/drivers/net/wireless/ath/ath9k/common-debug.c
+++ b/drivers/net/wireless/ath/ath9k/common-debug.c
@@ -144,6 +144,8 @@ static ssize_t read_file_recv(struct file *file, char 
__user *user_buf,
        RXS_ERR("BEACONS", rx_beacons);
        RXS_ERR("FRAGS", rx_frags);
        RXS_ERR("SPECTRAL", rx_spectral);
+       RXS_ERR("SPECTRAL SMPL GOOD", rx_spectral_sample_good);
+       RXS_ERR("SPECTRAL SMPL ERR", rx_spectral_sample_err);
 
        RXS_ERR("CRC ERR", crc_err);
        RXS_ERR("DECRYPT CRC ERR", decrypt_crc_err);
diff --git a/drivers/net/wireless/ath/ath9k/common-debug.h 
b/drivers/net/wireless/ath/ath9k/common-debug.h
index 3376990d3a24..2938b5b96b07 100644
--- a/drivers/net/wireless/ath/ath9k/common-debug.h
+++ b/drivers/net/wireless/ath/ath9k/common-debug.h
@@ -39,6 +39,8 @@
  * @rx_beacons:  No. of beacons received.
  * @rx_frags:  No. of rx-fragements received.
  * @rx_spectral: No of spectral packets received.
+ * @rx_spectral_sample_good: No. of good spectral samples
+ * @rx_spectral_sample_err: No. of good spectral samples
  */
 struct ath_rx_stats {
        u32 rx_pkts_all;
@@ -58,6 +60,8 @@ struct ath_rx_stats {
        u32 rx_beacons;
        u32 rx_frags;
        u32 rx_spectral;
+       u32 rx_spectral_sample_good;
+       u32 rx_spectral_sample_err;
 };
 
 #ifdef CONFIG_ATH9K_COMMON_DEBUG
diff --git a/drivers/net/wireless/ath/ath9k/common-spectral.c 
b/drivers/net/wireless/ath/ath9k/common-spectral.c
index 440e16e641e4..0c5559009a28 100644
--- a/drivers/net/wireless/ath/ath9k/common-spectral.c
+++ b/drivers/net/wireless/ath/ath9k/common-spectral.c
@@ -501,6 +501,7 @@ int ath_cmn_process_fft(struct ath_spec_scan_priv 
*spec_priv, struct ieee80211_h
        u8 sample_buf[SPECTRAL_SAMPLE_MAX_LEN] = {0};
        struct ath_hw *ah = spec_priv->ah;
        struct ath_common *common = ath9k_hw_common(spec_priv->ah);
+       struct ath_softc *sc = (struct ath_softc *)common->priv;
        u8 num_bins, *vdata = (u8 *)hdr;
        struct ath_radar_info *radar_info;
        int len = rs->rs_datalen;
@@ -649,8 +650,13 @@ int ath_cmn_process_fft(struct ath_spec_scan_priv 
*spec_priv, struct ieee80211_h
                                                       sample_buf, sample_len,
                                                       sample_bytes);
 
-                               fft_handler(rs, spec_priv, sample_buf,
-                                           tsf, freq, chan_type);
+                               ret = fft_handler(rs, spec_priv, sample_buf,
+                                                 tsf, freq, chan_type);
+
+                               if (ret == 0)
+                                       RX_STAT_INC(rx_spectral_sample_good);
+                               else
+                                       RX_STAT_INC(rx_spectral_sample_err);
 
                                memset(sample_buf, 0, SPECTRAL_SAMPLE_MAX_LEN);
 
@@ -665,6 +671,11 @@ int ath_cmn_process_fft(struct ath_spec_scan_priv 
*spec_priv, struct ieee80211_h
                                ret = fft_handler(rs, spec_priv, sample_start,
                                                  tsf, freq, chan_type);
 
+                               if (ret == 0)
+                                       RX_STAT_INC(rx_spectral_sample_good);
+                               else
+                                       RX_STAT_INC(rx_spectral_sample_err);
+
                                /* Mix the received bins to the /dev/random
                                 * pool
                                 */
-- 
2.11.0

Reply via email to