aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r--drivers/net/wireless/ath9k/debug.c24
-rw-r--r--drivers/net/wireless/ath9k/debug.h12
-rw-r--r--drivers/net/wireless/ath9k/main.c13
3 files changed, 41 insertions, 8 deletions
diff --git a/drivers/net/wireless/ath9k/debug.c b/drivers/net/wireless/ath9k/debug.c
index 8d91422106d9..0f7e249d2d2e 100644
--- a/drivers/net/wireless/ath9k/debug.c
+++ b/drivers/net/wireless/ath9k/debug.c
@@ -19,6 +19,8 @@
19static unsigned int ath9k_debug = DBG_DEFAULT; 19static unsigned int ath9k_debug = DBG_DEFAULT;
20module_param_named(debug, ath9k_debug, uint, 0); 20module_param_named(debug, ath9k_debug, uint, 0);
21 21
22static struct dentry *ath9k_debugfs_root;
23
22void DPRINTF(struct ath_softc *sc, int dbg_mask, const char *fmt, ...) 24void DPRINTF(struct ath_softc *sc, int dbg_mask, const char *fmt, ...)
23{ 25{
24 if (!sc) 26 if (!sc)
@@ -491,12 +493,8 @@ int ath9k_init_debug(struct ath_softc *sc)
491{ 493{
492 sc->debug.debug_mask = ath9k_debug; 494 sc->debug.debug_mask = ath9k_debug;
493 495
494 sc->debug.debugfs_root = debugfs_create_dir(KBUILD_MODNAME, NULL);
495 if (!sc->debug.debugfs_root)
496 goto err;
497
498 sc->debug.debugfs_phy = debugfs_create_dir(wiphy_name(sc->hw->wiphy), 496 sc->debug.debugfs_phy = debugfs_create_dir(wiphy_name(sc->hw->wiphy),
499 sc->debug.debugfs_root); 497 ath9k_debugfs_root);
500 if (!sc->debug.debugfs_phy) 498 if (!sc->debug.debugfs_phy)
501 goto err; 499 goto err;
502 500
@@ -538,5 +536,19 @@ void ath9k_exit_debug(struct ath_softc *sc)
538 debugfs_remove(sc->debug.debugfs_interrupt); 536 debugfs_remove(sc->debug.debugfs_interrupt);
539 debugfs_remove(sc->debug.debugfs_dma); 537 debugfs_remove(sc->debug.debugfs_dma);
540 debugfs_remove(sc->debug.debugfs_phy); 538 debugfs_remove(sc->debug.debugfs_phy);
541 debugfs_remove(sc->debug.debugfs_root); 539}
540
541int ath9k_debug_create_root(void)
542{
543 ath9k_debugfs_root = debugfs_create_dir(KBUILD_MODNAME, NULL);
544 if (!ath9k_debugfs_root)
545 return -ENOENT;
546
547 return 0;
548}
549
550void ath9k_debug_remove_root(void)
551{
552 debugfs_remove(ath9k_debugfs_root);
553 ath9k_debugfs_root = NULL;
542} 554}
diff --git a/drivers/net/wireless/ath9k/debug.h b/drivers/net/wireless/ath9k/debug.h
index 2a33d74fdbee..065268b8568f 100644
--- a/drivers/net/wireless/ath9k/debug.h
+++ b/drivers/net/wireless/ath9k/debug.h
@@ -102,7 +102,6 @@ struct ath_stats {
102 102
103struct ath9k_debug { 103struct ath9k_debug {
104 int debug_mask; 104 int debug_mask;
105 struct dentry *debugfs_root;
106 struct dentry *debugfs_phy; 105 struct dentry *debugfs_phy;
107 struct dentry *debugfs_dma; 106 struct dentry *debugfs_dma;
108 struct dentry *debugfs_interrupt; 107 struct dentry *debugfs_interrupt;
@@ -114,6 +113,8 @@ struct ath9k_debug {
114void DPRINTF(struct ath_softc *sc, int dbg_mask, const char *fmt, ...); 113void DPRINTF(struct ath_softc *sc, int dbg_mask, const char *fmt, ...);
115int ath9k_init_debug(struct ath_softc *sc); 114int ath9k_init_debug(struct ath_softc *sc);
116void ath9k_exit_debug(struct ath_softc *sc); 115void ath9k_exit_debug(struct ath_softc *sc);
116int ath9k_debug_create_root(void);
117void ath9k_debug_remove_root(void);
117void ath_debug_stat_interrupt(struct ath_softc *sc, enum ath9k_int status); 118void ath_debug_stat_interrupt(struct ath_softc *sc, enum ath9k_int status);
118void ath_debug_stat_rc(struct ath_softc *sc, struct sk_buff *skb); 119void ath_debug_stat_rc(struct ath_softc *sc, struct sk_buff *skb);
119void ath_debug_stat_retries(struct ath_softc *sc, int rix, 120void ath_debug_stat_retries(struct ath_softc *sc, int rix,
@@ -135,6 +136,15 @@ static inline void ath9k_exit_debug(struct ath_softc *sc)
135{ 136{
136} 137}
137 138
139static inline int ath9k_debug_create_root(void)
140{
141 return 0;
142}
143
144static inline void ath9k_debug_remove_root(void)
145{
146}
147
138static inline void ath_debug_stat_interrupt(struct ath_softc *sc, 148static inline void ath_debug_stat_interrupt(struct ath_softc *sc,
139 enum ath9k_int status) 149 enum ath9k_int status)
140{ 150{
diff --git a/drivers/net/wireless/ath9k/main.c b/drivers/net/wireless/ath9k/main.c
index f473fee72a2e..bb30ccca1843 100644
--- a/drivers/net/wireless/ath9k/main.c
+++ b/drivers/net/wireless/ath9k/main.c
@@ -2858,12 +2858,20 @@ static int __init ath9k_init(void)
2858 goto err_out; 2858 goto err_out;
2859 } 2859 }
2860 2860
2861 error = ath9k_debug_create_root();
2862 if (error) {
2863 printk(KERN_ERR
2864 "ath9k: Unable to create debugfs root: %d\n",
2865 error);
2866 goto err_rate_unregister;
2867 }
2868
2861 error = ath_pci_init(); 2869 error = ath_pci_init();
2862 if (error < 0) { 2870 if (error < 0) {
2863 printk(KERN_ERR 2871 printk(KERN_ERR
2864 "ath9k: No PCI devices found, driver not installed.\n"); 2872 "ath9k: No PCI devices found, driver not installed.\n");
2865 error = -ENODEV; 2873 error = -ENODEV;
2866 goto err_rate_unregister; 2874 goto err_remove_root;
2867 } 2875 }
2868 2876
2869 error = ath_ahb_init(); 2877 error = ath_ahb_init();
@@ -2877,6 +2885,8 @@ static int __init ath9k_init(void)
2877 err_pci_exit: 2885 err_pci_exit:
2878 ath_pci_exit(); 2886 ath_pci_exit();
2879 2887
2888 err_remove_root:
2889 ath9k_debug_remove_root();
2880 err_rate_unregister: 2890 err_rate_unregister:
2881 ath_rate_control_unregister(); 2891 ath_rate_control_unregister();
2882 err_out: 2892 err_out:
@@ -2888,6 +2898,7 @@ static void __exit ath9k_exit(void)
2888{ 2898{
2889 ath_ahb_exit(); 2899 ath_ahb_exit();
2890 ath_pci_exit(); 2900 ath_pci_exit();
2901 ath9k_debug_remove_root();
2891 ath_rate_control_unregister(); 2902 ath_rate_control_unregister();
2892 printk(KERN_INFO "%s: Driver unloaded\n", dev_info); 2903 printk(KERN_INFO "%s: Driver unloaded\n", dev_info);
2893} 2904}