diff options
| author | Rajkumar Manoharan <rmanohar@qca.qualcomm.com> | 2011-08-27 16:17:47 +0530 | 
|---|---|---|
| committer | John W. Linville <linville@tuxdriver.com> | 2011-08-29 15:33:03 -0400 | 
| commit | cf3af74824b1bf2bd60eb6a0dd82b27f9e9236ac (patch) | |
| tree | c5ae88548f8acc38549032e8d659b39333b19417 /drivers/net/wireless/ath/ath9k/debug.h | |
| parent | 059ee09b99942bf64f4075196a7a2a992e64193d (diff) | |
| download | olio-linux-3.10-cf3af74824b1bf2bd60eb6a0dd82b27f9e9236ac.tar.xz olio-linux-3.10-cf3af74824b1bf2bd60eb6a0dd82b27f9e9236ac.zip  | |
ath9k: Add debugfs support for mac/baseband samples
This patch keep track of number of samples that includes
DMA debugs registers, PCU observe, CR, channel noise,
cycle conters, noisefloor history buffer and last N number
of tx and rx descriptor status. These samples are grouped
in table manner which dumping in debgufs.
Debugfs file location:
    <debugfs_mnt>/ieee80211/phy#/ath9k/samples
Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/debug.h')
| -rw-r--r-- | drivers/net/wireless/ath/ath9k/debug.h | 47 | 
1 files changed, 47 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath9k/debug.h b/drivers/net/wireless/ath/ath9k/debug.h index 4a04510e111..95f85bdc8db 100644 --- a/drivers/net/wireless/ath/ath9k/debug.h +++ b/drivers/net/wireless/ath/ath9k/debug.h @@ -177,14 +177,57 @@ struct ath_stats {  	struct ath_rx_stats rxstats;  }; +#define ATH_DBG_MAX_SAMPLES	10 +struct ath_dbg_bb_mac_samp { +	u32 dma_dbg_reg_vals[ATH9K_NUM_DMA_DEBUG_REGS]; +	u32 pcu_obs, pcu_cr, noise; +	struct { +		u64 jiffies; +		int8_t rssi_ctl0; +		int8_t rssi_ctl1; +		int8_t rssi_ctl2; +		int8_t rssi_ext0; +		int8_t rssi_ext1; +		int8_t rssi_ext2; +		int8_t rssi; +		bool isok; +		u8 rts_fail_cnt; +		u8 data_fail_cnt; +		u8 rateindex; +		u8 qid; +		u8 tid; +	} ts[ATH_DBG_MAX_SAMPLES]; +	struct { +		u64 jiffies; +		int8_t rssi_ctl0; +		int8_t rssi_ctl1; +		int8_t rssi_ctl2; +		int8_t rssi_ext0; +		int8_t rssi_ext1; +		int8_t rssi_ext2; +		int8_t rssi; +		bool is_mybeacon; +		u8 antenna; +		u8 rate; +	} rs[ATH_DBG_MAX_SAMPLES]; +	struct ath_cycle_counters cc; +	struct ath9k_nfcal_hist nfCalHist[NUM_NF_READINGS]; +}; +  struct ath9k_debug {  	struct dentry *debugfs_phy;  	u32 regidx;  	struct ath_stats stats; +	spinlock_t samp_lock; +	struct ath_dbg_bb_mac_samp bb_mac_samp[ATH_DBG_MAX_SAMPLES]; +	u8 sampidx; +	u8 tsidx; +	u8 rsidx;  };  int ath9k_init_debug(struct ath_hw *ah); +void ath9k_debug_samp_bb_mac(struct ath_softc *sc);  void ath_debug_stat_interrupt(struct ath_softc *sc, enum ath9k_int status);  void ath_debug_stat_tx(struct ath_softc *sc, struct ath_buf *bf,  		       struct ath_tx_status *ts, struct ath_txq *txq); @@ -197,6 +240,10 @@ static inline int ath9k_init_debug(struct ath_hw *ah)  	return 0;  } +static inline void ath9k_debug_samp_bb_mac(struct ath_softc *sc) +{ +} +  static inline void ath_debug_stat_interrupt(struct ath_softc *sc,  					    enum ath9k_int status)  {  |