162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci#ifndef B43legacy_DEBUGFS_H_ 362306a36Sopenharmony_ci#define B43legacy_DEBUGFS_H_ 462306a36Sopenharmony_ci 562306a36Sopenharmony_cistruct b43legacy_wldev; 662306a36Sopenharmony_cistruct b43legacy_txstatus; 762306a36Sopenharmony_ci 862306a36Sopenharmony_cienum b43legacy_dyndbg { /* Dynamic debugging features */ 962306a36Sopenharmony_ci B43legacy_DBG_XMITPOWER, 1062306a36Sopenharmony_ci B43legacy_DBG_DMAOVERFLOW, 1162306a36Sopenharmony_ci B43legacy_DBG_DMAVERBOSE, 1262306a36Sopenharmony_ci B43legacy_DBG_PWORK_FAST, 1362306a36Sopenharmony_ci B43legacy_DBG_PWORK_STOP, 1462306a36Sopenharmony_ci __B43legacy_NR_DYNDBG, 1562306a36Sopenharmony_ci}; 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ci#ifdef CONFIG_B43LEGACY_DEBUG 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_cistruct dentry; 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ci#define B43legacy_NR_LOGGED_TXSTATUS 100 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_cistruct b43legacy_txstatus_log { 2562306a36Sopenharmony_ci struct b43legacy_txstatus *log; 2662306a36Sopenharmony_ci int end; 2762306a36Sopenharmony_ci spinlock_t lock; /* lock for debugging */ 2862306a36Sopenharmony_ci}; 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_cistruct b43legacy_dfs_file { 3162306a36Sopenharmony_ci char *buffer; 3262306a36Sopenharmony_ci size_t data_len; 3362306a36Sopenharmony_ci}; 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_cistruct b43legacy_dfsentry { 3662306a36Sopenharmony_ci struct b43legacy_wldev *dev; 3762306a36Sopenharmony_ci struct dentry *subdir; 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ci struct b43legacy_dfs_file file_tsf; 4062306a36Sopenharmony_ci struct b43legacy_dfs_file file_ucode_regs; 4162306a36Sopenharmony_ci struct b43legacy_dfs_file file_shm; 4262306a36Sopenharmony_ci struct b43legacy_dfs_file file_txstat; 4362306a36Sopenharmony_ci struct b43legacy_dfs_file file_txpower_g; 4462306a36Sopenharmony_ci struct b43legacy_dfs_file file_restart; 4562306a36Sopenharmony_ci struct b43legacy_dfs_file file_loctls; 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ci struct b43legacy_txstatus_log txstatlog; 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ci /* Enabled/Disabled list for the dynamic debugging features. */ 5062306a36Sopenharmony_ci bool dyn_debug[__B43legacy_NR_DYNDBG]; 5162306a36Sopenharmony_ci}; 5262306a36Sopenharmony_ci 5362306a36Sopenharmony_ciint b43legacy_debug(struct b43legacy_wldev *dev, 5462306a36Sopenharmony_ci enum b43legacy_dyndbg feature); 5562306a36Sopenharmony_ci 5662306a36Sopenharmony_civoid b43legacy_debugfs_init(void); 5762306a36Sopenharmony_civoid b43legacy_debugfs_exit(void); 5862306a36Sopenharmony_civoid b43legacy_debugfs_add_device(struct b43legacy_wldev *dev); 5962306a36Sopenharmony_civoid b43legacy_debugfs_remove_device(struct b43legacy_wldev *dev); 6062306a36Sopenharmony_civoid b43legacy_debugfs_log_txstat(struct b43legacy_wldev *dev, 6162306a36Sopenharmony_ci const struct b43legacy_txstatus *status); 6262306a36Sopenharmony_ci 6362306a36Sopenharmony_ci#else /* CONFIG_B43LEGACY_DEBUG*/ 6462306a36Sopenharmony_ci 6562306a36Sopenharmony_cistatic inline 6662306a36Sopenharmony_ciint b43legacy_debug(struct b43legacy_wldev *dev, 6762306a36Sopenharmony_ci enum b43legacy_dyndbg feature) 6862306a36Sopenharmony_ci{ 6962306a36Sopenharmony_ci return 0; 7062306a36Sopenharmony_ci} 7162306a36Sopenharmony_ci 7262306a36Sopenharmony_cistatic inline 7362306a36Sopenharmony_civoid b43legacy_debugfs_init(void) { } 7462306a36Sopenharmony_cistatic inline 7562306a36Sopenharmony_civoid b43legacy_debugfs_exit(void) { } 7662306a36Sopenharmony_cistatic inline 7762306a36Sopenharmony_civoid b43legacy_debugfs_add_device(struct b43legacy_wldev *dev) { } 7862306a36Sopenharmony_cistatic inline 7962306a36Sopenharmony_civoid b43legacy_debugfs_remove_device(struct b43legacy_wldev *dev) { } 8062306a36Sopenharmony_cistatic inline 8162306a36Sopenharmony_civoid b43legacy_debugfs_log_txstat(struct b43legacy_wldev *dev, 8262306a36Sopenharmony_ci const struct b43legacy_txstatus *status) 8362306a36Sopenharmony_ci { } 8462306a36Sopenharmony_ci 8562306a36Sopenharmony_ci#endif /* CONFIG_B43LEGACY_DEBUG*/ 8662306a36Sopenharmony_ci 8762306a36Sopenharmony_ci#endif /* B43legacy_DEBUGFS_H_ */ 88