diff options
| author | Hamad Kadmany <hkadmany@codeaurora.org> | 2015-07-09 16:04:26 +0300 |
|---|---|---|
| committer | David Keitel <dkeitel@codeaurora.org> | 2016-03-23 19:57:54 -0700 |
| commit | 857bd53c2d4e18dba47eca553e7ef94f7b4403d9 (patch) | |
| tree | 9e872af70243b77823bec937c5d3fc0d8db3b9fb | |
| parent | ab30d8cc1645461e6c6c29c8d21c42d95906b332 (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.c | 14 |
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; } |
