From: "ext Guzman Lugo, Fernando" <x0095840@xxxxxx> Subject: RE: [PATCH 12/13] DSPBRIDGE: fix resuming problem with dsp hibernation Date: Thu, 16 Jul 2009 01:10:58 +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 12/13] DSPBRIDGE: fix resuming problem with dsp > > hibernation > > > > From: Hiroshi DOYU <Hiroshi.DOYU@xxxxxxxxx> > > > > 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? We haven't found the exact steps to reproduce this, but logically this is necessary since it has to set *min* OPP2(constraints) in spite of whatever the current OPP value is. > > > > Signed-off-by: Hiroshi DOYU <Hiroshi.DOYU@xxxxxxxxx> > > --- > > 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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html