summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHamad Kadmany <hkadmany@codeaurora.org>2015-07-09 16:04:26 +0300
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 19:57:54 -0700
commit857bd53c2d4e18dba47eca553e7ef94f7b4403d9 (patch)
tree9e872af70243b77823bec937c5d3fc0d8db3b9fb
parentab30d8cc1645461e6c6c29c8d21c42d95906b332 (diff)
msm_11ad: Fix config space restore from suspend
Config space was not properly restored when resuming from suspend. Change-Id: I6b9188f3989957eb44c93302d7958d422bb29e81 Signed-off-by: Hamad Kadmany <hkadmany@codeaurora.org> Signed-off-by: Maya Erez <merez@codeaurora.org>
-rw-r--r--drivers/platform/msm/msm_11ad/msm_11ad.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/drivers/platform/msm/msm_11ad/msm_11ad.c b/drivers/platform/msm/msm_11ad/msm_11ad.c
index 2c1032b9ab36..228beecff550 100644
--- a/drivers/platform/msm/msm_11ad/msm_11ad.c
+++ b/drivers/platform/msm/msm_11ad/msm_11ad.c
@@ -30,6 +30,9 @@
#define SMMU_SIZE 0x40000000 /* Device address range size */
#define WIGIG_ENABLE_DELAY 50
+#define PM_OPT_SUSPEND (MSM_PCIE_CONFIG_NO_CFG_RESTORE | \
+ MSM_PCIE_CONFIG_LINKDOWN)
+#define PM_OPT_RESUME MSM_PCIE_CONFIG_NO_CFG_RESTORE
struct device;
@@ -85,7 +88,7 @@ static int ops_suspend(void *handle)
return rc;
}
rc = msm_pcie_pm_control(MSM_PCIE_SUSPEND, pcidev->bus->number,
- pcidev, NULL, 0);
+ pcidev, NULL, PM_OPT_SUSPEND);
if (rc) {
dev_err(ctx->dev, "msm_pcie_pm_control(SUSPEND) failed :%d\n",
rc);
@@ -112,13 +115,18 @@ static int ops_resume(void *handle)
msleep(WIGIG_ENABLE_DELAY);
rc = msm_pcie_pm_control(MSM_PCIE_RESUME, pcidev->bus->number,
- pcidev, NULL, 0);
+ pcidev, NULL, PM_OPT_RESUME);
if (rc) {
dev_err(ctx->dev, "msm_pcie_pm_control(RESUME) failed :%d\n",
rc);
return rc;
}
- pci_restore_state(pcidev);
+ rc = msm_pcie_recover_config(pcidev);
+ if (rc) {
+ dev_err(ctx->dev, "msm_pcie_recover_config failed :%d\n",
+ rc);
+ return rc;
+ }
return rc;
}