diff mbox

[5/8] OMAP4: PM: TEMP: Prevent l3init from idling/force sleep

Message ID 1307616853-28395-6-git-send-email-rnayak@ti.com (mailing list archive)
State Superseded
Delegated to: Kevin Hilman
Headers show

Commit Message

Rajendra Nayak June 9, 2011, 10:54 a.m. UTC
Since MMC driver is yet to be adapted to
runtime PM and still uses direct clock
calls to enable/disable module, its needed
that the clockdomain (for MMC) is always kept force
enabled since the next few patches move
the clockdomain handling from clock framework
to hwmod framework and break MMC.

This will certainlly gate any CORE low power
transitions.

Signed-off-by: Rajendra Nayak <rnayak@ti.com>
---
 arch/arm/mach-omap2/clockdomains44xx_data.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

Comments

Paul Walmsley June 23, 2011, 3:04 p.m. UTC | #1
Hi Rajendra,

On Thu, 9 Jun 2011, Rajendra Nayak wrote:

> Since MMC driver is yet to be adapted to
> runtime PM and still uses direct clock
> calls to enable/disable module, its needed
> that the clockdomain (for MMC) is always kept force
> enabled since the next few patches move
> the clockdomain handling from clock framework
> to hwmod framework and break MMC.
> 
> This will certainlly gate any CORE low power
> transitions.
> 
> Signed-off-by: Rajendra Nayak <rnayak@ti.com>
> ---
>  arch/arm/mach-omap2/clockdomains44xx_data.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/arch/arm/mach-omap2/clockdomains44xx_data.c b/arch/arm/mach-omap2/clockdomains44xx_data.c
> index a607ec1..ff38764 100644
> --- a/arch/arm/mach-omap2/clockdomains44xx_data.c
> +++ b/arch/arm/mach-omap2/clockdomains44xx_data.c
> @@ -493,7 +493,7 @@ static struct clockdomain l3_init_44xx_clkdm = {
>  	.dep_bit	  = OMAP4430_L3INIT_STATDEP_SHIFT,
>  	.wkdep_srcs	  = l3_init_wkup_sleep_deps,
>  	.sleepdep_srcs	  = l3_init_wkup_sleep_deps,
> -	.flags		  = CLKDM_CAN_HWSUP_SWSUP,
> +	.flags		  = CLKDM_CAN_FORCE_WAKEUP,
>  	.omap_chip	  = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
>  };

Since this is basically a hack to work around limitations of the current 
MMC driver, if we accept something like this, I think it should come with 
a big warning message and comment.  Something like this in 
omap44xx_clockdomains_init():

	/*
	 * XXX The OMAP L3 interconnect hardware is able to enter
	 * hardware-supervised idle.  But because the OMAP HSMMC
	 * driver still hasn't been converted to use runtime PM, if
	 * the L3 is allowed to enter hwsup idle, the kernel will
	 * crash.  Once the MMC driver is fixed (which patches have
	 * been posted to do, with subject line "OMAP: HSMMC: cleanup
	 * and runtime pm") the change to the l3_init_44xx_clkdm
	 * flags should be dropped.  It limits the low-power state that
	 * the chip can enter.
	 */
	pr_warn("WARNING: OMAP4 low power states artificially limited, due 
to unconverted HSMMC driver\n");


- Paul
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Russell King - ARM Linux June 23, 2011, 3:22 p.m. UTC | #2
On Thu, Jun 23, 2011 at 09:04:20AM -0600, Paul Walmsley wrote:
> Since this is basically a hack to work around limitations of the current 
> MMC driver, if we accept something like this, I think it should come with 
> a big warning message and comment.  Something like this in 
> omap44xx_clockdomains_init():
> 
> 	/*
> 	 * XXX The OMAP L3 interconnect hardware is able to enter
> 	 * hardware-supervised idle.  But because the OMAP HSMMC
> 	 * driver still hasn't been converted to use runtime PM, if
> 	 * the L3 is allowed to enter hwsup idle, the kernel will
> 	 * crash.  Once the MMC driver is fixed (which patches have
> 	 * been posted to do, with subject line "OMAP: HSMMC: cleanup
> 	 * and runtime pm") the change to the l3_init_44xx_clkdm
> 	 * flags should be dropped.  It limits the low-power state that
> 	 * the chip can enter.
> 	 */
> 	pr_warn("WARNING: OMAP4 low power states artificially limited, due 
> to unconverted HSMMC driver\n");

Do you really want to continue pissing Linus off with churn like this
rather than pressing to get problems fixed _properly_ (eg, getting the
HSMMC driver fixed) ?
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Paul Walmsley July 6, 2011, 5:30 a.m. UTC | #3
Hi

On Thu, 23 Jun 2011, Russell King - ARM Linux wrote:

> Do you really want to continue pissing Linus off with churn like this
> rather than pressing to get problems fixed _properly_ (eg, getting the
> HSMMC driver fixed) ?

Thanks for your comments.  We won't queue this patch.


- Paul
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/arch/arm/mach-omap2/clockdomains44xx_data.c b/arch/arm/mach-omap2/clockdomains44xx_data.c
index a607ec1..ff38764 100644
--- a/arch/arm/mach-omap2/clockdomains44xx_data.c
+++ b/arch/arm/mach-omap2/clockdomains44xx_data.c
@@ -493,7 +493,7 @@  static struct clockdomain l3_init_44xx_clkdm = {
 	.dep_bit	  = OMAP4430_L3INIT_STATDEP_SHIFT,
 	.wkdep_srcs	  = l3_init_wkup_sleep_deps,
 	.sleepdep_srcs	  = l3_init_wkup_sleep_deps,
-	.flags		  = CLKDM_CAN_HWSUP_SWSUP,
+	.flags		  = CLKDM_CAN_FORCE_WAKEUP,
 	.omap_chip	  = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
 };