diff options
author | Rafał Miłecki <rafal@milecki.pl> | 2019-02-26 14:11:19 +0100 |
---|---|---|
committer | Kalle Valo <kvalo@codeaurora.org> | 2019-04-04 13:00:13 +0300 |
commit | 4684997d9eea29380000e062755aa6d368d789a3 (patch) | |
tree | bff2a95f840b6c3412fa8ed9ddef5f02ba346867 /drivers/net/wireless/broadcom/brcm80211/brcmfmac/bus.h | |
parent | a2ec87ddbf1637f854ffcfff9d12d392fa30758b (diff) |
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.h | 10 |
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 */ |