1/*
2 * DebugFS code for ST-Ericsson CW1200 mac80211 driver
3 *
4 * Copyright (c) 2011, ST-Ericsson
5 * Author: Dmitry Tarnyagin <dmitry.tarnyagin@lockless.no>
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as
9 * published by the Free Software Foundation.
10 */
11
12#ifndef CW1200_DEBUG_H_INCLUDED
13#define CW1200_DEBUG_H_INCLUDED
14
15struct cw1200_debug_priv {
16	struct dentry *debugfs_phy;
17	int tx;
18	int tx_agg;
19	int rx;
20	int rx_agg;
21	int tx_multi;
22	int tx_multi_frames;
23	int tx_cache_miss;
24	int tx_align;
25	int tx_ttl;
26	int tx_burst;
27	int ba_cnt;
28	int ba_acc;
29	int ba_cnt_rx;
30	int ba_acc_rx;
31};
32
33int cw1200_debug_init(struct cw1200_common *priv);
34void cw1200_debug_release(struct cw1200_common *priv);
35
36static inline void cw1200_debug_txed(struct cw1200_common *priv)
37{
38	++priv->debug->tx;
39}
40
41static inline void cw1200_debug_txed_agg(struct cw1200_common *priv)
42{
43	++priv->debug->tx_agg;
44}
45
46static inline void cw1200_debug_txed_multi(struct cw1200_common *priv,
47					   int count)
48{
49	++priv->debug->tx_multi;
50	priv->debug->tx_multi_frames += count;
51}
52
53static inline void cw1200_debug_rxed(struct cw1200_common *priv)
54{
55	++priv->debug->rx;
56}
57
58static inline void cw1200_debug_rxed_agg(struct cw1200_common *priv)
59{
60	++priv->debug->rx_agg;
61}
62
63static inline void cw1200_debug_tx_cache_miss(struct cw1200_common *priv)
64{
65	++priv->debug->tx_cache_miss;
66}
67
68static inline void cw1200_debug_tx_align(struct cw1200_common *priv)
69{
70	++priv->debug->tx_align;
71}
72
73static inline void cw1200_debug_tx_ttl(struct cw1200_common *priv)
74{
75	++priv->debug->tx_ttl;
76}
77
78static inline void cw1200_debug_tx_burst(struct cw1200_common *priv)
79{
80	++priv->debug->tx_burst;
81}
82
83static inline void cw1200_debug_ba(struct cw1200_common *priv,
84				   int ba_cnt, int ba_acc,
85				   int ba_cnt_rx, int ba_acc_rx)
86{
87	priv->debug->ba_cnt = ba_cnt;
88	priv->debug->ba_acc = ba_acc;
89	priv->debug->ba_cnt_rx = ba_cnt_rx;
90	priv->debug->ba_acc_rx = ba_acc_rx;
91}
92
93#endif /* CW1200_DEBUG_H_INCLUDED */
94