brcmfmac: restore bus state when enter_D3 fails
authorArend Van Spriel <arend.vanspriel@broadcom.com>
Tue, 28 Mar 2017 10:43:27 +0000 (11:43 +0100)
committerKalle Valo <kvalo@codeaurora.org>
Wed, 5 Apr 2017 12:42:35 +0000 (15:42 +0300)
In brcmf_pcie_suspend() we inform the firmware on the device that
it will enter in D3 state. Before this is done we already bring down
the bus state. However, When entering D3 fails we abort the suspend
and the bus state need to be restored.

Reviewed-by: Hante Meuleman <hante.meuleman@broadcom.com>
Reviewed-by: Pieter-Paul Giesberts <pieter-paul.giesberts@broadcom.com>
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>
drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c

index 6fae4cf3f6ab2876eb6ae2c3b5b07d02bcb0d3ca..f36b96dc6acdfc2160ba35e187a46356a3b41c28 100644 (file)
@@ -1877,6 +1877,7 @@ static int brcmf_pcie_pm_enter_D3(struct device *dev)
                           BRCMF_PCIE_MBDATA_TIMEOUT);
        if (!devinfo->mbdata_completed) {
                brcmf_err("Timeout on response for entering D3 substate\n");
+               brcmf_bus_change_state(bus, BRCMF_BUS_UP);
                return -EIO;
        }