diff options
author | Arend van Spriel <arend@broadcom.com> | 2012-06-09 16:51:44 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-06-13 14:35:50 -0400 |
commit | 80969836a7ddde326d3f289d234e9e2d9ed27272 (patch) | |
tree | 223a0f8dc1372972aa3c750fb4bc061cd968dbdc /drivers/net/wireless/brcm80211/brcmfmac/dhd_dbg.h | |
parent | d319a7cfd9d80a2e2359e978ba88991531312ee6 (diff) |
brcmfmac: expose sdio internal counters in debugfs
The structure brcmf_sdio contains a number of counters that are useful
for debugging. These were not available in user-space. This patch
exposes them in debugfs under the filename 'counters'.
Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Franky (Zhenhui) Lin <frankyl@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/brcm80211/brcmfmac/dhd_dbg.h')
-rw-r--r-- | drivers/net/wireless/brcm80211/brcmfmac/dhd_dbg.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/dhd_dbg.h b/drivers/net/wireless/brcm80211/brcmfmac/dhd_dbg.h index 0efb226030a4..b784920532d3 100644 --- a/drivers/net/wireless/brcm80211/brcmfmac/dhd_dbg.h +++ b/drivers/net/wireless/brcm80211/brcmfmac/dhd_dbg.h | |||
@@ -76,6 +76,40 @@ do { \ | |||
76 | 76 | ||
77 | extern int brcmf_msg_level; | 77 | extern int brcmf_msg_level; |
78 | 78 | ||
79 | /* | ||
80 | * hold counter variables used in brcmfmac sdio driver. | ||
81 | */ | ||
82 | struct brcmf_sdio_count { | ||
83 | uint intrcount; /* Count of device interrupt callbacks */ | ||
84 | uint lastintrs; /* Count as of last watchdog timer */ | ||
85 | uint pollcnt; /* Count of active polls */ | ||
86 | uint regfails; /* Count of R_REG failures */ | ||
87 | uint tx_sderrs; /* Count of tx attempts with sd errors */ | ||
88 | uint fcqueued; /* Tx packets that got queued */ | ||
89 | uint rxrtx; /* Count of rtx requests (NAK to dongle) */ | ||
90 | uint rx_toolong; /* Receive frames too long to receive */ | ||
91 | uint rxc_errors; /* SDIO errors when reading control frames */ | ||
92 | uint rx_hdrfail; /* SDIO errors on header reads */ | ||
93 | uint rx_badhdr; /* Bad received headers (roosync?) */ | ||
94 | uint rx_badseq; /* Mismatched rx sequence number */ | ||
95 | uint fc_rcvd; /* Number of flow-control events received */ | ||
96 | uint fc_xoff; /* Number which turned on flow-control */ | ||
97 | uint fc_xon; /* Number which turned off flow-control */ | ||
98 | uint rxglomfail; /* Failed deglom attempts */ | ||
99 | uint rxglomframes; /* Number of glom frames (superframes) */ | ||
100 | uint rxglompkts; /* Number of packets from glom frames */ | ||
101 | uint f2rxhdrs; /* Number of header reads */ | ||
102 | uint f2rxdata; /* Number of frame data reads */ | ||
103 | uint f2txdata; /* Number of f2 frame writes */ | ||
104 | uint f1regdata; /* Number of f1 register accesses */ | ||
105 | uint tickcnt; /* Number of watchdog been schedule */ | ||
106 | ulong tx_ctlerrs; /* Err of sending ctrl frames */ | ||
107 | ulong tx_ctlpkts; /* Ctrl frames sent to dongle */ | ||
108 | ulong rx_ctlerrs; /* Err of processing rx ctrl frames */ | ||
109 | ulong rx_ctlpkts; /* Ctrl frames processed from dongle */ | ||
110 | ulong rx_readahead_cnt; /* packets where header read-ahead was used */ | ||
111 | }; | ||
112 | |||
79 | struct brcmf_pub; | 113 | struct brcmf_pub; |
80 | #ifdef DEBUG | 114 | #ifdef DEBUG |
81 | void brcmf_debugfs_init(void); | 115 | void brcmf_debugfs_init(void); |
@@ -83,6 +117,8 @@ void brcmf_debugfs_exit(void); | |||
83 | int brcmf_debugfs_attach(struct brcmf_pub *drvr); | 117 | int brcmf_debugfs_attach(struct brcmf_pub *drvr); |
84 | void brcmf_debugfs_detach(struct brcmf_pub *drvr); | 118 | void brcmf_debugfs_detach(struct brcmf_pub *drvr); |
85 | struct dentry *brcmf_debugfs_get_devdir(struct brcmf_pub *drvr); | 119 | struct dentry *brcmf_debugfs_get_devdir(struct brcmf_pub *drvr); |
120 | void brcmf_debugfs_create_sdio_count(struct brcmf_pub *drvr, | ||
121 | struct brcmf_sdio_count *sdcnt); | ||
86 | #else | 122 | #else |
87 | static inline void brcmf_debugfs_init(void) | 123 | static inline void brcmf_debugfs_init(void) |
88 | { | 124 | { |