xref: /linux/drivers/net/wireless/st/cw1200/debug.h (revision 75bf465f0bc33e9b776a46d6a1b9b990f5fb7c37)
1*d2912cb1SThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */
2a910e4a9SSolomon Peachy /*
3a910e4a9SSolomon Peachy  * DebugFS code for ST-Ericsson CW1200 mac80211 driver
4a910e4a9SSolomon Peachy  *
5a910e4a9SSolomon Peachy  * Copyright (c) 2011, ST-Ericsson
6a910e4a9SSolomon Peachy  * Author: Dmitry Tarnyagin <dmitry.tarnyagin@lockless.no>
7a910e4a9SSolomon Peachy  */
8a910e4a9SSolomon Peachy 
9a910e4a9SSolomon Peachy #ifndef CW1200_DEBUG_H_INCLUDED
10a910e4a9SSolomon Peachy #define CW1200_DEBUG_H_INCLUDED
11a910e4a9SSolomon Peachy 
12a910e4a9SSolomon Peachy struct cw1200_debug_priv {
13a910e4a9SSolomon Peachy 	struct dentry *debugfs_phy;
14a910e4a9SSolomon Peachy 	int tx;
15a910e4a9SSolomon Peachy 	int tx_agg;
16a910e4a9SSolomon Peachy 	int rx;
17a910e4a9SSolomon Peachy 	int rx_agg;
18a910e4a9SSolomon Peachy 	int tx_multi;
19a910e4a9SSolomon Peachy 	int tx_multi_frames;
20a910e4a9SSolomon Peachy 	int tx_cache_miss;
21a910e4a9SSolomon Peachy 	int tx_align;
22a910e4a9SSolomon Peachy 	int tx_ttl;
23a910e4a9SSolomon Peachy 	int tx_burst;
24a910e4a9SSolomon Peachy 	int ba_cnt;
25a910e4a9SSolomon Peachy 	int ba_acc;
26a910e4a9SSolomon Peachy 	int ba_cnt_rx;
27a910e4a9SSolomon Peachy 	int ba_acc_rx;
28a910e4a9SSolomon Peachy };
29a910e4a9SSolomon Peachy 
30a910e4a9SSolomon Peachy int cw1200_debug_init(struct cw1200_common *priv);
31a910e4a9SSolomon Peachy void cw1200_debug_release(struct cw1200_common *priv);
32a910e4a9SSolomon Peachy 
33a910e4a9SSolomon Peachy static inline void cw1200_debug_txed(struct cw1200_common *priv)
34a910e4a9SSolomon Peachy {
35a910e4a9SSolomon Peachy 	++priv->debug->tx;
36a910e4a9SSolomon Peachy }
37a910e4a9SSolomon Peachy 
38a910e4a9SSolomon Peachy static inline void cw1200_debug_txed_agg(struct cw1200_common *priv)
39a910e4a9SSolomon Peachy {
40a910e4a9SSolomon Peachy 	++priv->debug->tx_agg;
41a910e4a9SSolomon Peachy }
42a910e4a9SSolomon Peachy 
43a910e4a9SSolomon Peachy static inline void cw1200_debug_txed_multi(struct cw1200_common *priv,
44a910e4a9SSolomon Peachy 					   int count)
45a910e4a9SSolomon Peachy {
46a910e4a9SSolomon Peachy 	++priv->debug->tx_multi;
47a910e4a9SSolomon Peachy 	priv->debug->tx_multi_frames += count;
48a910e4a9SSolomon Peachy }
49a910e4a9SSolomon Peachy 
50a910e4a9SSolomon Peachy static inline void cw1200_debug_rxed(struct cw1200_common *priv)
51a910e4a9SSolomon Peachy {
52a910e4a9SSolomon Peachy 	++priv->debug->rx;
53a910e4a9SSolomon Peachy }
54a910e4a9SSolomon Peachy 
55a910e4a9SSolomon Peachy static inline void cw1200_debug_rxed_agg(struct cw1200_common *priv)
56a910e4a9SSolomon Peachy {
57a910e4a9SSolomon Peachy 	++priv->debug->rx_agg;
58a910e4a9SSolomon Peachy }
59a910e4a9SSolomon Peachy 
60a910e4a9SSolomon Peachy static inline void cw1200_debug_tx_cache_miss(struct cw1200_common *priv)
61a910e4a9SSolomon Peachy {
62a910e4a9SSolomon Peachy 	++priv->debug->tx_cache_miss;
63a910e4a9SSolomon Peachy }
64a910e4a9SSolomon Peachy 
65a910e4a9SSolomon Peachy static inline void cw1200_debug_tx_align(struct cw1200_common *priv)
66a910e4a9SSolomon Peachy {
67a910e4a9SSolomon Peachy 	++priv->debug->tx_align;
68a910e4a9SSolomon Peachy }
69a910e4a9SSolomon Peachy 
70a910e4a9SSolomon Peachy static inline void cw1200_debug_tx_ttl(struct cw1200_common *priv)
71a910e4a9SSolomon Peachy {
72a910e4a9SSolomon Peachy 	++priv->debug->tx_ttl;
73a910e4a9SSolomon Peachy }
74a910e4a9SSolomon Peachy 
75a910e4a9SSolomon Peachy static inline void cw1200_debug_tx_burst(struct cw1200_common *priv)
76a910e4a9SSolomon Peachy {
77a910e4a9SSolomon Peachy 	++priv->debug->tx_burst;
78a910e4a9SSolomon Peachy }
79a910e4a9SSolomon Peachy 
80a910e4a9SSolomon Peachy static inline void cw1200_debug_ba(struct cw1200_common *priv,
81a910e4a9SSolomon Peachy 				   int ba_cnt, int ba_acc,
82a910e4a9SSolomon Peachy 				   int ba_cnt_rx, int ba_acc_rx)
83a910e4a9SSolomon Peachy {
84a910e4a9SSolomon Peachy 	priv->debug->ba_cnt = ba_cnt;
85a910e4a9SSolomon Peachy 	priv->debug->ba_acc = ba_acc;
86a910e4a9SSolomon Peachy 	priv->debug->ba_cnt_rx = ba_cnt_rx;
87a910e4a9SSolomon Peachy 	priv->debug->ba_acc_rx = ba_acc_rx;
88a910e4a9SSolomon Peachy }
89a910e4a9SSolomon Peachy 
90a910e4a9SSolomon Peachy #endif /* CW1200_DEBUG_H_INCLUDED */
91