mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-23 07:22:33 +00:00
102 lines
3.6 KiB
Diff
102 lines
3.6 KiB
Diff
|
From aaf6a5e86e36766abbeedf220462bde8031f9a72 Mon Sep 17 00:00:00 2001
|
||
|
From: Arend van Spriel <arend.vanspriel@broadcom.com>
|
||
|
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 <linux@armlinux.org.uk>
|
||
|
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>
|
||
|
---
|
||
|
.../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
|