debug.h revision 08578b8f16ca551499c54f2cd229df3e58c8f381
1394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith/* 2cee075a24eec64f1f5b2b3b14753b2d4b8ecce55Sujith * Copyright (c) 2008-2009 Atheros Communications Inc. 3394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith * 4394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith * Permission to use, copy, modify, and/or distribute this software for any 5394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith * purpose with or without fee is hereby granted, provided that the above 6394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith * copyright notice and this permission notice appear in all copies. 7394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith * 8394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith */ 16394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith 17394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith#ifndef DEBUG_H 18394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith#define DEBUG_H 19394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith 204d6b228d84ba992ee13c90312c1ed539191c94b1Luis R. Rodriguez#include "hw.h" 21545750d36fa78203e28acefb4bab61ebb7c4d197Felix Fietkau#include "rc.h" 224d6b228d84ba992ee13c90312c1ed539191c94b1Luis R. Rodriguez 23fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujithstruct ath_txq; 24fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujithstruct ath_buf; 25fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujith 26a830df0714117574fd0d5fe98477059b3e9fd5bfFelix Fietkau#ifdef CONFIG_ATH9K_DEBUGFS 27fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujith#define TX_STAT_INC(q, c) sc->debug.stats.txstats[q].c++ 28fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujith#else 29fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujith#define TX_STAT_INC(q, c) do { } while (0) 30fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujith#endif 31fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujith 32a830df0714117574fd0d5fe98477059b3e9fd5bfFelix Fietkau#ifdef CONFIG_ATH9K_DEBUGFS 33394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith 34394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith/** 35394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith * struct ath_interrupt_stats - Contains statistics about interrupts 36394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith * @total: Total no. of interrupts generated so far 37394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith * @rxok: RX with no errors 38a9616f417eb0e529023c44dac61420f3df39d8f7Luis R. Rodriguez * @rxlp: RX with low priority RX 39a9616f417eb0e529023c44dac61420f3df39d8f7Luis R. Rodriguez * @rxhp: RX with high priority, uapsd only 40394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith * @rxeol: RX with no more RXDESC available 41394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith * @rxorn: RX FIFO overrun 42394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith * @txok: TX completed at the requested rate 43394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith * @txurn: TX FIFO underrun 44394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith * @mib: MIB regs reaching its threshold 45394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith * @rxphyerr: RX with phy errors 46394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith * @rx_keycache_miss: RX with key cache misses 47394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith * @swba: Software Beacon Alert 48394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith * @bmiss: Beacon Miss 49394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith * @bnr: Beacon Not Ready 50394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith * @cst: Carrier Sense TImeout 51394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith * @gtt: Global TX Timeout 52394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith * @tim: RX beacon TIM occurrence 53394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith * @cabend: RX End of CAB traffic 54394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith * @dtimsync: DTIM sync lossage 55394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith * @dtim: RX Beacon with DTIM 5608578b8f16ca551499c54f2cd229df3e58c8f381Luis R. Rodriguez * @bb_watchdog: Baseband watchdog 57394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith */ 58394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujithstruct ath_interrupt_stats { 59394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith u32 total; 60394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith u32 rxok; 61a9616f417eb0e529023c44dac61420f3df39d8f7Luis R. Rodriguez u32 rxlp; 62a9616f417eb0e529023c44dac61420f3df39d8f7Luis R. Rodriguez u32 rxhp; 63394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith u32 rxeol; 64394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith u32 rxorn; 65394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith u32 txok; 66394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith u32 txeol; 67394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith u32 txurn; 68394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith u32 mib; 69394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith u32 rxphyerr; 70394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith u32 rx_keycache_miss; 71394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith u32 swba; 72394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith u32 bmiss; 73394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith u32 bnr; 74394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith u32 cst; 75394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith u32 gtt; 76394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith u32 tim; 77394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith u32 cabend; 78394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith u32 dtimsync; 79394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith u32 dtim; 8008578b8f16ca551499c54f2cd229df3e58c8f381Luis R. Rodriguez u32 bb_watchdog; 81394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith}; 82394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith 83bedf087af96a24861d09586ac25c26691300ff4cJeff Hansenstruct ath_rc_stats { 84394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith u32 success; 85394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith u32 retries; 86394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith u32 xretries; 879e7127908473bfb863c5064b0a61d0f0d6b1af46Sujith u8 per; 88394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith}; 89394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith 90fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujith/** 91fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujith * struct ath_tx_stats - Statistics about TX 92fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujith * @queued: Total MPDUs (non-aggr) queued 93fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujith * @completed: Total MPDUs (non-aggr) completed 94fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujith * @a_aggr: Total no. of aggregates queued 95fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujith * @a_queued: Total AMPDUs queued 96fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujith * @a_completed: Total AMPDUs completed 97fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujith * @a_retries: No. of AMPDUs retried (SW) 98fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujith * @a_xretries: No. of AMPDUs dropped due to xretries 99fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujith * @fifo_underrun: FIFO underrun occurrences 100fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujith Valid only for: 101fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujith - non-aggregate condition. 102fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujith - first packet of aggregate. 103fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujith * @xtxop: No. of frames filtered because of TXOP limit 104fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujith * @timer_exp: Transmit timer expiry 105fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujith * @desc_cfg_err: Descriptor configuration errors 106fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujith * @data_urn: TX data underrun errors 107fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujith * @delim_urn: TX delimiter underrun errors 108fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujith */ 109fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujithstruct ath_tx_stats { 110fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujith u32 queued; 111fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujith u32 completed; 112fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujith u32 a_aggr; 113fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujith u32 a_queued; 114fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujith u32 a_completed; 115fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujith u32 a_retries; 116fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujith u32 a_xretries; 117fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujith u32 fifo_underrun; 118fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujith u32 xtxop; 119fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujith u32 timer_exp; 120fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujith u32 desc_cfg_err; 121fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujith u32 data_underrun; 122fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujith u32 delim_underrun; 123fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujith}; 124fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujith 1251395d3f00a4164caae168b041855d48e0fa9ea4cSujith/** 1261395d3f00a4164caae168b041855d48e0fa9ea4cSujith * struct ath_rx_stats - RX Statistics 1271395d3f00a4164caae168b041855d48e0fa9ea4cSujith * @crc_err: No. of frames with incorrect CRC value 1281395d3f00a4164caae168b041855d48e0fa9ea4cSujith * @decrypt_crc_err: No. of frames whose CRC check failed after 1291395d3f00a4164caae168b041855d48e0fa9ea4cSujith decryption process completed 1301395d3f00a4164caae168b041855d48e0fa9ea4cSujith * @phy_err: No. of frames whose reception failed because the PHY 1311395d3f00a4164caae168b041855d48e0fa9ea4cSujith encountered an error 1321395d3f00a4164caae168b041855d48e0fa9ea4cSujith * @mic_err: No. of frames with incorrect TKIP MIC verification failure 1331395d3f00a4164caae168b041855d48e0fa9ea4cSujith * @pre_delim_crc_err: Pre-Frame delimiter CRC error detections 1341395d3f00a4164caae168b041855d48e0fa9ea4cSujith * @post_delim_crc_err: Post-Frame delimiter CRC error detections 1351395d3f00a4164caae168b041855d48e0fa9ea4cSujith * @decrypt_busy_err: Decryption interruptions counter 1361395d3f00a4164caae168b041855d48e0fa9ea4cSujith * @phy_err_stats: Individual PHY error statistics 1371395d3f00a4164caae168b041855d48e0fa9ea4cSujith */ 1381395d3f00a4164caae168b041855d48e0fa9ea4cSujithstruct ath_rx_stats { 1391395d3f00a4164caae168b041855d48e0fa9ea4cSujith u32 crc_err; 1401395d3f00a4164caae168b041855d48e0fa9ea4cSujith u32 decrypt_crc_err; 1411395d3f00a4164caae168b041855d48e0fa9ea4cSujith u32 phy_err; 1421395d3f00a4164caae168b041855d48e0fa9ea4cSujith u32 mic_err; 1431395d3f00a4164caae168b041855d48e0fa9ea4cSujith u32 pre_delim_crc_err; 1441395d3f00a4164caae168b041855d48e0fa9ea4cSujith u32 post_delim_crc_err; 1451395d3f00a4164caae168b041855d48e0fa9ea4cSujith u32 decrypt_busy_err; 1461395d3f00a4164caae168b041855d48e0fa9ea4cSujith u32 phy_err_stats[ATH9K_PHYERR_MAX]; 1471395d3f00a4164caae168b041855d48e0fa9ea4cSujith}; 1481395d3f00a4164caae168b041855d48e0fa9ea4cSujith 149394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujithstruct ath_stats { 150394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith struct ath_interrupt_stats istats; 151bedf087af96a24861d09586ac25c26691300ff4cJeff Hansen struct ath_rc_stats rcstats[RATE_TABLE_SIZE]; 152fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujith struct ath_tx_stats txstats[ATH9K_NUM_TX_QUEUES]; 1531395d3f00a4164caae168b041855d48e0fa9ea4cSujith struct ath_rx_stats rxstats; 154394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith}; 155394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith 156394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujithstruct ath9k_debug { 157394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith struct dentry *debugfs_phy; 1589bff0bc4012c7f079b297eb45b47780e3713f367Felix Fietkau u32 regidx; 159394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith struct ath_stats stats; 160394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith}; 161394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith 1624d6b228d84ba992ee13c90312c1ed539191c94b1Luis R. Rodriguezint ath9k_init_debug(struct ath_hw *ah); 1634d6b228d84ba992ee13c90312c1ed539191c94b1Luis R. Rodriguezvoid ath9k_exit_debug(struct ath_hw *ah); 1644d6b228d84ba992ee13c90312c1ed539191c94b1Luis R. Rodriguez 16519d8bc22bcea749da2ba065a1ff9e054fadb556eGabor Juhosint ath9k_debug_create_root(void); 16619d8bc22bcea749da2ba065a1ff9e054fadb556eGabor Juhosvoid ath9k_debug_remove_root(void); 167394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujithvoid ath_debug_stat_interrupt(struct ath_softc *sc, enum ath9k_int status); 168545750d36fa78203e28acefb4bab61ebb7c4d197Felix Fietkauvoid ath_debug_stat_rc(struct ath_softc *sc, int final_rate); 169fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujithvoid ath_debug_stat_tx(struct ath_softc *sc, struct ath_txq *txq, 170db1a052b73f7c97f9e8b21f3f19a92313ed2acb1Felix Fietkau struct ath_buf *bf, struct ath_tx_status *ts); 1718e6f5aa250d6013ec0d66f9f45f376678d3fc4abFelix Fietkauvoid ath_debug_stat_rx(struct ath_softc *sc, struct ath_rx_status *rs); 172394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujithvoid ath_debug_stat_retries(struct ath_softc *sc, int rix, 1739e7127908473bfb863c5064b0a61d0f0d6b1af46Sujith int xretries, int retries, u8 per); 174394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith 175394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith#else 176394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith 1774d6b228d84ba992ee13c90312c1ed539191c94b1Luis R. Rodriguezstatic inline int ath9k_init_debug(struct ath_hw *ah) 178394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith{ 179394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith return 0; 180394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith} 181394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith 1824d6b228d84ba992ee13c90312c1ed539191c94b1Luis R. Rodriguezstatic inline void ath9k_exit_debug(struct ath_hw *ah) 183394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith{ 184394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith} 185394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith 18619d8bc22bcea749da2ba065a1ff9e054fadb556eGabor Juhosstatic inline int ath9k_debug_create_root(void) 18719d8bc22bcea749da2ba065a1ff9e054fadb556eGabor Juhos{ 18819d8bc22bcea749da2ba065a1ff9e054fadb556eGabor Juhos return 0; 18919d8bc22bcea749da2ba065a1ff9e054fadb556eGabor Juhos} 19019d8bc22bcea749da2ba065a1ff9e054fadb556eGabor Juhos 19119d8bc22bcea749da2ba065a1ff9e054fadb556eGabor Juhosstatic inline void ath9k_debug_remove_root(void) 19219d8bc22bcea749da2ba065a1ff9e054fadb556eGabor Juhos{ 19319d8bc22bcea749da2ba065a1ff9e054fadb556eGabor Juhos} 19419d8bc22bcea749da2ba065a1ff9e054fadb556eGabor Juhos 195394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujithstatic inline void ath_debug_stat_interrupt(struct ath_softc *sc, 196394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith enum ath9k_int status) 197394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith{ 198394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith} 199394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith 200394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujithstatic inline void ath_debug_stat_rc(struct ath_softc *sc, 201545750d36fa78203e28acefb4bab61ebb7c4d197Felix Fietkau int final_rate) 202394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith{ 203394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith} 204394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith 205fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujithstatic inline void ath_debug_stat_tx(struct ath_softc *sc, 206fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujith struct ath_txq *txq, 20732ffb1f4488b0727bcfc67a025becc0db3df7a17Felix Fietkau struct ath_buf *bf, 20832ffb1f4488b0727bcfc67a025becc0db3df7a17Felix Fietkau struct ath_tx_status *ts) 209fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujith{ 210fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujith} 211fec247c0d5bfbaa0861774ce31d515bbd48f7fceSujith 2121395d3f00a4164caae168b041855d48e0fa9ea4cSujithstatic inline void ath_debug_stat_rx(struct ath_softc *sc, 21332ffb1f4488b0727bcfc67a025becc0db3df7a17Felix Fietkau struct ath_rx_status *rs) 2141395d3f00a4164caae168b041855d48e0fa9ea4cSujith{ 2151395d3f00a4164caae168b041855d48e0fa9ea4cSujith} 2161395d3f00a4164caae168b041855d48e0fa9ea4cSujith 217394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujithstatic inline void ath_debug_stat_retries(struct ath_softc *sc, int rix, 2189e7127908473bfb863c5064b0a61d0f0d6b1af46Sujith int xretries, int retries, u8 per) 219394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith{ 220394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith} 221394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith 222a830df0714117574fd0d5fe98477059b3e9fd5bfFelix Fietkau#endif /* CONFIG_ATH9K_DEBUGFS */ 223394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith 224394cf0a1ca02e7998c8d01975b60a3cdc121e7d8Sujith#endif /* DEBUG_H */ 225