> -----Original Message-----
> From: Adrian Hunter [mailto:[email protected]]
> Sent: Tuesday, July 20, 2010 2:10 PM
> To: Ghorai, Sukumar
> Cc: [email protected]; [email protected]; 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:[email protected]]
> >> Sent: Tuesday, July 20, 2010 1:40 PM
> >> To: Ghorai, Sukumar
> >> Cc: [email protected]; [email protected]; 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:[email protected]]
> >>>> Sent: Tuesday, July 20, 2010 12:39 PM
> >>>> To: Ghorai, Sukumar
> >>>> Cc: [email protected]; [email protected]; 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.
2. static const struct mmc_host_ops omap_hsmmc_ps_ops = {
}
-> this with CONFIG_PM, assumed.
a. And you feel we should remove #1
b. use omap_hsmmc_ps_ops default.
c. And it should work in all case?
>
> >
> >>> 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 <[email protected]>
> >>>>> Signed-off-by: Santosh Shilimkar <[email protected]>
> >>>>> CC: Madhusudhan Chikkature <[email protected]>
> >>>>> CC: Andrew Morton <[email protected]>
> >>>>> ---
> >>>>> 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 [email protected]
> >>>>> 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 [email protected]
> >>> 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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html