RE: [PATCH] omap: hsmmc funtionality breaks when CONFIG_PM not define

Ghorai, Sukumar
2010-07-20T07:51:16Z

> -----Original Message-----
> From: Adrian Hunter [mailto:adrian.hunter@nokia.com]
> Sent: Tuesday, July 20, 2010 12:39 PM
> To: Ghorai, Sukumar
> Cc: linux-mmc@vger.kernel.org; linux-omap@vger.kernel.org; Shilimkar,
> Santosh; Chikkature Rajashekar, Madhusudhan; Andrew Morton
> Subject: Re: [PATCH] omap: hsmmc funtionality breaks when CONFIG_PM not
> define
>
> Sukumar Ghorai wrote:
> > Issue if power_saving option passed from board file and CONFIG_PM
> not define.
> > This is because hosts refer to wrong operation table and that try to
> power save.
>
> power_saving is not related to power management. It should work with or
> without
> CONFIG_PM. What problem are you seeing?
[Ghorai] when CONFIG_PM is not defined but power_saving flag is TRUE, then host operation table point to table which handles in state machine as: ENABLE -> CARDSLEEP -> REGSLEEP -> DISABLED for power/clock cut. And do the reverse for the enable clock/power.
And power saving is not required and wont work when CONFIG_PM is not enabled.

So if CONFIG_PM is not enable, then it should do simple clock disable/enable, and not via the power state machine.

>
> >
> > Signed-off-by: Sukumar Ghorai <s-ghorai@ti.com>
> > Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
> > CC: Madhusudhan Chikkature <madhu.cr@ti.com>
> > CC: Andrew Morton <akpm@linux-foundation.org>
> > ---
> > Tested on omap3, omap4430 ES2.0
> >
> > drivers/mmc/host/omap_hsmmc.c | 2 ++
> > 1 files changed, 2 insertions(+), 0 deletions(-)
> >
> > diff --git a/drivers/mmc/host/omap_hsmmc.c
> b/drivers/mmc/host/omap_hsmmc.c
> > index b032828..f84eed0 100644
> > --- a/drivers/mmc/host/omap_hsmmc.c
> > +++ b/drivers/mmc/host/omap_hsmmc.c
> > @@ -2015,9 +2015,11 @@ static int __init omap_hsmmc_probe(struct
> platform_device *pdev)
> > platform_set_drvdata(pdev, host);
> > INIT_WORK(&host->mmc_carddetect_work, omap_hsmmc_detect);
> >
> > +#ifdef CONFIG_PM
> > if (mmc_slot(host).power_saving)
> > mmc->ops = &omap_hsmmc_ps_ops;
> > else
> > +#endif
> > mmc->ops = &omap_hsmmc_ops;
> >
> > /*
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
> >

Regards,
Ghorai