Linux Audio

Check our new training course

Loading...
  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_DEBUG
 22
 23struct dentry;
 24
 25#define B43_NR_LOGGED_TXSTATUS	100
 26
 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_ */