Hi,

> -----Original Message-----
> From: Ameya Palande [mailto:[email protected]]
> Sent: Wednesday, July 15, 2009 9:57 AM
> To: [email protected]
> Cc: Ramirez Luna, Omar; Guzman Lugo, Fernando; Menon, Nishanth;
> [email protected]
> Subject: [PATCH 12/13] DSPBRIDGE: fix resuming problem with dsp
> hibernation
> 
> From: Hiroshi DOYU <[email protected]>
> 
> The constraints(opp >= 2) should be set whenever returning from DSP
> hibernation.
> 
> This fixes the problem at the following steps:
> 1) wait DSP hibernate
> 2) echo mem > /sys/power/state
> 3) type key to wakeup
> 

The patch looks good, you are removing the check for OPP1 because it is suppose 
that if the DSP is in Hibernation we have a DSP constrain in OPP1, so I think 
the "if" is always true. However I don't see the issue the mention could you 
please tell me what was the problem you were seeing?


> Signed-off-by: Hiroshi DOYU <[email protected]>
> ---
>  drivers/dsp/bridge/wmd/tiomap_sm.c |   16 +++++-----------
>  1 files changed, 5 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/dsp/bridge/wmd/tiomap_sm.c
> b/drivers/dsp/bridge/wmd/tiomap_sm.c
> index 02e2675..69f6fb3 100644
> --- a/drivers/dsp/bridge/wmd/tiomap_sm.c
> +++ b/drivers/dsp/bridge/wmd/tiomap_sm.c
> @@ -98,11 +98,6 @@ DSP_STATUS CHNLSM_DisableInterrupt(struct
> WMD_DEV_CONTEXT *pDevContext)
>  DSP_STATUS CHNLSM_InterruptDSP2(struct WMD_DEV_CONTEXT *pDevContext,
>                               u16 wMbVal)
>  {
> -#ifdef CONFIG_BRIDGE_DVFS
> -     struct dspbridge_platform_data *pdata =
> -             omap_dspbridge_dev->dev.platform_data;
> -     u32 opplevel = 0;
> -#endif
>       struct CFG_HOSTRES resources;
>       DSP_STATUS status = DSP_SOK;
>       unsigned long timeout;
> @@ -116,12 +111,11 @@ DSP_STATUS CHNLSM_InterruptDSP2(struct
> WMD_DEV_CONTEXT *pDevContext,
>       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 == VDD1_OPP1) {
> -                     if (pdata->dsp_set_min_opp)
> -                             (*pdata->dsp_set_min_opp)(VDD1_OPP2);
> -             }
> +             struct dspbridge_platform_data *pdata =
> +                     omap_dspbridge_dev->dev.platform_data;
> +
> +             if (pdata->dsp_set_min_opp)
> +                     (*pdata->dsp_set_min_opp)(VDD1_OPP2);
>  #endif
>               /* Restart the peripheral clocks */
>               DSP_PeripheralClocks_Enable(pDevContext, NULL);
> --
> 1.6.2.4
> 

Regards,
Fernando.
--
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