linux/drivers/net/wireless/broadcom/b43/debugfs.h
<<
>>
Prefs
   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_ */
 110