> -----Original Message----- > From: Hiroshi DOYU [mailto:Hiroshi.DOYU@xxxxxxxxx] > Sent: Wednesday, July 15, 2009 6:10 PM > To: Guzman Lugo, Fernando > Cc: ameya.palande@xxxxxxxxx; linux-omap@xxxxxxxxxxxxxxx; 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" <x0095840@xxxxxx> > 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:ameya.palande@xxxxxxxxx] > > > Sent: Wednesday, July 15, 2009 9:57 AM > > > To: linux-omap@xxxxxxxxxxxxxxx > > > Cc: Ramirez Luna, Omar; Guzman Lugo, Fernando; Menon, Nishanth; > > > hiroshi.doyu@xxxxxxxxx > > > Subject: [PATCH 11/13] DSPBRIDGE: Set VDD1 OPP1 unconditionally while > > > moving to off mode > > > > > > Signed-off-by: Ameya Palande <ameya.palande@xxxxxxxxx> > > > --- > > > 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 <x0095840@xxxxxx> -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html