110 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2#ifndef B43_DEBUGFS_H_3#define B43_DEBUGFS_H_4 5struct b43_wldev;6struct b43_txstatus;7 8enum b43_dyndbg { /* Dynamic debugging features */9 B43_DBG_XMITPOWER,10 B43_DBG_DMAOVERFLOW,11 B43_DBG_DMAVERBOSE,12 B43_DBG_PWORK_FAST,13 B43_DBG_PWORK_STOP,14 B43_DBG_LO,15 B43_DBG_FIRMWARE,16 B43_DBG_KEYS,17 B43_DBG_VERBOSESTATS,18 __B43_NR_DYNDBG,19};20 21#ifdef CONFIG_B43_DEBUG22 23struct dentry;24 25#define B43_NR_LOGGED_TXSTATUS 10026 27struct b43_txstatus_log {28 /* This structure is protected by wl->mutex */29 30 struct b43_txstatus *log;31 int end;32};33 34struct b43_dfs_file {35 char *buffer;36 size_t data_len;37};38 39struct b43_dfsentry {40 struct b43_wldev *dev;41 struct dentry *subdir;42 43 struct b43_dfs_file file_shm16read;44 struct b43_dfs_file file_shm16write;45 struct b43_dfs_file file_shm32read;46 struct b43_dfs_file file_shm32write;47 struct b43_dfs_file file_mmio16read;48 struct b43_dfs_file file_mmio16write;49 struct b43_dfs_file file_mmio32read;50 struct b43_dfs_file file_mmio32write;51 struct b43_dfs_file file_txstat;52 struct b43_dfs_file file_txpower_g;53 struct b43_dfs_file file_restart;54 struct b43_dfs_file file_loctls;55 56 struct b43_txstatus_log txstatlog;57 58 /* The cached address for the next mmio16read file read */59 u16 mmio16read_next;60 /* The cached address for the next mmio32read file read */61 u16 mmio32read_next;62 63 /* The cached address for the next shm16read file read */64 u32 shm16read_routing_next;65 u32 shm16read_addr_next;66 /* The cached address for the next shm32read file read */67 u32 shm32read_routing_next;68 u32 shm32read_addr_next;69 70 /* Enabled/Disabled list for the dynamic debugging features. */71 bool dyn_debug[__B43_NR_DYNDBG];72};73 74bool b43_debug(struct b43_wldev *dev, enum b43_dyndbg feature);75 76void b43_debugfs_init(void);77void b43_debugfs_exit(void);78void b43_debugfs_add_device(struct b43_wldev *dev);79void b43_debugfs_remove_device(struct b43_wldev *dev);80void b43_debugfs_log_txstat(struct b43_wldev *dev,81 const struct b43_txstatus *status);82 83#else /* CONFIG_B43_DEBUG */84 85static inline bool b43_debug(struct b43_wldev *dev, enum b43_dyndbg feature)86{87 return false;88}89 90static inline void b43_debugfs_init(void)91{92}93static inline void b43_debugfs_exit(void)94{95}96static inline void b43_debugfs_add_device(struct b43_wldev *dev)97{98}99static inline void b43_debugfs_remove_device(struct b43_wldev *dev)100{101}102static inline void b43_debugfs_log_txstat(struct b43_wldev *dev,103 const struct b43_txstatus *status)104{105}106 107#endif /* CONFIG_B43_DEBUG */108 109#endif /* B43_DEBUGFS_H_ */110