Skip to contentSkip to conversation

suspend broken on 3.5-rc1?

DISCUSSION Rajendra Nayak 5 participants 12 messages Jun 8, 2012 – Jul 12, 2012

lore
Share & tools
lore
#0 lore raw

Hi,

I don;t seem to be able to get suspend to work on 3.5-rc1 on
my 4430 panda. I am not sure if its UART wakeups that are
an issue or suspend itself is broken.
Is there anything more than setting '/sys/devices/platform/omap_uart.2/tty/ttyO2/power/wakeup' to 'enabled' that I need to do to get UART to be wakeup capable?

3.4 major works just fine for me.

regards,
Rajendra

#1 lore raw
Quoted 10 lines · Rajendra Nayak

Hi,

I don;t seem to be able to get suspend to work on 3.5-rc1 on my 4430 panda. I am not sure if its UART wakeups that are an issue or suspend itself is broken.
Is there anything more than setting '/sys/devices/platform/omap_uart.2/tty/ttyO2/power/wakeup' to 'enabled' that I need to do to get UART to be wakeup capable?

3.4 major works just fine for me.

Can you try with the fixes branch that Olof just merged? If it's the UART wake-up events, there's a patch that should help.

Tony

#2 lore raw
Quoted 10 lines · Tony Lindgren
Quoted 9 lines · Rajendra Nayak

Hi,

I don;t seem to be able to get suspend to work on 3.5-rc1 on my 4430 panda. I am not sure if its UART wakeups that are an issue or suspend itself is broken.
Is there anything more than setting '/sys/devices/platform/omap_uart.2/tty/ttyO2/power/wakeup' to 'enabled' that I need to do to get UART to be wakeup capable?

Quoted 3 lines
Quoted 1 line

3.4 major works just fine for me.

Can you try with the fixes branch that Olof just merged?

I tried merging the fixes branch on 3.5-rc1 as well as latest mainline and both didn't work.

Quoted 4 lines

If it's the UART wake-up events, there's a patch that should help.

Tony

#3 lore raw
Quoted 11 lines · Rajendra Nayak
Quoted 10 lines · Tony Lindgren
Quoted 9 lines · Rajendra Nayak

Hi,

I don;t seem to be able to get suspend to work on 3.5-rc1 on my 4430 panda. I am not sure if its UART wakeups that are an issue or suspend itself is broken.
Is there anything more than setting '/sys/devices/platform/omap_uart.2/tty/ttyO2/power/wakeup' to 'enabled' that I need to do to get UART to be wakeup capable?

Quoted 12 lines
Quoted 3 lines
Quoted 1 line

3.4 major works just fine for me.

Can you try with the fixes branch that Olof just merged?

I tried merging the fixes branch on 3.5-rc1 as well as latest mainline and both didn't work.

Quoted 4 lines

If it's the UART wake-up events, there's a patch that should help.

Tony

The patch referenced here helps:

http://www.mail-archive.com/[email protected]/msg69596.html

DSS crashes during wakeup from suspend.

-Tero

#4 lore raw
Quoted 22 lines · Tero Kristo
Quoted 21 lines · Rajendra Nayak
Quoted 10 lines · Tony Lindgren
Quoted 9 lines · Rajendra Nayak

Hi,

I don;t seem to be able to get suspend to work on 3.5-rc1 on my 4430 panda. I am not sure if its UART wakeups that are an issue or suspend itself is broken.
Is there anything more than setting '/sys/devices/platform/omap_uart.2/tty/ttyO2/power/wakeup' to 'enabled' that I need to do to get UART to be wakeup capable?

Quoted 3 lines
Quoted 1 line

3.4 major works just fine for me.

Can you try with the fixes branch that Olof just merged?

I tried merging the fixes branch on 3.5-rc1 as well as latest mainline and both didn't work.

Quoted 3 lines

If it's the UART wake-up events, there's a patch that should help.

Quoted 8 lines
Quoted 2 lines
Quoted 1 line

Tony

The patch referenced here helps:

http://www.mail-archive.com/[email protected]/msg69596.html

DSS crashes during wakeup from suspend.

great, thats what I found too with no_console_suspend, didn't know a fix already exists. Thanks.

[   10.086334] Device name omapdss_dss
[   10.089996] Device name omapdss_dispc
[   10.093872] Device name omapdss_rfbi
[   10.097625] Device name omapdss_venc
[   10.101379] Device name omapdss_dsi.0
[   10.105224] Device name omapdss_dsi.1
[   10.109069] Device name omapdss_hdmi
[   10.112854] Device name omapdss_dpi
[   10.116516] Unable to handle kernel NULL pointer dereference at virtual address 00000018
[   10.125030] pgd = ee6ac000
[   10.127868] [00000018] *pgd=ae6c3831, *pte=00000000, *ppte=00000000
[   10.134490] Internal error: Oops: 17 [#1] SMP ARM
[   10.139434] Modules linked in:
[   10.142608] CPU: 0    Not tainted  (3.5.0-rc1-00143-ge8126d1-dirty #5)
[   10.149475] PC is at _od_resume_noirq+0x28/0x74
[   10.154235] LR is at _od_resume_noirq+0x28/0x74
[   10.158966] pc : [<c003be7c>]    lr : [<c003be7c>]    psr: 20000113
[   10.158966] sp : ee737e78  ip : c073fd80  fp : 00000006
[   10.171020] r10: ef1848b8  r9 : c0703010  r8 : c003be54
[   10.176483] r7 : 00000000  r6 : ef184800  r5 : 00000000  r4 : ef184808
[   10.183349] r3 : ef12d4c0  r2 : 00000000  r1 : ef12d950  r0 : 00000017
[   10.190185] Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM Segment user
[   10.197662] Control: 10c53c7d  Table: ae6ac04a  DAC: 00000015
[   10.203674] Process sh (pid: 627, stack limit = 0xee7362f8)
[   10.209533] Stack: (0xee737e78 to 0xee738000)
[   10.214111] 7e60: 
   ef184808 ef184808
[   10.222686] 7e80: 00000000 c02be138 c0702fb4 c0702fd4 00000000 00000000 ef184808 c0c69364
[   10.231262] 7ea0: 00000010 c0702fa8 c0703008 c02beccc 52d639d6 00000002 52d639d6 00000002
[   10.239837] 7ec0: c06eb3f8 00000010 00000000 00000003 c0719f1c 00000000 00000000 c06a8244
[   10.248413] 7ee0: 00000000 c02bf568 c072f9e8 c0080240 00000003 c059933c 00000000 00000004
[   10.256988] 7f00: 00000000 c04af304 ef041440 c0080584 ef38f000 00000003 c059933c c007f788
[   10.265563] 7f20: ef2dc8c0 ef2dc8d8 ee737f80 ef097e00 c0264728 c0264740 00000004 c016aa44
[   10.274139] 7f40: ef0d4cc0 00000004 b6f05000 ee737f80 00000000 00000000 00000000 c01096f4
[   10.282714] 7f60: c0014400 ef12d4c0 ef0d4cc0 b6f05000 00000004 00000004 00000000 c0109848
[   10.291290] 7f80: 00000000 00000000 b6e325e8 00000000 00000004 b6f05000 b6e325e8 c00144a8
[   10.299865] 7fa0: ee736000 c00142e0 00000004 b6f05000 00000001 b6f05000 00000004 00000000
[   10.308441] 7fc0: 00000004 b6f05000 b6e325e8 00000004 00000004 00000964 0000000a 00000000
[   10.317016] 7fe0: b6f05000 beecb5d0 b6d70c70 b6dc0abc 60000110 00000001 af6fe821 af6fec21
[   10.325622] [<c003be7c>] (_od_resume_noirq+0x28/0x74) from [<c02be138>] (dpm_run_callback+0x2c/0x74)
[   10.335205] [<c02be138>] (dpm_run_callback+0x2c/0x74) from [<c02beccc>] (dpm_resume_noirq+0xdc/0x2f4)
[   10.344879] [<c02beccc>] (dpm_resume_noirq+0xdc/0x2f4) from [<c02bf568>] (dpm_resume_start+0xc/0x18)
[   10.354461] [<c02bf568>] (dpm_resume_start+0xc/0x18) from [<c0080240>] (suspend_devices_and_enter+0x114/0x2d8)
[   10.364959] [<c0080240>] (suspend_devices_and_enter+0x114/0x2d8) from [<c0080584>] (pm_suspend+0x180/0x1fc)
[   10.375183] [<c0080584>] (pm_suspend+0x180/0x1fc) from [<c007f788>] (state_store+0x90/0x124)
[   10.384063] [<c007f788>] (state_store+0x90/0x124) from [<c0264740>] (kobj_attr_store+0x18/0x1c)
[   10.393188] [<c0264740>] (kobj_attr_store+0x18/0x1c) from [<c016aa44>] (sysfs_write_file+0xfc/0x180)
[   10.402770] [<c016aa44>] (sysfs_write_file+0xfc/0x180) from [<c01096f4>] (vfs_write+0xb0/0x134)
[   10.411895] [<c01096f4>] (vfs_write+0xb0/0x134) from [<c0109848>] (sys_write+0x40/0x70)
[   10.420318] [<c0109848>] (sys_write+0x40/0x70) from [<c00142e0>] (ret_fast_syscall+0x0/0x3c)
[   10.429168] Code: e1a04000 05901008 e59f0048 eb112432 (e5d53018)
[   10.435607] ---[ end trace 0cf97fb0a3cafe35 ]---
Quoted 4 lines

-Tero

#5 lore raw
Quoted 26 lines · Rajendra Nayak
Quoted 25 lines · Tero Kristo
Quoted 23 lines · Rajendra Nayak
Quoted 10 lines · Tony Lindgren
Quoted 9 lines · Rajendra Nayak

Hi,

I don;t seem to be able to get suspend to work on 3.5-rc1 on my 4430 panda. I am not sure if its UART wakeups that are an issue or suspend itself is broken.
Is there anything more than setting '/sys/devices/platform/omap_uart.2/tty/ttyO2/power/wakeup' to 'enabled' that I need to do to get UART to be wakeup capable?

Quoted 3 lines
Quoted 1 line

3.4 major works just fine for me.

Can you try with the fixes branch that Olof just merged?

I tried merging the fixes branch on 3.5-rc1 as well as latest mainline and both didn't work.

Quoted 4 lines

If it's the UART wake-up events, there's a patch that should help.

Tony

Quoted 8 lines
Quoted 5 lines

The patch referenced here helps:

http://www.mail-archive.com/[email protected]/msg69596.html

DSS crashes during wakeup from suspend.

great, thats what I found too with no_console_suspend, didn't know a fix already exists. Thanks.

The patch above seems to fix suspend on 4430, but on my 4460 ES1.1 panda, I still see its broken..

# echo enabled > /sys/devices/platform/omap_uart.2/tty/ttyO2/power/wakeup
# echo mem > /sys/power/state
[    6.549285] PM: Syncing filesystems ... done.
[    6.581695] Freezing user space processes ... (elapsed 0.02 seconds) done.
[    6.612823] Freezing remaining freezable tasks ... (elapsed 0.02 seconds) done.
[    6.674102] PM: suspend of devices complete after 51.391 msecs
[    6.682006] PM: late suspend of devices complete after 1.739 msecs
[    6.691650] PM: noirq suspend of devices complete after 3.143 msecs
[    6.698272] Disabling non-boot CPUs ...
[    6.705993] CPU1: shutdown
[    7.298797] Successfully put all powerdomains to target state
[    7.304992] Enabling non-boot CPUs ... *<---- hang*

..anyone knows of any more fixes going around?

regards,
Rajendra

#6 lore raw
Quoted 64 lines · Rajendra Nayak
Quoted 36 lines · Rajendra Nayak
Quoted 34 lines · Tero Kristo
Quoted 14 lines · Rajendra Nayak
Quoted 12 lines · Tony Lindgren
Quoted 10 lines · Rajendra Nayak

Hi,

I don;t seem to be able to get suspend to work on 3.5-rc1 on my 4430 panda. I am not sure if its UART wakeups that are an issue or suspend itself is broken.
Is there anything more than setting '/sys/devices/platform/omap_uart.2/tty/ttyO2/power/wakeup' to 'enabled' that I need to do to get UART to be wakeup capable?

Quoted 15 lines
Quoted 4 lines
Quoted 1 line

3.4 major works just fine for me.

Can you try with the fixes branch that Olof just merged?

I tried merging the fixes branch on 3.5-rc1 as well as latest mainline and both didn't work.

Quoted 4 lines

If it's the UART wake-up events, there's a patch that should help.

Tony

The patch referenced here helps:

Quoted 7 lines
Quoted 3 lines

http://www.mail-archive.com/[email protected]/msg69596.html

DSS crashes during wakeup from suspend.

great, thats what I found too with no_console_suspend, didn't know a fix already exists. Thanks.

The patch above seems to fix suspend on 4430, but on my 4460 ES1.1 panda, I still see its broken..

# echo enabled > /sys/devices/platform/omap_uart.2/tty/ttyO2/power/wakeup
# echo mem > /sys/power/state
[    6.549285] PM: Syncing filesystems ... done.
[    6.581695] Freezing user space processes ... (elapsed 0.02 seconds)
done.
[    6.612823] Freezing remaining freezable tasks ... (elapsed 0.02 seconds)
done.
[    6.674102] PM: suspend of devices complete after 51.391 msecs
[    6.682006] PM: late suspend of devices complete after 1.739 msecs
[    6.691650] PM: noirq suspend of devices complete after 3.143 msecs
[    6.698272] Disabling non-boot CPUs ...
[    6.705993] CPU1: shutdown
[    7.298797] Successfully put all powerdomains to target state
[    7.304992] Enabling non-boot CPUs ... *<---- hang*
Quoted 1 line

..anyone knows of any more fixes going around?

I'm seeing the same thing, it gets stuck trying to enable CPU1, tried this with pm-20120710 from linux-omap-pm and current LO master (based on 3.5-rc6), also using a Panda 4460.

Would appreciate patches if any.

Regards,

Omar

#7 lore raw
Quoted 1 line · Omar Ramirez Luna

On 12 June 2012 07:01, Rajendra Nayak <[email protected]> wrote:

[...]

Quoted 5 lines
Quoted 1 line

..anyone knows of any more fixes going around?

I'm seeing the same thing, it gets stuck trying to enable CPU1, tried this with pm-20120710 from linux-omap-pm and current LO master (based on 3.5-rc6), also using a Panda 4460.

When reporing problems like this, it is greatly helpful to report your defconfig (specifically, any changes from omap2plus_defconfig.)

Specifically, do you have CONFIG_MFD_OMAP_USB_HOST in your defconfig? There are known bugs that cause the USB host driver to hang suspend in mainline. Because of this, and the fact that the USB developers did not fix try to this for v3.5, current l-o master (and my pm branch) now have this disabled by default in omap2plus_defconfig.

Quoted 1 line

Would appreciate patches if any.

If it's the USB host problem you need fixed, Russ Dill has posted a couple patches and Keshava has posted a bigger revert, but there hasn't been any conclusion on the fix yet.

Can you try to reproduce with omap2plus_defconfig (+ DMA engine if you need MMC rootfs.)

With omap2plus_defconfig + initramfs and omap2plus_defconfig + DMAengine for MMC rootfs, this is working fine for me on my 4430 Panda using RTC wakeups:

# rtcwake -m mem -s 1
wakeup from "mem" at Sun Jan  2 23:02:35 2000
[   81.642883] PM: Syncing filesystems ... done.
[   81.651214] Freezing user space processes ... (elapsed 0.02 seconds) done.
[   81.683746] Freezing remaining freezable tasks ... (elapsed 0.02 seconds) done.
[   81.714965] Suspending console(s) (use no_console_suspend to debug)
[   81.731903] PM: suspend of devices complete after 8.179 msecs
[   81.733520] PM: late suspend of devices complete after 1.556 msecs
[   81.736175] PM: noirq suspend of devices complete after 2.655 msecs
[   81.736206] Disabling non-boot CPUs ...
[   81.738739] CPU1: shutdown
[   83.134338] Successfully put all powerdomains to target state
[   83.134552] Enabling non-boot CPUs ...
[   83.136352] CPU1: Booted secondary processor
[   83.136932] CPU1 is up
[   83.138336] PM: noirq resume of devices complete after 1.373 msecs
[   83.140014] PM: early resume of devices complete after 1.007 msecs
[   83.544158] PM: resume of devices complete after 404.144 msecs
[   83.608337] Restarting tasks ... done.

Kevin

#8 lore raw

Hi Kevin,

Quoted 6 lines · Kevin Hilman
Quoted 1 line · Omar Ramirez Luna

On 12 June 2012 07:01, Rajendra Nayak <[email protected]> wrote:

[...]

Quoted 8 lines
Quoted 5 lines
Quoted 1 line

..anyone knows of any more fixes going around?

I'm seeing the same thing, it gets stuck trying to enable CPU1, tried this with pm-20120710 from linux-omap-pm and current LO master (based on 3.5-rc6), also using a Panda 4460.

When reporing problems like this, it is greatly helpful to report your defconfig (specifically, any changes from omap2plus_defconfig.)

Sorry, I missed this since it was omap2plus_defconfig + CONFIG_DMADEVICES and CONFIG_DMA_OMAP.

Quoted 1 line

Specifically, do you have CONFIG_MFD_OMAP_USB_HOST in your defconfig?

No.

Quoted 11 lines

There are known bugs that cause the USB host driver to hang suspend in mainline. Because of this, and the fact that the USB developers did not fix try to this for v3.5, current l-o master (and my pm branch) now have this disabled by default in omap2plus_defconfig.

Quoted 1 line

Would appreciate patches if any.

If it's the USB host problem you need fixed, Russ Dill has posted a couple patches and Keshava has posted a bigger revert, but there hasn't been any conclusion on the fix yet.

Quoted 6 lines

Can you try to reproduce with omap2plus_defconfig (+ DMA engine if you need MMC rootfs.)

With omap2plus_defconfig + initramfs and omap2plus_defconfig + DMAengine for MMC rootfs, this is working fine for me on my 4430 Panda using RTC wakeups:

I suspect this might be specific to 4460 as Rajendra reported it was working for him on 4430 but not on 4460, I haven't tried 4430 but let me see if I can find one.

Thanks,

Omar

#9 lore raw
Quoted 3 lines · Omar Ramirez Luna

I suspect this might be specific to 4460 as Rajendra reported it was working for him on 4430 but not on 4460, I haven't tried 4430 but let me see if I can find one.

Yes, this is an issue specific to 4460. The patch 'ARM: OMAP4460:
Workaround for ROM bug because of CA9 r2pX GIC control register change' from Tero's Core retention series [1] fixes it. Unfortunately the patch does not apply on it own and has dependencies with other patches in the series.

[1] http://comments.gmane.org/gmane.linux.ports.arm.omap/78399

#10 lore raw
Quoted 5 lines · Rajendra Nayak
Quoted 3 lines · Omar Ramirez Luna

I suspect this might be specific to 4460 as Rajendra reported it was working for him on 4430 but not on 4460, I haven't tried 4430 but let me see if I can find one.

Quoted 7 lines

Yes, this is an issue specific to 4460. The patch 'ARM: OMAP4460:
Workaround for ROM bug because of CA9 r2pX GIC control register change' from Tero's Core retention series [1] fixes it. Unfortunately the patch does not apply on it own and has dependencies with other patches in the series.

[1] http://comments.gmane.org/gmane.linux.ports.arm.omap/78399

The dependencies are by design, I am trying to force maintainers to get that stuff in. ;)

-Tero

#11 lore raw
In reply to Rajendra Nayak
Quoted 7 lines · Rajendra Nayak
Quoted 4 lines · Omar Ramirez Luna

I suspect this might be specific to 4460 as Rajendra reported it was working for him on 4430 but not on 4460, I haven't tried 4430 but let me see if I can find one.

Quoted 7 lines

Yes, this is an issue specific to 4460. The patch 'ARM: OMAP4460:
Workaround for ROM bug because of CA9 r2pX GIC control register change' from Tero's Core retention series [1] fixes it. Unfortunately the patch does not apply on it own and has dependencies with other patches in the series.

[1] http://comments.gmane.org/gmane.linux.ports.arm.omap/78399

Thanks, it worked! I took the first two patches of the series and at least I'm able to come back from suspend on Panda 4460.

However, the original series no longer applies on 3.5-rc6 and I couldn't find a rebased version on Tero's tree, so I just rebased the first two to 3.5-rc6 in case anybody stomps on this thread and for test purposes only:

git://github.com/omarrmz/upstream-wip.git
branch: LO-k3.5-rc6-secondary-CPU-resume-hangs

I hope at least 1 and 2 from the original series make it for 3.6.

Regards,

Omar