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

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

 



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? Because issue is iclk/fclk is quite depended on PRCM framework when we are using omap_hsmmc_ps_ops operation table.

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