summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bus.h
diff options
context:
space:
mode:
authorRafał Miłecki <rafal@milecki.pl>2019-02-26 14:11:19 +0100
committerKalle Valo <kvalo@codeaurora.org>2019-04-04 13:00:13 +0300
commit4684997d9eea29380000e062755aa6d368d789a3 (patch)
treebff2a95f840b6c3412fa8ed9ddef5f02ba346867 /drivers/net/wireless/broadcom/brcm80211/brcmfmac/bus.h
parenta2ec87ddbf1637f854ffcfff9d12d392fa30758b (diff)
downloadlinux-4684997d9eea29380000e062755aa6d368d789a3.tar.bz2
brcmfmac: reset PCIe bus on a firmware crash
This includes bus reset & reloading a firmware. It should be sufficient for a user space to (setup and) use a wireless device again. Support for reset on USB & SDIO can be added later. Signed-off-by: Rafał Miłecki <rafal@milecki.pl> Reviewed-by: Arend van Spriel <arend.vanspriel@broadcom.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Diffstat (limited to 'drivers/net/wireless/broadcom/brcm80211/brcmfmac/bus.h')
-rw-r--r--drivers/net/wireless/broadcom/brcm80211/brcmfmac/bus.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bus.h b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bus.h
index 801106583ae7..2fe167eae22c 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bus.h
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bus.h
@@ -91,6 +91,7 @@ struct brcmf_bus_ops {
int (*get_fwname)(struct device *dev, const char *ext,
unsigned char *fw_name);
void (*debugfs_create)(struct device *dev);
+ int (*reset)(struct device *dev);
};
@@ -245,6 +246,15 @@ void brcmf_bus_debugfs_create(struct brcmf_bus *bus)
return bus->ops->debugfs_create(bus->dev);
}
+static inline
+int brcmf_bus_reset(struct brcmf_bus *bus)
+{
+ if (!bus->ops->reset)
+ return -EOPNOTSUPP;
+
+ return bus->ops->reset(bus->dev);
+}
+
/*
* interface functions from common layer
*/