123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- From aaf6a5e86e36766abbeedf220462bde8031f9a72 Mon Sep 17 00:00:00 2001
- From: Arend van Spriel <[email protected]>
- Date: Thu, 14 Feb 2019 13:43:49 +0100
- Subject: [PATCH] brcmfmac: create debugfs files for bus-specific layer
- Since we moved the drivers debugfs directory under ieee80211 debugfs the
- debugfs entries need to be added after wiphy_register() has been called.
- For most part that has been done accordingly, but for the debugfs entries
- added by SDIO it was not and failed silently. This patch fixes that by
- adding a bus-layer callback for it.
- Fixes: 856d5a011c86 ("brcmfmac: allocate struct brcmf_pub instance using wiphy_new()")
- Reported-by: Russel King <[email protected]>
- Reviewed-by: Franky Lin <[email protected]>
- Signed-off-by: Arend van Spriel <[email protected]>
- Signed-off-by: Kalle Valo <[email protected]>
- ---
- .../net/wireless/broadcom/brcm80211/brcmfmac/bus.h | 10 ++++++++++
- .../net/wireless/broadcom/brcm80211/brcmfmac/core.c | 1 +
- .../net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 12 +++++++-----
- 3 files changed, 18 insertions(+), 5 deletions(-)
- --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bus.h
- +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bus.h
- @@ -90,6 +90,7 @@ struct brcmf_bus_ops {
- int (*get_memdump)(struct device *dev, void *data, size_t len);
- int (*get_fwname)(struct device *dev, const char *ext,
- unsigned char *fw_name);
- + void (*debugfs_create)(struct device *dev);
- };
-
-
- @@ -235,6 +236,15 @@ int brcmf_bus_get_fwname(struct brcmf_bu
- return bus->ops->get_fwname(bus->dev, ext, fw_name);
- }
-
- +static inline
- +void brcmf_bus_debugfs_create(struct brcmf_bus *bus)
- +{
- + if (!bus->ops->debugfs_create)
- + return;
- +
- + return bus->ops->debugfs_create(bus->dev);
- +}
- +
- /*
- * interface functions from common layer
- */
- --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
- +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
- @@ -1177,6 +1177,7 @@ static int brcmf_bus_started(struct brcm
- brcmf_debugfs_add_entry(drvr, "revinfo", brcmf_revinfo_read);
- brcmf_feat_debugfs_create(drvr);
- brcmf_proto_debugfs_create(drvr);
- + brcmf_bus_debugfs_create(bus_if);
-
- return 0;
-
- --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
- +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
- @@ -3143,9 +3143,12 @@ static int brcmf_debugfs_sdio_count_read
- return 0;
- }
-
- -static void brcmf_sdio_debugfs_create(struct brcmf_sdio *bus)
- +static void brcmf_sdio_debugfs_create(struct device *dev)
- {
- - struct brcmf_pub *drvr = bus->sdiodev->bus_if->drvr;
- + struct brcmf_bus *bus_if = dev_get_drvdata(dev);
- + struct brcmf_pub *drvr = bus_if->drvr;
- + struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio;
- + struct brcmf_sdio *bus = sdiodev->bus;
- struct dentry *dentry = brcmf_debugfs_get_devdir(drvr);
-
- if (IS_ERR_OR_NULL(dentry))
- @@ -3165,7 +3168,7 @@ static int brcmf_sdio_checkdied(struct b
- return 0;
- }
-
- -static void brcmf_sdio_debugfs_create(struct brcmf_sdio *bus)
- +static void brcmf_sdio_debugfs_create(struct device *dev)
- {
- }
- #endif /* DEBUG */
- @@ -3477,8 +3480,6 @@ static int brcmf_sdio_bus_preinit(struct
- if (bus->rxbuf)
- bus->rxblen = value;
-
- - brcmf_sdio_debugfs_create(bus);
- -
- /* the commands below use the terms tx and rx from
- * a device perspective, ie. bus:txglom affects the
- * bus transfers from device to host.
- @@ -4088,6 +4089,7 @@ static const struct brcmf_bus_ops brcmf_
- .get_ramsize = brcmf_sdio_bus_get_ramsize,
- .get_memdump = brcmf_sdio_bus_get_memdump,
- .get_fwname = brcmf_sdio_get_fwname,
- + .debugfs_create = brcmf_sdio_debugfs_create
- };
-
- #define BRCMF_SDIO_FW_CODE 0
|