Adrian, > -----Original Message----- > From: Adrian Hunter [mailto:adrian.hunter@xxxxxxxxx] > Sent: Tuesday, July 20, 2010 2:44 PM > To: Ghorai, Sukumar > Cc: linux-mmc@xxxxxxxxxxxxxxx; linux-omap@xxxxxxxxxxxxxxx; Shilimkar, > Santosh; Chikkature Rajashekar, Madhusudhan; Andrew Morton > Subject: Re: [PATCH] omap: hsmmc funtionality breaks when CONFIG_PM not > define > > Ghorai, Sukumar wrote: > > > >> -----Original Message----- > >> From: Adrian Hunter [mailto:adrian.hunter@xxxxxxxxx] > >> Sent: Tuesday, July 20, 2010 2:10 PM > >> To: Ghorai, Sukumar > >> Cc: linux-mmc@xxxxxxxxxxxxxxx; linux-omap@xxxxxxxxxxxxxxx; Shilimkar, > >> Santosh; Chikkature Rajashekar, Madhusudhan; Andrew Morton > >> Subject: Re: [PATCH] omap: hsmmc funtionality breaks when CONFIG_PM not > >> define > >> > >> Ghorai, Sukumar wrote: > >>> Adrian, > >>> > >>>> -----Original Message----- > >>>> From: Adrian Hunter [mailto:adrian.hunter@xxxxxxxxx] > >>>> Sent: Tuesday, July 20, 2010 1:40 PM > >>>> To: Ghorai, Sukumar > >>>> Cc: linux-mmc@xxxxxxxxxxxxxxx; linux-omap@xxxxxxxxxxxxxxx; Shilimkar, > >>>> Santosh; Chikkature Rajashekar, Madhusudhan; Andrew Morton > >>>> Subject: Re: [PATCH] omap: hsmmc funtionality breaks when CONFIG_PM > not > >>>> define > >>>> > >>>> Ghorai, Sukumar wrote: > >>>>>> -----Original Message----- > >>>>>> From: Adrian Hunter [mailto:adrian.hunter@xxxxxxxxx] > >>>>>> Sent: Tuesday, July 20, 2010 12:39 PM > >>>>>> To: Ghorai, Sukumar > >>>>>> Cc: linux-mmc@xxxxxxxxxxxxxxx; linux-omap@xxxxxxxxxxxxxxx; > 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. > >>>> > >>>> How is that a problem? It would be useful to know what you need? > >>> [Ghorai] do men when CONFIG_PM is not enabled still we should do power > >> saving in mmc? > >> > >> Why not? > >> > >> Because issue is iclk/fclk is quite depended on PRCM framework when we > are > >> using omap_hsmmc_ps_ops operation table. > >> > >> iclk is left alone. > >> > >> fclk is manipulated with or without power_saving. > >> > >> I still do not understand your problem sorry :-( > > [Ghorai] thanks and need input again, > > we have two tables - > > 1. static const struct mmc_host_ops omap_hsmmc_ops = { > > } > > --> This is without CONFIG_PM, assumed. > > No it is independent of CONFIG_PM > > With CONFIG_PM > - the driver will restore registers if the host controller > has been powered off / on by PRCM > - suspend / resume can be used > > > > > 2. static const struct mmc_host_ops omap_hsmmc_ps_ops = { > > } > > -> this with CONFIG_PM, assumed. > > No it is independent of CONFIG_PM > > Without CONFIG_PM > - card will be put to sleep after 1 second > - card will be powered off after another 8 seconds > > > > > a. And you feel we should remove #1 > > Nothing should need to be removed. > > > b. use omap_hsmmc_ps_ops default. > > With power_saving it is yes. [Ghorai] Is it that power_saving (true or false) is independent of CONFIG_PM? > > > c. And it should work in all case? > > It should work in all cases. > > > > >>>>> So if CONFIG_PM is not enable, then it should do simple clock > >>>> disable/enable, and not via the power state machine. > >>>> > >>>> If that is what you want, simply change your board file: > >>>> > >>>> #if CONFIG_PM > >>>> .power_saving = true, > >>>> #else > >>>> .power_saving = false, > >>>> #end > >>> [Ghorai] the fix I send is to guard in MMC/SD host driver to avoid > >> mistake in board file(s). And this file is used for multiple omap3, > omap4 > >> boards. > >>>>>>> Signed-off-by: Sukumar Ghorai <s-ghorai@xxxxxx> > >>>>>>> Signed-off-by: Santosh Shilimkar <santosh.shilimkar@xxxxxx> > >>>>>>> CC: Madhusudhan Chikkature <madhu.cr@xxxxxx> > >>>>>>> CC: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> > >>>>>>> --- > >>>>>>> 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@xxxxxxxxxxxxxxx > >>>>>>> More majordomo info at http://vger.kernel.org/majordomo-info.html > >>>>>>> > >>>>> Regards, > >>>>> Ghorai > >>>>> -- > >>>>> To unsubscribe from this list: send the line "unsubscribe linux-mmc" > >> in > >>>>> the body of a message to majordomo@xxxxxxxxxxxxxxx > >>>>> More majordomo info at http://vger.kernel.org/majordomo-info.html > >>>>> > >>> > > > > -- > > To unsubscribe from this list: send the line "unsubscribe linux-mmc" in > > the body of a message to majordomo@xxxxxxxxxxxxxxx > > More majordomo info at http://vger.kernel.org/majordomo-info.html > > -- 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