Re: [PATCH 11/13] DSPBRIDGE: Set VDD1 OPP1 unconditionally while moving to off mode

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.

	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.
> 
--
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

[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux