This patch also contains indentation fixes and cleanups for
CHNLSM_InterruptDSP2().

[Hiroshi DOYU: split the original to logical ones]

Reported-by: Roman Tereshonkov <[email protected]>
Signed-off-by: Ameya Palande <[email protected]>
Acked-by: Omar Ramirez Luna <[email protected]>
---
 drivers/dsp/bridge/wmd/tiomap_sm.c |   56 +++++++++++++++++------------------
 1 files changed, 27 insertions(+), 29 deletions(-)

diff --git a/drivers/dsp/bridge/wmd/tiomap_sm.c 
b/drivers/dsp/bridge/wmd/tiomap_sm.c
index b5d3d6d..7d389e3 100644
--- a/drivers/dsp/bridge/wmd/tiomap_sm.c
+++ b/drivers/dsp/bridge/wmd/tiomap_sm.c
@@ -108,60 +108,58 @@ DSP_STATUS CHNLSM_InterruptDSP2(struct WMD_DEV_CONTEXT 
*pDevContext,
        unsigned long timeout;
        u32 temp;
 
-       status = CFG_GetHostResources((struct CFG_DEVNODE 
*)DRV_GetFirstDevExtension(),
-                                     &resources);
+       status = CFG_GetHostResources((struct CFG_DEVNODE *)
+                       DRV_GetFirstDevExtension(), &resources);
        if (DSP_FAILED(status))
                return DSP_EFAIL;
-#ifdef CONFIG_BRIDGE_DVFS
+
        if (pDevContext->dwBrdState == BRD_DSP_HIBERNATION ||
            pDevContext->dwBrdState == BRD_HIBERNATION) {
+#ifdef CONFIG_BRIDGE_DVFS
                if (pdata->dsp_get_opp)
                        opplevel = (*pdata->dsp_get_opp)();
-               if (opplevel == 1) {
+               if (opplevel == VDD1_OPP1) {
                        if (pdata->dsp_set_min_opp)
-                               (*pdata->dsp_set_min_opp)(opplevel+1);
+                               (*pdata->dsp_set_min_opp)(VDD1_OPP2);
                }
-       }
 #endif
-
-       if (pDevContext->dwBrdState == BRD_DSP_HIBERNATION ||
-           pDevContext->dwBrdState == BRD_HIBERNATION) {
                /* Restart the peripheral clocks */
                DSP_PeripheralClocks_Enable(pDevContext, NULL);
 
+               /*
+                * 2:0 AUTO_IVA2_DPLL - Enabling IVA2 DPLL auto control
+                *     in CM_AUTOIDLE_PLL_IVA2 register
+                */
+               *(REG_UWORD32 *)(resources.dwCmBase + 0x34) = 0x1;
+
+               /*
+                * 7:4 IVA2_DPLL_FREQSEL - IVA2 internal frq set to
+                *     0.75 MHz - 1.0 MHz
+                * 2:0 EN_IVA2_DPLL - Enable IVA2 DPLL in lock mode
+                */
+               temp = *(REG_UWORD32 *)(resources.dwCmBase + 0x4);
+               temp = (temp & 0xFFFFFF08) | 0x37;
+               *(REG_UWORD32 *)(resources.dwCmBase + 0x4) = temp;
+
                /* Restore mailbox settings */
-               /* Enabling Dpll in lock mode*/
-               temp = (u32) *((REG_UWORD32 *)
-                               ((u32) (resources.dwCmBase) + 0x34));
-               temp = (temp & 0xFFFFFFFE) | 0x1;
-               *((REG_UWORD32 *) ((u32) (resources.dwCmBase) + 0x34)) =
-                       (u32) temp;
-               temp = (u32) *((REG_UWORD32 *)
-                               ((u32) (resources.dwCmBase) + 0x4));
-               temp = (temp & 0xFFFFFC8) | 0x37;
-
-               *((REG_UWORD32 *) ((u32) (resources.dwCmBase) + 0x4)) =
-                       (u32) temp;
                HW_MBOX_restoreSettings(resources.dwMboxBase);
 
-               /*  Access MMU SYS CONFIG register to generate a short wakeup */
-               temp = (u32) *((REG_UWORD32 *) ((u32)
-                                               (resources.dwDmmuBase) + 0x10));
+               /* Access MMU SYS CONFIG register to generate a short wakeup */
+               temp = *(REG_UWORD32 *)(resources.dwDmmuBase + 0x10);
 
                pDevContext->dwBrdState = BRD_RUNNING;
        }
+
        timeout = jiffies + msecs_to_jiffies(1);
        while (fifo_full((void __iomem *) resources.dwMboxBase, 0)) {
                if (time_after(jiffies, timeout)) {
-                       printk(KERN_ERR "dspbridge: timed out waiting for 
mailbox\n");
+                       pr_err("dspbridge: timed out waiting for mailbox\n");
                        return WMD_E_TIMEOUT;
                }
        }
-       DBG_Trace(DBG_LEVEL3, "writing %x to Mailbox\n",
-                 wMbVal);
 
-       HW_MBOX_MsgWrite(resources.dwMboxBase, MBOX_ARM2DSP,
-                        wMbVal);
+       DBG_Trace(DBG_LEVEL3, "writing %x to Mailbox\n", wMbVal);
+       HW_MBOX_MsgWrite(resources.dwMboxBase, MBOX_ARM2DSP, wMbVal);
        return DSP_SOK;
 }
 
-- 
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