diff options
-rw-r--r-- | drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c b/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c index 9eea7d4dd501..4a6508e7e3a1 100644 --- a/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c +++ b/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c | |||
@@ -1101,9 +1101,7 @@ static int brcmf_ops_sdio_suspend(struct device *dev) | |||
1101 | struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; | 1101 | struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; |
1102 | int ret = 0; | 1102 | int ret = 0; |
1103 | 1103 | ||
1104 | brcmf_dbg(SDIO, "\n"); | 1104 | brcmf_dbg(SDIO, "Enter\n"); |
1105 | |||
1106 | atomic_set(&sdiodev->suspend, true); | ||
1107 | 1105 | ||
1108 | sdio_flags = sdio_get_host_pm_caps(sdiodev->func[1]); | 1106 | sdio_flags = sdio_get_host_pm_caps(sdiodev->func[1]); |
1109 | if (!(sdio_flags & MMC_PM_KEEP_POWER)) { | 1107 | if (!(sdio_flags & MMC_PM_KEEP_POWER)) { |
@@ -1111,9 +1109,12 @@ static int brcmf_ops_sdio_suspend(struct device *dev) | |||
1111 | return -EINVAL; | 1109 | return -EINVAL; |
1112 | } | 1110 | } |
1113 | 1111 | ||
1112 | atomic_set(&sdiodev->suspend, true); | ||
1113 | |||
1114 | ret = sdio_set_host_pm_flags(sdiodev->func[1], MMC_PM_KEEP_POWER); | 1114 | ret = sdio_set_host_pm_flags(sdiodev->func[1], MMC_PM_KEEP_POWER); |
1115 | if (ret) { | 1115 | if (ret) { |
1116 | brcmf_err("Failed to set pm_flags\n"); | 1116 | brcmf_err("Failed to set pm_flags\n"); |
1117 | atomic_set(&sdiodev->suspend, false); | ||
1117 | return ret; | 1118 | return ret; |
1118 | } | 1119 | } |
1119 | 1120 | ||
@@ -1127,6 +1128,7 @@ static int brcmf_ops_sdio_resume(struct device *dev) | |||
1127 | struct brcmf_bus *bus_if = dev_get_drvdata(dev); | 1128 | struct brcmf_bus *bus_if = dev_get_drvdata(dev); |
1128 | struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; | 1129 | struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; |
1129 | 1130 | ||
1131 | brcmf_dbg(SDIO, "Enter\n"); | ||
1130 | brcmf_sdio_wd_timer(sdiodev->bus, BRCMF_WD_POLL_MS); | 1132 | brcmf_sdio_wd_timer(sdiodev->bus, BRCMF_WD_POLL_MS); |
1131 | atomic_set(&sdiodev->suspend, false); | 1133 | atomic_set(&sdiodev->suspend, false); |
1132 | return 0; | 1134 | return 0; |