Re: PM/RTC 3.5-rc5: System suspends fails when not built with RTC?

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

 



"Joe Woodward" <jw@xxxxxxxxxxxxxx> writes:

> -----Original Message-----
> From: Kevin Hilman <khilman@xxxxxx>
> To: "Joe Woodward" <jw@xxxxxxxxxxxxxx>
> Cc: "linux-omap\@vger.kernel.org" <linux-omap@xxxxxxxxxxxxxxx>
> Date: Tue, 10 Jul 2012 16:58:18 -0700
> Subject: Re: PM/RTC 3.5-rc5: System suspends fails when not built with RTC?
>
>> "Joe Woodward" <jw@xxxxxxxxxxxxxx> writes:
>> 
>> > I've got 3.5-rc5 with the following patches applied to get system
>> suspend working on OMAP3:
>> >   - fix the DSS: OMAPDSS: Use PM notifiers for system suspend
>> >   - fix the 32KHz clock: ARM: OMAP2+: hwmod code/clockdomain data:
>> fix 32K sync timer
>> >
>> > This has been built with the omap2plus_defconfig.
>> >
>> > However, If I disable the RTC (i.e.
>> CONFIG_RTC_CLASS/CONFIG_RTC_DRV_TWL4030) and rebuild then when
>> suspending the device never wakes up.
>> >
>> > That is, I can't get any wakeups to happen (either through the
>> console, or GPIO buttons) hence I'm assuming the kernel has crashed...
>> >
>> > Any ideas?
>> >
>> > As far as I know there is no dependency on the RTC in 3.4, and with
>> the RTC compiled in I never see a problem on 3.5-rc5.
>> 
>> There is definitely a bug in the EHCI driver in v3.5 that cause a hang
>> in suspend, but the RTC connection is very strange.
>> 
>> I was not able to reproduce this.
>> 
>> Can you try the same with my current 'pm' branch[1].  I've got a
>> handful
>> of additional fixes there for various other problems where both MMC and
>> EHCI are preventing sucessful suspend with the default
>> omap2plus_defconfig.  (note the EHCI fix is simply diabling it in the
>> defconfig.)
>> 
>> Kevin
>> 
>
> Hi Kevin,
>
> Thanks for looking in to this.

And thanks for your detailed bug reports.

> I've taken a copy of the PM branch with tag "pm-20120710" and built with omap2plus_defconfig.
>
> But I get several warnings during boot, and suspend works - but almost nothing enters the target states:
>
> Warnings include:
> [    0.000000] clockdomain: mpu_clkdm: powerdomain ¬õ`À8ºsÀ does not exist

This one is suspicious.

> [    2.311004] omap_hsmmc omap_hsmmc.0: Failed to get debounce clk
> [    2.317382] omap_hsmmc omap_hsmmc.0: unable to obtain RX DMA engine channel 62
> [    2.325256] omap_hsmmc omap_hsmmc.1: Failed to get debounce clk
> [    2.331512] omap_hsmmc omap_hsmmc.1: unable to obtain RX DMA engine channel 48

These are normal because DMA engine is not compiled in with
omap2plus_defconfig.  MMC wont' work unless you build in DMA engine, but
that doesn't matter for trying to figure out your problem.

> [    2.447784] platform omap_hsmmc.0: omap_device_late_idle: enabled but no driver.  Idling
> [    2.456359] platform omap_hsmmc.1: omap_device_late_idle: enabled but no driver.  Idling

This is expected because of the failed MMC probe.

> # echo mem > /sys/power/state
> [  107.398956] PM: Syncing filesystems ... done.
> [  107.413757] Freezing user space processes ... (elapsed 0.02 seconds) done.
> [  107.443481] Freezing remaining freezable tasks ... (elapsed 0.02 seconds) done.
> [  107.474700] Suspending console(s) (use no_console_suspend to debug)
> [  107.493560] PM: suspend of devices complete after 9.246 msecs
> [  107.496063] PM: late suspend of devices complete after 2.502 msecs
> [  107.500427] PM: noirq suspend of devices complete after 4.302 msecs
> [  107.500488] Disabling non-boot CPUs ...
> [  108.446838] Powerdomain (iva2_pwrdm) didn't enter target state 1
> [  108.446868] Powerdomain (dss_pwrdm) didn't enter target state 1
> [  108.446868] Powerdomain (per_pwrdm) didn't enter target state 1
> [  108.446868] Powerdomain (core_pwrdm) didn't enter target state 1
> [  108.446899] Powerdomain (usbhost_pwrdm) didn't enter target state 1
> [  108.446899] Could not enter target state in pm_suspend
> [  108.448852] PM: noirq resume of devices complete after 1.769 msecs
> [  108.451873] PM: early resume of devices complete after 1.556 msecs
> [  108.459716] PM: resume of devices complete after 7.690 msecs
> [  108.541748] Restarting tasks ... done.
> sh: write error: Operation not permitted
>
> This is all on an Overo AirSTORM (3703-based) plugged in to a GUMSTIX PALO43 dev board.

Hmm, interesting, I don't see this on my 3730-based Over FireSTORM.

But, after "converting" mine into an AirStorm[1], I see the same errors
as you're seeing.  We're obviously doing something wrong when IVA and/or
SGX are not present, so I will look into it.

Thanks for testing,

Kevin


[1]
diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
index 40373db..c8e5a6c 100644
--- a/arch/arm/mach-omap2/id.c
+++ b/arch/arm/mach-omap2/id.c
@@ -237,8 +237,8 @@ void __init omap3xxx_check_features(void)
 	status = omap_ctrl_readl(OMAP3_CONTROL_OMAP_STATUS);
 
 	OMAP3_CHECK_FEATURE(status, L2CACHE);
-	OMAP3_CHECK_FEATURE(status, IVA);
-	OMAP3_CHECK_FEATURE(status, SGX);
+	/* OMAP3_CHECK_FEATURE(status, IVA); */
+	/* OMAP3_CHECK_FEATURE(status, SGX); */
 	OMAP3_CHECK_FEATURE(status, NEON);
 	OMAP3_CHECK_FEATURE(status, ISP);
 	if (cpu_is_omap3630())
--
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