> -----Original Message-----
> From: Hiroshi DOYU [mailto:[email protected]]
> Sent: Wednesday, July 15, 2009 6:10 PM
> To: Guzman Lugo, Fernando
> Cc: [email protected]; [email protected]; Ramirez Luna,
> Omar; Menon, Nishanth
> Subject: Re: [PATCH 11/13] DSPBRIDGE: Set VDD1 OPP1 unconditionally while
> moving to off mode
>
> From: "ext Guzman Lugo, Fernando" <[email protected]>
> Subject: RE: [PATCH 11/13] DSPBRIDGE: Set VDD1 OPP1 unconditionally while
> moving to off mode
> Date: Thu, 16 Jul 2009 00:53:24 +0200
>
> >
> > 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 11/13] DSPBRIDGE: Set VDD1 OPP1 unconditionally while
> > > moving to off mode
> > >
> > > Signed-off-by: Ameya Palande <[email protected]>
> > > ---
> > > drivers/dsp/bridge/wmd/tiomap3430_pwr.c | 18 ++++++++++--------
> > > 1 files changed, 10 insertions(+), 8 deletions(-)
> > >
> > > diff --git a/drivers/dsp/bridge/wmd/tiomap3430_pwr.c
> > > b/drivers/dsp/bridge/wmd/tiomap3430_pwr.c
> > > index 7cc29b7..7c7d9c4 100644
> > > --- a/drivers/dsp/bridge/wmd/tiomap3430_pwr.c
> > > +++ b/drivers/dsp/bridge/wmd/tiomap3430_pwr.c
> > > @@ -167,17 +167,19 @@ DSP_STATUS handle_hibernation_fromDSP(struct
> > > WMD_DEV_CONTEXT *pDevContext)
> > > if (DSP_FAILED(status))
> > > return status;
> > > IO_SHMsetting(hIOMgr, SHM_GETOPP, &opplevel);
> > > - /* Set the OPP to low level before moving to OFF mode */
> > > if (opplevel != VDD1_OPP1) {
> > > DBG_Trace(DBG_LEVEL5,
> > > - "Tiomap_pwr.c - DSP requested"
> > > - " OPP = %d, MPU requesting low"
> > > - " OPP %d instead\n", opplevel,
> > > - VDD1_OPP1);
> > > - if (pdata->dsp_set_min_opp)
> > > - (*pdata->dsp_set_min_opp)(VDD1_OPP1);
> > > - status = DSP_SOK;
> > > + " DSP requested OPP = %d, MPU"
> > > + " requesting low OPP %d instead\n",
> > > + opplevel, VDD1_OPP1);
> > > }
> > > + /*
> > > + * Set the OPP to low level before moving to OFF
> > > + * mode
> > > + */
> > > + if (pdata->dsp_set_min_opp)
> > > + (*pdata->dsp_set_min_opp)(VDD1_OPP1);
> > > + status = DSP_SOK;
> >
> > I think that the "if statement" is only avoiding setting the OPP1 if
> > the DSP is already in OPP1. Were you seeing an issue without this
> > change?
>
> We got the different opplevel with the following patch, which means
> that, OPP value stored in SHM isn't equal to the real OPP since we've
> introduce some codes to bump up OPP1 to OPP2, but never written back
> to SHM.
Ok I see the problem, then the patch looks good for me it will resolve the
problem.
>
> Modified drivers/dsp/bridge/wmd/tiomap3430_pwr.c
> diff --git a/drivers/dsp/bridge/wmd/tiomap3430_pwr.c
> b/drivers/dsp/bridge/wmd/tiomap3430_pwr.c
> index 5f7e855..9cde41f 100644
> --- a/drivers/dsp/bridge/wmd/tiomap3430_pwr.c
> +++ b/drivers/dsp/bridge/wmd/tiomap3430_pwr.c
> @@ -167,6 +167,10 @@ DSP_STATUS handle_hibernation_fromDSP(struct
> WMD_DEV_CONTEXT *pDevContext)
> if (DSP_FAILED(status))
> return status;
> IO_SHMsetting(hIOMgr, SHM_GETOPP, &opplevel);
> + pr_info("%s(%d) %d\n", __func__, __LINE__, opplevel);
> + if (pdata->dsp_get_opp)
> + opplevel = (*pdata->dsp_get_opp)();
> + pr_info("%s(%d) %d\n", __func__, __LINE__, opplevel);
> /* Set the OPP to low level before moving to OFF mode */
> if (opplevel != VDD1_OPP1) {
> DBG_Trace(DBG_LEVEL5,
>
> >
> > > #endif /* CONFIG_BRIDGE_DVFS */
> > > } else {
> > > DBG_Trace(DBG_LEVEL7,
> > > --
> > > 1.6.2.4
> > >
> >
> > Regards,
> > Fernando.
> >
Acked-by Fernando Guzman Lugo <[email protected]>
--
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