[PATCH 0/2] ARM: OMAP2+: PM: code consolidation for 3.4
From: Luciano Coelho <hidden>
Date: 2012-03-08 18:47:13
Also in:
linux-omap
On Thu, 2012-03-08 at 10:27 -0800, Kevin Hilman wrote:
Hi Luca,
Hey Kevin, Thanks for your reply! :)
"Coelho, Luciano" [off-list ref] writes: [...]quoted
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.