[PATCH 0/2] ARM: OMAP2+: PM: code consolidation for 3.4
Luciano Coelho
coelho at ti.com
Thu Mar 8 13:47:13 EST 2012
On Thu, 2012-03-08 at 10:27 -0800, Kevin Hilman wrote:
> Hi Luca,
Hey Kevin,
Thanks for your reply! :)
> "Coelho, Luciano" <coelho at ti.com> writes:
>
> [...]
>
> > I can't get ttyO2 wakeup to work on my Blaze with 3.3-rc5. It works
> > fine with 3.2.
>
> I assume you mean wakeup from system-wide suspend (echo mem > /sys/power/state)?
Yes, that's what I meant.
> Are you enabling UART wakeups?
>
> They are disabled by default, so you need to:
>
> echo enabled > /sys/devices/platform/omap/omap_uart.2/tty/ttyO2/power/wakeup
No, I was actually not enabling the UART wakeups. But I tried it now
but it still doesn't work. :(
> It may work in v3.2 due to the fact that the UART runtime PM had the
> unintended side-effect of essentially disabling MPU and CORE PM. With
> that bug fixed and MPU & CORE actually hitting low power states, you'll
> need to ensure UART wakeups are enabled.
>
> If you're already enabling wakeups and this still isn't working, try
> adding 'no_console_suspend' to the kernel cmdline, try a suspend/resume
> and post the console output.
I have no_console_suspend in bootargs. Without it, it didn't work with
3.2 either.
This is what I get when I suspend with "echo mem > /sys/power/state":
[ 128.534271] PM: Syncing filesystems ... done.
[ 129.948364] PM: Preparing system for mem sleep
[ 129.957061] Freezing user space processes ...
[ 129.961761] BUG: sleeping function called from invalid context at include/linux/freezer.h:46
[ 129.969177] in_atomic(): 0, irqs_disabled(): 128, pid: 770, name: udevd
[ 129.977813] INFO: lockdep is turned off.
[ 129.977813] irq event stamp: 0
[ 129.985168] hardirqs last enabled at (0): [< (null)>] (null)
[ 129.991485] hardirqs last disabled at (0): [<c004233c>] copy_process+0x3ec/0x1050
[ 129.996520] softirqs last enabled at (0): [<c004233c>] copy_process+0x3ec/0x1050
[ 130.005218] softirqs last disabled at (0): [< (null)>] (null)
[ 130.011291] [<c001e204>] (unwind_backtrace+0x0/0x148) from [<c0502fdc>] (dump_stack+0x20/0x24)
[ 130.018829] [<c0502fdc>] (dump_stack+0x20/0x24) from [<c00779d0>] (__might_sleep+0x130/0x134)
[ 130.030670] [<c00779d0>] (__might_sleep+0x130/0x134) from [<c0018998>] (do_signal+0x54/0x600)
[ 130.031738] [<c0018998>] (do_signal+0x54/0x600) from [<c0018fa4>] (do_notify_resume+0x60/0x6c)
[ 130.049804] [<c0018fa4>] (do_notify_resume+0x60/0x6c) from [<c00154e4>] (work_pending+0x24/0x28)
[ 130.067138] (elapsed 0.10 seconds) done.
[ 130.070648] Freezing remaining freezable tasks ... (elapsed 0.02 seconds) done.
[ 130.101165] PM: Entering mem sleep
[ 130.120056] PM: suspend of devices complete after 9.646 msecs
[ 130.127716] PM: late suspend of devices complete after 7.662 msecs
[ 130.134246] Disabling non-boot CPUs ...
[ 130.139953] CPU1: shutdown
The "sleeping function" BUG is that known bug I already complained about
some time ago. I get it all the time and, in general, it doesn't really
hurt (I guess I'm lucky most of the times not to hit a race-condition).
--
Cheers,
Luca.
More information about the linux-arm-kernel
mailing list