Skip to content

Commit 34789d0

Browse files
Arend Van SprielKalle Valo
authored andcommitted
brcmfmac: use wiphy debugfs dir entry
The driver used to create a brcmfmac dir entry at the top level debugfs mount point. This moves the debugfs entries into the wiphy debugfs dir entry. Reviewed-by: Hante Meuleman <hante.meuleman@broadcom.com> Reviewed-by: Pieter-Paul Giesberts <pieter-paul.giesberts@broadcom.com> Reviewed-by: Franky Lin <franky.lin@broadcom.com> Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
1 parent 856d5a0 commit 34789d0

File tree

12 files changed

+47
-74
lines changed

12 files changed

+47
-74
lines changed

drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcdc.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -445,6 +445,11 @@ brcmf_proto_bcdc_init_done(struct brcmf_pub *drvr)
445445
return 0;
446446
}
447447

448+
static void brcmf_proto_bcdc_debugfs_create(struct brcmf_pub *drvr)
449+
{
450+
brcmf_fws_debugfs_create(drvr);
451+
}
452+
448453
int brcmf_proto_bcdc_attach(struct brcmf_pub *drvr)
449454
{
450455
struct brcmf_bcdc *bcdc;
@@ -472,6 +477,7 @@ int brcmf_proto_bcdc_attach(struct brcmf_pub *drvr)
472477
drvr->proto->del_if = brcmf_proto_bcdc_del_if;
473478
drvr->proto->reset_if = brcmf_proto_bcdc_reset_if;
474479
drvr->proto->init_done = brcmf_proto_bcdc_init_done;
480+
drvr->proto->debugfs_create = brcmf_proto_bcdc_debugfs_create;
475481
drvr->proto->pd = bcdc;
476482

477483
drvr->hdrlen += BCDC_HEADER_LEN + BRCMF_PROT_FW_SIGNAL_MAX_TXBYTES;

drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -524,9 +524,6 @@ static int __init brcmfmac_module_init(void)
524524
{
525525
int err;
526526

527-
/* Initialize debug system first */
528-
brcmf_debugfs_init();
529-
530527
/* Get the platform data (if available) for our devices */
531528
err = platform_driver_probe(&brcmf_pd, brcmf_common_pd_probe);
532529
if (err == -ENODEV)
@@ -538,7 +535,6 @@ static int __init brcmfmac_module_init(void)
538535
/* Continue the initialization by registering the different busses */
539536
err = brcmf_core_init();
540537
if (err) {
541-
brcmf_debugfs_exit();
542538
if (brcmfmac_pdata)
543539
platform_driver_unregister(&brcmf_pd);
544540
}
@@ -551,7 +547,6 @@ static void __exit brcmfmac_module_exit(void)
551547
brcmf_core_exit();
552548
if (brcmfmac_pdata)
553549
platform_driver_unregister(&brcmf_pd);
554-
brcmf_debugfs_exit();
555550
}
556551

557552
module_init(brcmfmac_module_init);

drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -972,8 +972,6 @@ static int brcmf_bus_started(struct brcmf_pub *drvr, struct cfg80211_ops *ops)
972972
if (ret < 0)
973973
goto fail;
974974

975-
brcmf_debugfs_add_entry(drvr, "revinfo", brcmf_revinfo_read);
976-
977975
brcmf_feat_attach(drvr);
978976

979977
ret = brcmf_proto_init_done(drvr);
@@ -1016,6 +1014,11 @@ static int brcmf_bus_started(struct brcmf_pub *drvr, struct cfg80211_ops *ops)
10161014
#endif
10171015
#endif /* CONFIG_INET */
10181016

1017+
/* populate debugfs */
1018+
brcmf_debugfs_add_entry(drvr, "revinfo", brcmf_revinfo_read);
1019+
brcmf_feat_debugfs_create(drvr);
1020+
brcmf_proto_debugfs_create(drvr);
1021+
10191022
return 0;
10201023

10211024
fail:
@@ -1068,9 +1071,6 @@ int brcmf_attach(struct device *dev, struct brcmf_mp_device *settings)
10681071
drvr->bus_if->drvr = drvr;
10691072
drvr->settings = settings;
10701073

1071-
/* attach debug facilities */
1072-
brcmf_debug_attach(drvr);
1073-
10741074
/* Attach and link in the protocol */
10751075
ret = brcmf_proto_attach(drvr);
10761076
if (ret != 0) {
@@ -1160,7 +1160,6 @@ void brcmf_detach(struct device *dev)
11601160

11611161
brcmf_proto_detach(drvr);
11621162

1163-
brcmf_debug_detach(drvr);
11641163
bus_if->drvr = NULL;
11651164
wiphy_free(drvr->wiphy);
11661165
}

drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.c

Lines changed: 3 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@
2525
#include "fweh.h"
2626
#include "debug.h"
2727

28-
static struct dentry *root_folder;
29-
3028
int brcmf_debug_create_memdump(struct brcmf_bus *bus, const void *data,
3129
size_t len)
3230
{
@@ -54,52 +52,18 @@ int brcmf_debug_create_memdump(struct brcmf_bus *bus, const void *data,
5452
return 0;
5553
}
5654

57-
void brcmf_debugfs_init(void)
58-
{
59-
root_folder = debugfs_create_dir(KBUILD_MODNAME, NULL);
60-
if (IS_ERR(root_folder))
61-
root_folder = NULL;
62-
}
63-
64-
void brcmf_debugfs_exit(void)
65-
{
66-
if (!root_folder)
67-
return;
68-
69-
debugfs_remove_recursive(root_folder);
70-
root_folder = NULL;
71-
}
72-
73-
int brcmf_debug_attach(struct brcmf_pub *drvr)
74-
{
75-
struct device *dev = drvr->bus_if->dev;
76-
77-
if (!root_folder)
78-
return -ENODEV;
79-
80-
drvr->dbgfs_dir = debugfs_create_dir(dev_name(dev), root_folder);
81-
return PTR_ERR_OR_ZERO(drvr->dbgfs_dir);
82-
}
83-
84-
void brcmf_debug_detach(struct brcmf_pub *drvr)
85-
{
86-
brcmf_fweh_unregister(drvr, BRCMF_E_PSM_WATCHDOG);
87-
88-
if (!IS_ERR_OR_NULL(drvr->dbgfs_dir))
89-
debugfs_remove_recursive(drvr->dbgfs_dir);
90-
}
91-
9255
struct dentry *brcmf_debugfs_get_devdir(struct brcmf_pub *drvr)
9356
{
94-
return drvr->dbgfs_dir;
57+
return drvr->wiphy->debugfsdir;
9558
}
9659

9760
int brcmf_debugfs_add_entry(struct brcmf_pub *drvr, const char *fn,
9861
int (*read_fn)(struct seq_file *seq, void *data))
9962
{
10063
struct dentry *e;
10164

65+
WARN(!drvr->wiphy->debugfsdir, "wiphy not (yet) registered\n");
10266
e = debugfs_create_devm_seqfile(drvr->bus_if->dev, fn,
103-
drvr->dbgfs_dir, read_fn);
67+
drvr->wiphy->debugfsdir, read_fn);
10468
return PTR_ERR_OR_ZERO(e);
10569
}

drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.h

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -113,29 +113,12 @@ extern int brcmf_msg_level;
113113
struct brcmf_bus;
114114
struct brcmf_pub;
115115
#ifdef DEBUG
116-
void brcmf_debugfs_init(void);
117-
void brcmf_debugfs_exit(void);
118-
int brcmf_debug_attach(struct brcmf_pub *drvr);
119-
void brcmf_debug_detach(struct brcmf_pub *drvr);
120116
struct dentry *brcmf_debugfs_get_devdir(struct brcmf_pub *drvr);
121117
int brcmf_debugfs_add_entry(struct brcmf_pub *drvr, const char *fn,
122118
int (*read_fn)(struct seq_file *seq, void *data));
123119
int brcmf_debug_create_memdump(struct brcmf_bus *bus, const void *data,
124120
size_t len);
125121
#else
126-
static inline void brcmf_debugfs_init(void)
127-
{
128-
}
129-
static inline void brcmf_debugfs_exit(void)
130-
{
131-
}
132-
static inline int brcmf_debug_attach(struct brcmf_pub *drvr)
133-
{
134-
return 0;
135-
}
136-
static inline void brcmf_debug_detach(struct brcmf_pub *drvr)
137-
{
138-
}
139122
static inline
140123
int brcmf_debugfs_add_entry(struct brcmf_pub *drvr, const char *fn,
141124
int (*read_fn)(struct seq_file *seq, void *data))

drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,10 @@ void brcmf_feat_attach(struct brcmf_pub *drvr)
228228
/* no quirks */
229229
break;
230230
}
231+
}
231232

233+
void brcmf_feat_debugfs_create(struct brcmf_pub *drvr)
234+
{
232235
brcmf_debugfs_add_entry(drvr, "features", brcmf_feat_debugfs_read);
233236
}
234237

drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,13 @@ enum brcmf_feat_quirk {
8989
*/
9090
void brcmf_feat_attach(struct brcmf_pub *drvr);
9191

92+
/**
93+
* brcmf_feat_debugfs_create() - create debugfs entries.
94+
*
95+
* @drvr: driver instance.
96+
*/
97+
void brcmf_feat_debugfs_create(struct brcmf_pub *drvr);
98+
9299
/**
93100
* brcmf_feat_is_enabled() - query feature.
94101
*

drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2399,10 +2399,6 @@ struct brcmf_fws_info *brcmf_fws_attach(struct brcmf_pub *drvr)
23992399
brcmu_pktq_init(&fws->desc.other.psq, BRCMF_FWS_PSQ_PREC_COUNT,
24002400
BRCMF_FWS_PSQ_LEN);
24012401

2402-
/* create debugfs file for statistics */
2403-
brcmf_debugfs_add_entry(drvr, "fws_stats",
2404-
brcmf_debugfs_fws_stats_read);
2405-
24062402
brcmf_dbg(INFO, "%s bdcv2 tlv signaling [%x]\n",
24072403
fws->fw_signals ? "enabled" : "disabled", tlv);
24082404
return fws;
@@ -2429,6 +2425,13 @@ void brcmf_fws_detach(struct brcmf_fws_info *fws)
24292425
kfree(fws);
24302426
}
24312427

2428+
void brcmf_fws_debugfs_create(struct brcmf_pub *drvr)
2429+
{
2430+
/* create debugfs file for statistics */
2431+
brcmf_debugfs_add_entry(drvr, "fws_stats",
2432+
brcmf_debugfs_fws_stats_read);
2433+
}
2434+
24322435
bool brcmf_fws_queue_skbs(struct brcmf_fws_info *fws)
24332436
{
24342437
return !fws->avoid_queueing;

drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
struct brcmf_fws_info *brcmf_fws_attach(struct brcmf_pub *drvr);
2222
void brcmf_fws_detach(struct brcmf_fws_info *fws);
23+
void brcmf_fws_debugfs_create(struct brcmf_pub *drvr);
2324
bool brcmf_fws_queue_skbs(struct brcmf_fws_info *fws);
2425
bool brcmf_fws_fc_active(struct brcmf_fws_info *fws);
2526
void brcmf_fws_hdrpull(struct brcmf_if *ifp, s16 siglen, struct sk_buff *skb);

drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1418,6 +1418,11 @@ static int brcmf_msgbuf_stats_read(struct seq_file *seq, void *data)
14181418
}
14191419
#endif
14201420

1421+
static void brcmf_msgbuf_debugfs_create(struct brcmf_pub *drvr)
1422+
{
1423+
brcmf_debugfs_add_entry(drvr, "msgbuf_stats", brcmf_msgbuf_stats_read);
1424+
}
1425+
14211426
int brcmf_proto_msgbuf_attach(struct brcmf_pub *drvr)
14221427
{
14231428
struct brcmf_bus_msgbuf *if_msgbuf;
@@ -1472,6 +1477,7 @@ int brcmf_proto_msgbuf_attach(struct brcmf_pub *drvr)
14721477
drvr->proto->delete_peer = brcmf_msgbuf_delete_peer;
14731478
drvr->proto->add_tdls_peer = brcmf_msgbuf_add_tdls_peer;
14741479
drvr->proto->rxreorder = brcmf_msgbuf_rxreorder;
1480+
drvr->proto->debugfs_create = brcmf_msgbuf_debugfs_create;
14751481
drvr->proto->pd = msgbuf;
14761482

14771483
init_waitqueue_head(&msgbuf->ioctl_resp_wait);
@@ -1525,8 +1531,6 @@ int brcmf_proto_msgbuf_attach(struct brcmf_pub *drvr)
15251531
spin_lock_init(&msgbuf->flowring_work_lock);
15261532
INIT_LIST_HEAD(&msgbuf->work_queue);
15271533

1528-
brcmf_debugfs_add_entry(drvr, "msgbuf_stats", brcmf_msgbuf_stats_read);
1529-
15301534
return 0;
15311535

15321536
fail:

drivers/net/wireless/broadcom/brcm80211/brcmfmac/proto.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,8 @@ int brcmf_proto_attach(struct brcmf_pub *drvr)
5454
if (!proto->tx_queue_data || (proto->hdrpull == NULL) ||
5555
(proto->query_dcmd == NULL) || (proto->set_dcmd == NULL) ||
5656
(proto->configure_addr_mode == NULL) ||
57-
(proto->delete_peer == NULL) || (proto->add_tdls_peer == NULL)) {
57+
(proto->delete_peer == NULL) || (proto->add_tdls_peer == NULL) ||
58+
(proto->debugfs_create == NULL)) {
5859
brcmf_err("Not all proto handlers have been installed\n");
5960
goto fail;
6061
}

drivers/net/wireless/broadcom/brcm80211/brcmfmac/proto.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ struct brcmf_proto {
4848
void (*del_if)(struct brcmf_if *ifp);
4949
void (*reset_if)(struct brcmf_if *ifp);
5050
int (*init_done)(struct brcmf_pub *drvr);
51+
void (*debugfs_create)(struct brcmf_pub *drvr);
5152
void *pd;
5253
};
5354

@@ -156,4 +157,10 @@ brcmf_proto_init_done(struct brcmf_pub *drvr)
156157
return drvr->proto->init_done(drvr);
157158
}
158159

160+
static inline void
161+
brcmf_proto_debugfs_create(struct brcmf_pub *drvr)
162+
{
163+
drvr->proto->debugfs_create(drvr);
164+
}
165+
159166
#endif /* BRCMFMAC_PROTO_H */

0 commit comments

Comments
 (0)