1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- From 2f8c8e62cd50d72ac68de884a09c6f5a969a269c Mon Sep 17 00:00:00 2001
- From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
- Date: Sun, 1 Sep 2019 13:34:36 +0200
- Subject: [PATCH] brcmfmac: add "reset" debugfs entry for testing reset
- MIME-Version: 1.0
- Content-Type: text/plain; charset=UTF-8
- Content-Transfer-Encoding: 8bit
- This is a trivial debugfs entry for triggering reset just like in case
- of firmware crash. It works by writing 1 to it:
- echo 1 > reset
- Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
- Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
- ---
- .../broadcom/brcm80211/brcmfmac/core.c | 25 +++++++++++++++++++
- 1 file changed, 25 insertions(+)
- --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
- +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
- @@ -1065,6 +1065,29 @@ static void brcmf_core_bus_reset(struct
- brcmf_bus_reset(drvr->bus_if);
- }
-
- +static ssize_t bus_reset_write(struct file *file, const char __user *user_buf,
- + size_t count, loff_t *ppos)
- +{
- + struct brcmf_pub *drvr = file->private_data;
- + u8 value;
- +
- + if (kstrtou8_from_user(user_buf, count, 0, &value))
- + return -EINVAL;
- +
- + if (value != 1)
- + return -EINVAL;
- +
- + schedule_work(&drvr->bus_reset);
- +
- + return count;
- +}
- +
- +static const struct file_operations bus_reset_fops = {
- + .open = simple_open,
- + .llseek = no_llseek,
- + .write = bus_reset_write,
- +};
- +
- int brcmf_bus_started(struct device *dev)
- {
- int ret = -1;
- @@ -1096,6 +1119,8 @@ int brcmf_bus_started(struct device *dev
- goto fail;
-
- brcmf_debugfs_add_entry(drvr, "revinfo", brcmf_revinfo_read);
- + debugfs_create_file("reset", 0600, brcmf_debugfs_get_devdir(drvr), drvr,
- + &bus_reset_fops);
-
- /* assure we have chipid before feature attach */
- if (!bus_if->chip) {
|