Signed-off-by: Ameya Palande <[email protected]>
---
 drivers/dsp/bridge/wmd/tiomap3430_pwr.c |   33 ++++++++++++++++++------------
 1 files changed, 20 insertions(+), 13 deletions(-)

diff --git a/drivers/dsp/bridge/wmd/tiomap3430_pwr.c 
b/drivers/dsp/bridge/wmd/tiomap3430_pwr.c
index b81df8c..7aa58d1 100644
--- a/drivers/dsp/bridge/wmd/tiomap3430_pwr.c
+++ b/drivers/dsp/bridge/wmd/tiomap3430_pwr.c
@@ -204,20 +204,21 @@ DSP_STATUS SleepDSP(struct WMD_DEV_CONTEXT *pDevContext, 
IN u32 dwCmd,
        struct CFG_HOSTRES resources;
        struct DEH_MGR *hDehMgr;
        u16 usCount = TIHELEN_ACKTIMEOUT;
-       enum HW_PwrState_t pwrState;
-       enum HW_PwrState_t targetPwrState;
+       enum HW_PwrState_t pwrState, targetPwrState;
 
-       status = CFG_GetHostResources(
-                (struct CFG_DEVNODE *)DRV_GetFirstDevExtension(), &resources);
-       if (DSP_FAILED(status))
-               return status;
        DBG_Trace(DBG_LEVEL7, "SleepDSP- Enter function \n");
 
-               /* next, check if sleep code is valid... */
+       /* Check if sleep code is valid */
        if ((dwCmd != PWR_DEEPSLEEP) && (dwCmd != PWR_EMERGENCYDEEPSLEEP)) {
                DBG_Trace(DBG_LEVEL7, "SleepDSP- Illegal sleep command\n");
                return DSP_EINVALIDARG;
        }
+
+       status = CFG_GetHostResources(
+                (struct CFG_DEVNODE *)DRV_GetFirstDevExtension(), &resources);
+       if (DSP_FAILED(status))
+               return status;
+
        switch (pDevContext->dwBrdState) {
        case BRD_RUNNING:
                status = HW_MBOX_saveSettings(resources.dwMboxBase);
@@ -245,7 +246,6 @@ DSP_STATUS SleepDSP(struct WMD_DEV_CONTEXT *pDevContext, IN 
u32 dwCmd,
                break;
        case BRD_HIBERNATION:
        case BRD_DSP_HIBERNATION:
-               status = HW_MBOX_saveSettings(resources.dwMboxBase);
                /* Already in Hibernation, so just return */
                DBG_Trace(DBG_LEVEL7, "SleepDSP- DSP already in "
                         "hibernation\n");
@@ -259,17 +259,22 @@ DSP_STATUS SleepDSP(struct WMD_DEV_CONTEXT *pDevContext, 
IN u32 dwCmd,
                         "SleepDSP- Bridge in Illegal state\n");
                        return DSP_EFAIL;
        }
+
        /* Get the PRCM DSP power domain status */
        HW_PWR_IVA2StateGet(resources.dwPrmBase, HW_PWR_DOMAIN_DSP,
-                           &pwrState);
-       /* Wait for DSP to move into Standby state,  how much time
-        * should we wait?*/
+                       &pwrState);
+
+       /*
+        * Wait for DSP to move into Standby state,  how much time
+        * should we wait?
+        */
        while ((pwrState != targetPwrState) && --usCount) {
                udelay(500);
                HW_PWR_IVA2StateGet(resources.dwPrmBase, HW_PWR_DOMAIN_DSP,
                                    &pwrState);
        }
-       if (usCount == 0) {
+
+       if (!usCount) {
                DBG_Trace(DBG_LEVEL7, "SleepDSP: Timed out Waiting for DSP"
                         " STANDBY %x \n", pwrState);
                DEV_GetDehMgr(pDevContext->hDevObject, &hDehMgr);
@@ -278,17 +283,19 @@ DSP_STATUS SleepDSP(struct WMD_DEV_CONTEXT *pDevContext, 
IN u32 dwCmd,
        } else {
                DBG_Trace(DBG_LEVEL7, "SleepDSP: DSP STANDBY Pwr state %x \n",
                         pwrState);
+
                /* Update the Bridger Driver state */
                if (enable_off_mode)
                        pDevContext->dwBrdState = BRD_HIBERNATION;
                else
                        pDevContext->dwBrdState = BRD_RETENTION;
+
                /* Turn off DSP Peripheral clocks  */
                status = DSP_PeripheralClocks_Disable(pDevContext, NULL);
                if (DSP_FAILED(status))
                        DBG_Trace(DBG_LEVEL7, "SleepDSP- FAILED\n");
        }
-#endif
+#endif /* CONFIG_PM */
        return status;
 }
 
-- 
1.6.2.4

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to