1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef B43legacy_DEBUGFS_H_ 3 #define B43legacy_DEBUGFS_H_ 4 5 struct b43legacy_wldev; 6 struct b43legacy_txstatus; 7 8 enum b43legacy_dyndbg { /* Dynamic debugging features */ 9 B43legacy_DBG_XMITPOWER, 10 B43legacy_DBG_DMAOVERFLOW, 11 B43legacy_DBG_DMAVERBOSE, 12 B43legacy_DBG_PWORK_FAST, 13 B43legacy_DBG_PWORK_STOP, 14 __B43legacy_NR_DYNDBG, 15 }; 16 17 18 #ifdef CONFIG_B43LEGACY_DEBUG 19 20 struct dentry; 21 22 #define B43legacy_NR_LOGGED_TXSTATUS 100 23 24 struct b43legacy_txstatus_log { 25 struct b43legacy_txstatus *log; 26 int end; 27 spinlock_t lock; /* lock for debugging */ 28 }; 29 30 struct b43legacy_dfs_file { 31 struct dentry *dentry; 32 char *buffer; 33 size_t data_len; 34 }; 35 36 struct b43legacy_dfsentry { 37 struct b43legacy_wldev *dev; 38 struct dentry *subdir; 39 40 struct b43legacy_dfs_file file_tsf; 41 struct b43legacy_dfs_file file_ucode_regs; 42 struct b43legacy_dfs_file file_shm; 43 struct b43legacy_dfs_file file_txstat; 44 struct b43legacy_dfs_file file_txpower_g; 45 struct b43legacy_dfs_file file_restart; 46 struct b43legacy_dfs_file file_loctls; 47 48 struct b43legacy_txstatus_log txstatlog; 49 50 /* Enabled/Disabled list for the dynamic debugging features. */ 51 bool dyn_debug[__B43legacy_NR_DYNDBG]; 52 /* Dentries for the dynamic debugging entries. */ 53 struct dentry *dyn_debug_dentries[__B43legacy_NR_DYNDBG]; 54 }; 55 56 int b43legacy_debug(struct b43legacy_wldev *dev, 57 enum b43legacy_dyndbg feature); 58 59 void b43legacy_debugfs_init(void); 60 void b43legacy_debugfs_exit(void); 61 void b43legacy_debugfs_add_device(struct b43legacy_wldev *dev); 62 void b43legacy_debugfs_remove_device(struct b43legacy_wldev *dev); 63 void b43legacy_debugfs_log_txstat(struct b43legacy_wldev *dev, 64 const struct b43legacy_txstatus *status); 65 66 #else /* CONFIG_B43LEGACY_DEBUG*/ 67 68 static inline 69 int b43legacy_debug(struct b43legacy_wldev *dev, 70 enum b43legacy_dyndbg feature) 71 { 72 return 0; 73 } 74 75 static inline 76 void b43legacy_debugfs_init(void) { } 77 static inline 78 void b43legacy_debugfs_exit(void) { } 79 static inline 80 void b43legacy_debugfs_add_device(struct b43legacy_wldev *dev) { } 81 static inline 82 void b43legacy_debugfs_remove_device(struct b43legacy_wldev *dev) { } 83 static inline 84 void b43legacy_debugfs_log_txstat(struct b43legacy_wldev *dev, 85 const struct b43legacy_txstatus *status) 86 { } 87 88 #endif /* CONFIG_B43LEGACY_DEBUG*/ 89 90 #endif /* B43legacy_DEBUGFS_H_ */ 91