Commit a830df07 authored by Felix Fietkau's avatar Felix Fietkau Committed by John W. Linville

ath9k: separate debugfs support from CONFIG_ATH_DEBUG

In my setups, ath9k's debugfs files are most of the time much more
useful than the messages generated by enabling CONFIG_ATH_DEBUG along
with the right debug flags.
Since CONFIG_ATH_DEBUG comes with a noticeable overhead on embedded
systems, this patch makes it possible to use the debugfs files without
that option.
Signed-off-by: default avatarFelix Fietkau <nbd@openwrt.org>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent f911ab83
...@@ -23,17 +23,12 @@ config ATH9K ...@@ -23,17 +23,12 @@ config ATH9K
If you choose to build a module, it'll be called ath9k. If you choose to build a module, it'll be called ath9k.
if ATH_DEBUG config ATH9K_DEBUGFS
config ATH9K_DEBUG
bool "Atheros ath9k debugging" bool "Atheros ath9k debugging"
depends on ATH9K depends on ATH9K
---help--- ---help---
Say Y, if you need ath9k to display debug messages. Say Y, if you need access to ath9k's statistics for
Pass the debug mask as a module parameter: interrupts, rate control, etc.
modprobe ath9k debug=0x00000200
Look in ath9k/debug.h for possible debug masks Also required for changing debug message flags at run time.
endif # ATH_DEBUG
...@@ -7,7 +7,7 @@ ath9k-y += beacon.o \ ...@@ -7,7 +7,7 @@ ath9k-y += beacon.o \
ath9k-$(CONFIG_PCI) += pci.o ath9k-$(CONFIG_PCI) += pci.o
ath9k-$(CONFIG_ATHEROS_AR71XX) += ahb.o ath9k-$(CONFIG_ATHEROS_AR71XX) += ahb.o
ath9k-$(CONFIG_ATH9K_DEBUG) += debug.o ath9k-$(CONFIG_ATH9K_DEBUGFS) += debug.o
obj-$(CONFIG_ATH9K) += ath9k.o obj-$(CONFIG_ATH9K) += ath9k.o
......
...@@ -486,7 +486,7 @@ struct ath_softc { ...@@ -486,7 +486,7 @@ struct ath_softc {
int beacon_interval; int beacon_interval;
#ifdef CONFIG_ATH9K_DEBUG #ifdef CONFIG_ATH9K_DEBUGFS
struct ath9k_debug debug; struct ath9k_debug debug;
#endif #endif
struct ath_beacon_config cur_beacon_conf; struct ath_beacon_config cur_beacon_conf;
......
...@@ -31,6 +31,8 @@ static int ath9k_debugfs_open(struct inode *inode, struct file *file) ...@@ -31,6 +31,8 @@ static int ath9k_debugfs_open(struct inode *inode, struct file *file)
return 0; return 0;
} }
#ifdef CONFIG_ATH_DEBUG
static ssize_t read_file_debug(struct file *file, char __user *user_buf, static ssize_t read_file_debug(struct file *file, char __user *user_buf,
size_t count, loff_t *ppos) size_t count, loff_t *ppos)
{ {
...@@ -71,6 +73,8 @@ static const struct file_operations fops_debug = { ...@@ -71,6 +73,8 @@ static const struct file_operations fops_debug = {
.owner = THIS_MODULE .owner = THIS_MODULE
}; };
#endif
static ssize_t read_file_dma(struct file *file, char __user *user_buf, static ssize_t read_file_dma(struct file *file, char __user *user_buf,
size_t count, loff_t *ppos) size_t count, loff_t *ppos)
{ {
...@@ -563,10 +567,12 @@ int ath9k_init_debug(struct ath_hw *ah) ...@@ -563,10 +567,12 @@ int ath9k_init_debug(struct ath_hw *ah)
if (!sc->debug.debugfs_phy) if (!sc->debug.debugfs_phy)
goto err; goto err;
#ifdef CONFIG_ATH_DEBUG
sc->debug.debugfs_debug = debugfs_create_file("debug", sc->debug.debugfs_debug = debugfs_create_file("debug",
S_IRUSR | S_IWUSR, sc->debug.debugfs_phy, sc, &fops_debug); S_IRUSR | S_IWUSR, sc->debug.debugfs_phy, sc, &fops_debug);
if (!sc->debug.debugfs_debug) if (!sc->debug.debugfs_debug)
goto err; goto err;
#endif
sc->debug.debugfs_dma = debugfs_create_file("dma", S_IRUSR, sc->debug.debugfs_dma = debugfs_create_file("dma", S_IRUSR,
sc->debug.debugfs_phy, sc, &fops_dma); sc->debug.debugfs_phy, sc, &fops_dma);
......
...@@ -23,13 +23,13 @@ ...@@ -23,13 +23,13 @@
struct ath_txq; struct ath_txq;
struct ath_buf; struct ath_buf;
#ifdef CONFIG_ATH9K_DEBUG #ifdef CONFIG_ATH9K_DEBUGFS
#define TX_STAT_INC(q, c) sc->debug.stats.txstats[q].c++ #define TX_STAT_INC(q, c) sc->debug.stats.txstats[q].c++
#else #else
#define TX_STAT_INC(q, c) do { } while (0) #define TX_STAT_INC(q, c) do { } while (0)
#endif #endif
#ifdef CONFIG_ATH9K_DEBUG #ifdef CONFIG_ATH9K_DEBUGFS
/** /**
* struct ath_interrupt_stats - Contains statistics about interrupts * struct ath_interrupt_stats - Contains statistics about interrupts
...@@ -186,6 +186,6 @@ static inline void ath_debug_stat_retries(struct ath_softc *sc, int rix, ...@@ -186,6 +186,6 @@ static inline void ath_debug_stat_retries(struct ath_softc *sc, int rix,
{ {
} }
#endif /* CONFIG_ATH9K_DEBUG */ #endif /* CONFIG_ATH9K_DEBUGFS */
#endif /* DEBUG_H */ #endif /* DEBUG_H */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment