debugfs.h revision 923fd7036ff04381b265037469c79a2e7d0d6b67
1e4d6b7951812d98417feb10784e400e253caf633Michael Buesch#ifndef B43_DEBUGFS_H_ 2e4d6b7951812d98417feb10784e400e253caf633Michael Buesch#define B43_DEBUGFS_H_ 3e4d6b7951812d98417feb10784e400e253caf633Michael Buesch 4e4d6b7951812d98417feb10784e400e253caf633Michael Bueschstruct b43_wldev; 5e4d6b7951812d98417feb10784e400e253caf633Michael Bueschstruct b43_txstatus; 6e4d6b7951812d98417feb10784e400e253caf633Michael Buesch 7e4d6b7951812d98417feb10784e400e253caf633Michael Bueschenum b43_dyndbg { /* Dynamic debugging features */ 8e4d6b7951812d98417feb10784e400e253caf633Michael Buesch B43_DBG_XMITPOWER, 9e4d6b7951812d98417feb10784e400e253caf633Michael Buesch B43_DBG_DMAOVERFLOW, 10e4d6b7951812d98417feb10784e400e253caf633Michael Buesch B43_DBG_DMAVERBOSE, 11e4d6b7951812d98417feb10784e400e253caf633Michael Buesch B43_DBG_PWORK_FAST, 12e4d6b7951812d98417feb10784e400e253caf633Michael Buesch B43_DBG_PWORK_STOP, 13f5eda47f45e90dfa38e25d569b9ac84ba94f8301Michael Buesch B43_DBG_LO, 14923fd7036ff04381b265037469c79a2e7d0d6b67Michael Buesch B43_DBG_FIRMWARE, 15e4d6b7951812d98417feb10784e400e253caf633Michael Buesch __B43_NR_DYNDBG, 16e4d6b7951812d98417feb10784e400e253caf633Michael Buesch}; 17e4d6b7951812d98417feb10784e400e253caf633Michael Buesch 18e4d6b7951812d98417feb10784e400e253caf633Michael Buesch#ifdef CONFIG_B43_DEBUG 19e4d6b7951812d98417feb10784e400e253caf633Michael Buesch 20e4d6b7951812d98417feb10784e400e253caf633Michael Bueschstruct dentry; 21e4d6b7951812d98417feb10784e400e253caf633Michael Buesch 22e4d6b7951812d98417feb10784e400e253caf633Michael Buesch#define B43_NR_LOGGED_TXSTATUS 100 23e4d6b7951812d98417feb10784e400e253caf633Michael Buesch 24e4d6b7951812d98417feb10784e400e253caf633Michael Bueschstruct b43_txstatus_log { 25e4d6b7951812d98417feb10784e400e253caf633Michael Buesch struct b43_txstatus *log; 26e4d6b7951812d98417feb10784e400e253caf633Michael Buesch int end; 27e4d6b7951812d98417feb10784e400e253caf633Michael Buesch spinlock_t lock; 28e4d6b7951812d98417feb10784e400e253caf633Michael Buesch}; 29e4d6b7951812d98417feb10784e400e253caf633Michael Buesch 30e4d6b7951812d98417feb10784e400e253caf633Michael Bueschstruct b43_dfs_file { 31e4d6b7951812d98417feb10784e400e253caf633Michael Buesch struct dentry *dentry; 32e4d6b7951812d98417feb10784e400e253caf633Michael Buesch char *buffer; 33e4d6b7951812d98417feb10784e400e253caf633Michael Buesch size_t data_len; 34e4d6b7951812d98417feb10784e400e253caf633Michael Buesch}; 35e4d6b7951812d98417feb10784e400e253caf633Michael Buesch 36e4d6b7951812d98417feb10784e400e253caf633Michael Bueschstruct b43_dfsentry { 37e4d6b7951812d98417feb10784e400e253caf633Michael Buesch struct b43_wldev *dev; 38e4d6b7951812d98417feb10784e400e253caf633Michael Buesch struct dentry *subdir; 39e4d6b7951812d98417feb10784e400e253caf633Michael Buesch 406bbc321a96d4d3533eb136b981baba6c8248d635Michael Buesch struct b43_dfs_file file_shm16read; 416bbc321a96d4d3533eb136b981baba6c8248d635Michael Buesch struct b43_dfs_file file_shm16write; 426bbc321a96d4d3533eb136b981baba6c8248d635Michael Buesch struct b43_dfs_file file_shm32read; 436bbc321a96d4d3533eb136b981baba6c8248d635Michael Buesch struct b43_dfs_file file_shm32write; 448bd463f4f913db12a1b7374f84304631289a1e0bMichael Buesch struct b43_dfs_file file_mmio16read; 458bd463f4f913db12a1b7374f84304631289a1e0bMichael Buesch struct b43_dfs_file file_mmio16write; 468bd463f4f913db12a1b7374f84304631289a1e0bMichael Buesch struct b43_dfs_file file_mmio32read; 478bd463f4f913db12a1b7374f84304631289a1e0bMichael Buesch struct b43_dfs_file file_mmio32write; 48e4d6b7951812d98417feb10784e400e253caf633Michael Buesch struct b43_dfs_file file_tsf; 49e4d6b7951812d98417feb10784e400e253caf633Michael Buesch struct b43_dfs_file file_txstat; 50e4d6b7951812d98417feb10784e400e253caf633Michael Buesch struct b43_dfs_file file_txpower_g; 51e4d6b7951812d98417feb10784e400e253caf633Michael Buesch struct b43_dfs_file file_restart; 52e4d6b7951812d98417feb10784e400e253caf633Michael Buesch struct b43_dfs_file file_loctls; 53e4d6b7951812d98417feb10784e400e253caf633Michael Buesch 54e4d6b7951812d98417feb10784e400e253caf633Michael Buesch struct b43_txstatus_log txstatlog; 55e4d6b7951812d98417feb10784e400e253caf633Michael Buesch 568bd463f4f913db12a1b7374f84304631289a1e0bMichael Buesch /* The cached address for the next mmio16read file read */ 578bd463f4f913db12a1b7374f84304631289a1e0bMichael Buesch u16 mmio16read_next; 588bd463f4f913db12a1b7374f84304631289a1e0bMichael Buesch /* The cached address for the next mmio32read file read */ 598bd463f4f913db12a1b7374f84304631289a1e0bMichael Buesch u16 mmio32read_next; 608bd463f4f913db12a1b7374f84304631289a1e0bMichael Buesch 616bbc321a96d4d3533eb136b981baba6c8248d635Michael Buesch /* The cached address for the next shm16read file read */ 626bbc321a96d4d3533eb136b981baba6c8248d635Michael Buesch u32 shm16read_routing_next; 636bbc321a96d4d3533eb136b981baba6c8248d635Michael Buesch u32 shm16read_addr_next; 646bbc321a96d4d3533eb136b981baba6c8248d635Michael Buesch /* The cached address for the next shm32read file read */ 656bbc321a96d4d3533eb136b981baba6c8248d635Michael Buesch u32 shm32read_routing_next; 666bbc321a96d4d3533eb136b981baba6c8248d635Michael Buesch u32 shm32read_addr_next; 676bbc321a96d4d3533eb136b981baba6c8248d635Michael Buesch 68e4d6b7951812d98417feb10784e400e253caf633Michael Buesch /* Enabled/Disabled list for the dynamic debugging features. */ 69e4d6b7951812d98417feb10784e400e253caf633Michael Buesch u32 dyn_debug[__B43_NR_DYNDBG]; 70e4d6b7951812d98417feb10784e400e253caf633Michael Buesch /* Dentries for the dynamic debugging entries. */ 71e4d6b7951812d98417feb10784e400e253caf633Michael Buesch struct dentry *dyn_debug_dentries[__B43_NR_DYNDBG]; 72e4d6b7951812d98417feb10784e400e253caf633Michael Buesch}; 73e4d6b7951812d98417feb10784e400e253caf633Michael Buesch 74e4d6b7951812d98417feb10784e400e253caf633Michael Bueschint b43_debug(struct b43_wldev *dev, enum b43_dyndbg feature); 75e4d6b7951812d98417feb10784e400e253caf633Michael Buesch 76e4d6b7951812d98417feb10784e400e253caf633Michael Bueschvoid b43_debugfs_init(void); 77e4d6b7951812d98417feb10784e400e253caf633Michael Bueschvoid b43_debugfs_exit(void); 78e4d6b7951812d98417feb10784e400e253caf633Michael Bueschvoid b43_debugfs_add_device(struct b43_wldev *dev); 79e4d6b7951812d98417feb10784e400e253caf633Michael Bueschvoid b43_debugfs_remove_device(struct b43_wldev *dev); 80e4d6b7951812d98417feb10784e400e253caf633Michael Bueschvoid b43_debugfs_log_txstat(struct b43_wldev *dev, 81e4d6b7951812d98417feb10784e400e253caf633Michael Buesch const struct b43_txstatus *status); 82e4d6b7951812d98417feb10784e400e253caf633Michael Buesch 83e4d6b7951812d98417feb10784e400e253caf633Michael Buesch#else /* CONFIG_B43_DEBUG */ 84e4d6b7951812d98417feb10784e400e253caf633Michael Buesch 85e4d6b7951812d98417feb10784e400e253caf633Michael Bueschstatic inline int b43_debug(struct b43_wldev *dev, enum b43_dyndbg feature) 86e4d6b7951812d98417feb10784e400e253caf633Michael Buesch{ 87e4d6b7951812d98417feb10784e400e253caf633Michael Buesch return 0; 88e4d6b7951812d98417feb10784e400e253caf633Michael Buesch} 89e4d6b7951812d98417feb10784e400e253caf633Michael Buesch 90e4d6b7951812d98417feb10784e400e253caf633Michael Bueschstatic inline void b43_debugfs_init(void) 91e4d6b7951812d98417feb10784e400e253caf633Michael Buesch{ 92e4d6b7951812d98417feb10784e400e253caf633Michael Buesch} 93e4d6b7951812d98417feb10784e400e253caf633Michael Bueschstatic inline void b43_debugfs_exit(void) 94e4d6b7951812d98417feb10784e400e253caf633Michael Buesch{ 95e4d6b7951812d98417feb10784e400e253caf633Michael Buesch} 96e4d6b7951812d98417feb10784e400e253caf633Michael Bueschstatic inline void b43_debugfs_add_device(struct b43_wldev *dev) 97e4d6b7951812d98417feb10784e400e253caf633Michael Buesch{ 98e4d6b7951812d98417feb10784e400e253caf633Michael Buesch} 99e4d6b7951812d98417feb10784e400e253caf633Michael Bueschstatic inline void b43_debugfs_remove_device(struct b43_wldev *dev) 100e4d6b7951812d98417feb10784e400e253caf633Michael Buesch{ 101e4d6b7951812d98417feb10784e400e253caf633Michael Buesch} 102e4d6b7951812d98417feb10784e400e253caf633Michael Bueschstatic inline void b43_debugfs_log_txstat(struct b43_wldev *dev, 103e4d6b7951812d98417feb10784e400e253caf633Michael Buesch const struct b43_txstatus *status) 104e4d6b7951812d98417feb10784e400e253caf633Michael Buesch{ 105e4d6b7951812d98417feb10784e400e253caf633Michael Buesch} 106e4d6b7951812d98417feb10784e400e253caf633Michael Buesch 107e4d6b7951812d98417feb10784e400e253caf633Michael Buesch#endif /* CONFIG_B43_DEBUG */ 108e4d6b7951812d98417feb10784e400e253caf633Michael Buesch 109e4d6b7951812d98417feb10784e400e253caf633Michael Buesch#endif /* B43_DEBUGFS_H_ */ 110