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