1d2912cb1SThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */
2560424e9SKalle Valo /*
3560424e9SKalle Valo  * DebugFS code for ST-Ericsson CW1200 mac80211 driver
4560424e9SKalle Valo  *
5560424e9SKalle Valo  * Copyright (c) 2011, ST-Ericsson
6560424e9SKalle Valo  * Author: Dmitry Tarnyagin <dmitry.tarnyagin@lockless.no>
7560424e9SKalle Valo  */
8560424e9SKalle Valo 
9560424e9SKalle Valo #ifndef CW1200_DEBUG_H_INCLUDED
10560424e9SKalle Valo #define CW1200_DEBUG_H_INCLUDED
11560424e9SKalle Valo 
12560424e9SKalle Valo struct cw1200_debug_priv {
13560424e9SKalle Valo 	struct dentry *debugfs_phy;
14560424e9SKalle Valo 	int tx;
15560424e9SKalle Valo 	int tx_agg;
16560424e9SKalle Valo 	int rx;
17560424e9SKalle Valo 	int rx_agg;
18560424e9SKalle Valo 	int tx_multi;
19560424e9SKalle Valo 	int tx_multi_frames;
20560424e9SKalle Valo 	int tx_cache_miss;
21560424e9SKalle Valo 	int tx_align;
22560424e9SKalle Valo 	int tx_ttl;
23560424e9SKalle Valo 	int tx_burst;
24560424e9SKalle Valo 	int ba_cnt;
25560424e9SKalle Valo 	int ba_acc;
26560424e9SKalle Valo 	int ba_cnt_rx;
27560424e9SKalle Valo 	int ba_acc_rx;
28560424e9SKalle Valo };
29560424e9SKalle Valo 
30560424e9SKalle Valo int cw1200_debug_init(struct cw1200_common *priv);
31560424e9SKalle Valo void cw1200_debug_release(struct cw1200_common *priv);
32560424e9SKalle Valo 
cw1200_debug_txed(struct cw1200_common * priv)33560424e9SKalle Valo static inline void cw1200_debug_txed(struct cw1200_common *priv)
34560424e9SKalle Valo {
35560424e9SKalle Valo 	++priv->debug->tx;
36560424e9SKalle Valo }
37560424e9SKalle Valo 
cw1200_debug_txed_agg(struct cw1200_common * priv)38560424e9SKalle Valo static inline void cw1200_debug_txed_agg(struct cw1200_common *priv)
39560424e9SKalle Valo {
40560424e9SKalle Valo 	++priv->debug->tx_agg;
41560424e9SKalle Valo }
42560424e9SKalle Valo 
cw1200_debug_txed_multi(struct cw1200_common * priv,int count)43560424e9SKalle Valo static inline void cw1200_debug_txed_multi(struct cw1200_common *priv,
44560424e9SKalle Valo 					   int count)
45560424e9SKalle Valo {
46560424e9SKalle Valo 	++priv->debug->tx_multi;
47560424e9SKalle Valo 	priv->debug->tx_multi_frames += count;
48560424e9SKalle Valo }
49560424e9SKalle Valo 
cw1200_debug_rxed(struct cw1200_common * priv)50560424e9SKalle Valo static inline void cw1200_debug_rxed(struct cw1200_common *priv)
51560424e9SKalle Valo {
52560424e9SKalle Valo 	++priv->debug->rx;
53560424e9SKalle Valo }
54560424e9SKalle Valo 
cw1200_debug_rxed_agg(struct cw1200_common * priv)55560424e9SKalle Valo static inline void cw1200_debug_rxed_agg(struct cw1200_common *priv)
56560424e9SKalle Valo {
57560424e9SKalle Valo 	++priv->debug->rx_agg;
58560424e9SKalle Valo }
59560424e9SKalle Valo 
cw1200_debug_tx_cache_miss(struct cw1200_common * priv)60560424e9SKalle Valo static inline void cw1200_debug_tx_cache_miss(struct cw1200_common *priv)
61560424e9SKalle Valo {
62560424e9SKalle Valo 	++priv->debug->tx_cache_miss;
63560424e9SKalle Valo }
64560424e9SKalle Valo 
cw1200_debug_tx_align(struct cw1200_common * priv)65560424e9SKalle Valo static inline void cw1200_debug_tx_align(struct cw1200_common *priv)
66560424e9SKalle Valo {
67560424e9SKalle Valo 	++priv->debug->tx_align;
68560424e9SKalle Valo }
69560424e9SKalle Valo 
cw1200_debug_tx_ttl(struct cw1200_common * priv)70560424e9SKalle Valo static inline void cw1200_debug_tx_ttl(struct cw1200_common *priv)
71560424e9SKalle Valo {
72560424e9SKalle Valo 	++priv->debug->tx_ttl;
73560424e9SKalle Valo }
74560424e9SKalle Valo 
cw1200_debug_tx_burst(struct cw1200_common * priv)75560424e9SKalle Valo static inline void cw1200_debug_tx_burst(struct cw1200_common *priv)
76560424e9SKalle Valo {
77560424e9SKalle Valo 	++priv->debug->tx_burst;
78560424e9SKalle Valo }
79560424e9SKalle Valo 
cw1200_debug_ba(struct cw1200_common * priv,int ba_cnt,int ba_acc,int ba_cnt_rx,int ba_acc_rx)80560424e9SKalle Valo static inline void cw1200_debug_ba(struct cw1200_common *priv,
81560424e9SKalle Valo 				   int ba_cnt, int ba_acc,
82560424e9SKalle Valo 				   int ba_cnt_rx, int ba_acc_rx)
83560424e9SKalle Valo {
84560424e9SKalle Valo 	priv->debug->ba_cnt = ba_cnt;
85560424e9SKalle Valo 	priv->debug->ba_acc = ba_acc;
86560424e9SKalle Valo 	priv->debug->ba_cnt_rx = ba_cnt_rx;
87560424e9SKalle Valo 	priv->debug->ba_acc_rx = ba_acc_rx;
88560424e9SKalle Valo }
89560424e9SKalle Valo 
90560424e9SKalle Valo #endif /* CW1200_DEBUG_H_INCLUDED */
91