* SYS_OFF_MODE signaling and CORE domain Transition to OFF Mode
@ 2010-09-22 22:18 Laine Walker-Avina
2010-09-23 18:05 ` Kevin Hilman
0 siblings, 1 reply; 3+ messages in thread
From: Laine Walker-Avina @ 2010-09-22 22:18 UTC (permalink / raw)
To: linux-omap
Hi all,
I'm having some troubles putting my OMAP3503(the one without the DSP
or SGX modules) board to sleep. I'm using the current master on the
l-o git repository.
This is the output from dmesg and the count file after suspending
twice. The first time it wakes immediately after going down, and the
second time stays asleep but says that the core domain didn't enter
OFF mode. In either case, the SYS_OFF_MODE signal never asserts. I
added some debug code into map_sram_idle() to capture CM_CORE_IDLEST1
and 3 right before it jumps to the final sleep code in SRAM.
root@spark:~$ echo mem > /sys/power/state
[ 530.299621] PM: Syncing filesystems ... done.
[ 530.307556] PM: Preparing system for mem sleep
[ 530.313995] PM: Adding info for No Bus:vcs63
[ 530.317504] PM: Adding info for No Bus:vcsa63
[ 530.353698] mmc0: card bed5 removed
[ 530.357238] PM: Removing info for mmc:mmc0:bed5
[ 530.369903] PM: Removing info for No Bus:mmcblk0p2
[ 530.401275] PM: Removing info for No Bus:mmcblk0p1
[ 530.409484] PM: Removing info for No Bus:179:0
[ 530.445098] PM: Removing info for No Bus:mmcblk0
[ 530.488220] ------------[ cut here ]------------
[ 530.493255] WARNING: at drivers/regulator/core.c:1357
_regulator_disable+0x54/0x164()
[ 530.501312] unbalanced disables for vMMC
[ 530.505279] Modules linked in:
[ 530.508605] [<c0237960>] (unwind_backtrace+0x0/0xf0) from
[<c025ae10>] (warn_slowpath_common+0x4c/0x64)
[ 530.518310] [<c025ae10>] (warn_slowpath_common+0x4c/0x64) from
[<c025aea8>] (warn_slowpath_fmt+0x2c/0x3c)
[ 530.528167] [<c025aea8>] (warn_slowpath_fmt+0x2c/0x3c) from
[<c03b9b40>] (_regulator_disable+0x54/0x164)
[ 530.537902] [<c03b9b40>] (_regulator_disable+0x54/0x164) from
[<c03b9d3c>] (regulator_disable+0x20/0x34)
[ 530.547668] [<c03b9d3c>] (regulator_disable+0x20/0x34) from
[<c042d158>] (omap_hsmmc_1_set_power+0x64/0xa0)
[ 530.557678] [<c042d158>] (omap_hsmmc_1_set_power+0x64/0xa0) from
[<c042bd00>] (omap_hsmmc_set_ios+0x70/0x410)
[ 530.567840] [<c042bd00>] (omap_hsmmc_set_ios+0x70/0x410) from
[<c0422144>] (mmc_power_off+0x50/0x54)
[ 530.577270] [<c0422144>] (mmc_power_off+0x50/0x54) from
[<c0422b88>] (mmc_detach_bus+0x74/0xbc)
[ 530.586212] [<c0422b88>] (mmc_detach_bus+0x74/0xbc) from
[<c04231d4>] (mmc_pm_notify+0x90/0xd8)
[ 530.595184] [<c04231d4>] (mmc_pm_notify+0x90/0xd8) from
[<c0277954>] (notifier_call_chain+0x2c/0x70)
[ 530.604614] [<c0277954>] (notifier_call_chain+0x2c/0x70) from
[<c0277db0>] (__blocking_notifier_call_chain+0x48/0x5c)
[ 530.615509] [<c0277db0>] (__blocking_notifier_call_chain+0x48/0x5c)
from [<c0277dd8>] (blocking_notifier_call_chain+0x14/0x18)
[ 530.627197] [<c0277dd8>] (blocking_notifier_call_chain+0x14/0x18)
from [<c028ec1c>] (pm_notifier_call_chain+0x14/0x2c)
[ 530.638183] [<c028ec1c>] (pm_notifier_call_chain+0x14/0x2c) from
[<c028f448>] (enter_state+0x7c/0x120)
[ 530.647766] [<c028f448>] (enter_state+0x7c/0x120) from [<c028eb80>]
(state_store+0xa0/0xbc)
[ 530.656402] [<c028eb80>] (state_store+0xa0/0xbc) from [<c0393e08>]
(kobj_attr_store+0x18/0x1c)
[ 530.665283] [<c0393e08>] (kobj_attr_store+0x18/0x1c) from
[<c0309244>] (sysfs_write_file+0x10c/0x140)
[ 530.674774] [<c0309244>] (sysfs_write_file+0x10c/0x140) from
[<c02c09e4>] (vfs_write+0xac/0x134)
[ 530.683837] [<c02c09e4>] (vfs_write+0xac/0x134) from [<c02c0b18>]
(sys_write+0x3c/0x68)
[ 530.692077] [<c02c0b18>] (sys_write+0x3c/0x68) from [<c0231f40>]
(ret_fast_syscall+0x0/0x3c)
[ 530.700744] ---[ end trace 7a172f77f33931a3 ]---
[ 530.814514] Freezing user space processes ... (elapsed 0.01 seconds) done.
[ 530.839202] Freezing remaining freezable tasks ... (elapsed 0.02
seconds) done.
[ 530.870666] PM: Entering mem sleep
[ 530.874908] Suspending console(s) (use no_console_suspend to debug)
[ 530.881652] platform reg-dummy: preparing suspend
[ 530.881866] omapdss omapdss: preparing suspend
[ 530.881927] reg-fixed-voltage reg-fixed-voltage.1: preparing suspend
[ 530.881988] nop_usb_xceiv nop_usb_xceiv: preparing suspend
[ 530.882049] serial8250 serial8250.0: preparing suspend
[ 530.882110] serial8250 serial8250.1: preparing suspend
[ 530.882141] serial8250 serial8250.2: preparing suspend
[ 530.882202] musb_hdrc musb_hdrc: preparing suspend
[ 530.882263] mmci-omap-hs mmci-omap-hs.0: preparing suspend
[ 530.882324] mmci-omap-hs mmci-omap-hs.1: preparing suspend
[ 530.882354] platform arm-pmu.0: preparing suspend
[ 530.882415] omapfb omapfb: preparing suspend
[ 530.884063] platform mpu.0: preparing suspend
[ 530.884124] platform iva.0: preparing suspend
[ 530.884185] platform l3_main.0: preparing suspend
[ 530.884277] serial8250 serial8250: preparing suspend
[ 530.885833] mmcblk mmc1:0001: legacy suspend
[ 530.887176] serial8250 serial8250: suspend
[ 530.887298] platform l3_main.0: suspend
[ 530.887390] platform iva.0: suspend
[ 530.887451] platform mpu.0: suspend
[ 530.889007] omapfb omapfb: suspend
[ 530.889068] platform arm-pmu.0: suspend
[ 530.889129] mmci-omap-hs mmci-omap-hs.1: suspend
[ 530.890258] ------------[ cut here ]------------
[ 530.890350] WARNING: at drivers/regulator/core.c:1357
_regulator_disable+0x54/0x164()
[ 530.890350] unbalanced disables for dummy
[ 530.890380] Modules linked in:
[ 530.890472] [<c0237960>] (unwind_backtrace+0x0/0xf0) from
[<c025ae10>] (warn_slowpath_common+0x4c/0x64)
[ 530.890502] [<c025ae10>] (warn_slowpath_common+0x4c/0x64) from
[<c025aea8>] (warn_slowpath_fmt+0x2c/0x3c)
[ 530.890563] [<c025aea8>] (warn_slowpath_fmt+0x2c/0x3c) from
[<c03b9b40>] (_regulator_disable+0x54/0x164)
[ 530.890625] [<c03b9b40>] (_regulator_disable+0x54/0x164) from
[<c03b9d3c>] (regulator_disable+0x20/0x34)
[ 530.890655] [<c03b9d3c>] (regulator_disable+0x20/0x34) from
[<c042d0b8>] (omap_hsmmc_23_set_power+0xb4/0xf0)
[ 530.890686] [<c042d0b8>] (omap_hsmmc_23_set_power+0xb4/0xf0) from
[<c042bd00>] (omap_hsmmc_set_ios+0x70/0x410)
[ 530.890930] [<c042bd00>] (omap_hsmmc_set_ios+0x70/0x410) from
[<c0422144>] (mmc_power_off+0x50/0x54)
[ 530.890991] [<c0422144>] (mmc_power_off+0x50/0x54) from
[<c0422ad0>] (mmc_suspend_host+0x128/0x134)
[ 530.891052] [<c0422ad0>] (mmc_suspend_host+0x128/0x134) from
[<c042b69c>] (omap_hsmmc_suspend+0x60/0x108)
[ 530.891113] [<c042b69c>] (omap_hsmmc_suspend+0x60/0x108) from
[<c03dd21c>] (platform_pm_suspend+0x2c/0x54)
[ 530.891143] [<c03dd21c>] (platform_pm_suspend+0x2c/0x54) from
[<c03df918>] (pm_op+0x4c/0xb4)
[ 530.891204] [<c03df918>] (pm_op+0x4c/0xb4) from [<c03e0490>]
(__device_suspend+0x140/0x1c0)
[ 530.891235] [<c03e0490>] (__device_suspend+0x140/0x1c0) from
[<c03e08c4>] (dpm_suspend_start+0x368/0x49c)
[ 530.891296] [<c03e08c4>] (dpm_suspend_start+0x368/0x49c) from
[<c028f214>] (suspend_devices_and_enter+0x48/0x200)
[ 530.891357] [<c028f214>] (suspend_devices_and_enter+0x48/0x200)
from [<c028f488>] (enter_state+0xbc/0x120)
[ 530.891387] [<c028f488>] (enter_state+0xbc/0x120) from [<c028eb80>]
(state_store+0xa0/0xbc)
[ 530.891448] [<c028eb80>] (state_store+0xa0/0xbc) from [<c0393e08>]
(kobj_attr_store+0x18/0x1c)
[ 530.891479] [<c0393e08>] (kobj_attr_store+0x18/0x1c) from
[<c0309244>] (sysfs_write_file+0x10c/0x140)
[ 530.891540] [<c0309244>] (sysfs_write_file+0x10c/0x140) from
[<c02c09e4>] (vfs_write+0xac/0x134)
[ 530.891571] [<c02c09e4>] (vfs_write+0xac/0x134) from [<c02c0b18>]
(sys_write+0x3c/0x68)
[ 530.891632] [<c02c0b18>] (sys_write+0x3c/0x68) from [<c0231f40>]
(ret_fast_syscall+0x0/0x3c)
[ 530.891662] ---[ end trace 7a172f77f33931a4 ]---
[ 530.891815] mmci-omap-hs mmci-omap-hs.0: suspend
[ 530.892517] musb_hdrc musb_hdrc: suspend
[ 530.892852] serial8250 serial8250.2: suspend
[ 530.893707] serial8250 serial8250.1: suspend
[ 530.893829] serial8250 serial8250.0: suspend
[ 530.893920] nop_usb_xceiv nop_usb_xceiv: suspend
[ 530.893981] reg-fixed-voltage reg-fixed-voltage.1: suspend
[ 530.894042] omapdss omapdss: suspend
[ 530.907653] ------------[ cut here ]------------
[ 530.907745] WARNING: at drivers/regulator/core.c:1357
_regulator_disable+0x54/0x164()
[ 530.907745] unbalanced disables for dummy
[ 530.907775] Modules linked in:
[ 530.907836] [<c0237960>] (unwind_backtrace+0x0/0xf0) from
[<c025ae10>] (warn_slowpath_common+0x4c/0x64)
[ 530.907897] [<c025ae10>] (warn_slowpath_common+0x4c/0x64) from
[<c025aea8>] (warn_slowpath_fmt+0x2c/0x3c)
[ 530.907958] [<c025aea8>] (warn_slowpath_fmt+0x2c/0x3c) from
[<c03b9b40>] (_regulator_disable+0x54/0x164)
[ 530.907989] [<c03b9b40>] (_regulator_disable+0x54/0x164) from
[<c03b9d3c>] (regulator_disable+0x20/0x34)
[ 530.908050] [<c03b9d3c>] (regulator_disable+0x20/0x34) from
[<c03b2060>] (omapdss_dpi_display_disable+0x2c/0x3c)
[ 530.908111] [<c03b2060>] (omapdss_dpi_display_disable+0x2c/0x3c)
from [<c03b769c>] (generic_panel_suspend+0xc/0x1c)
[ 530.908142] [<c03b769c>] (generic_panel_suspend+0xc/0x1c) from
[<c03af0c0>] (dss_suspend_device+0x44/0x54)
[ 530.908203] [<c03af0c0>] (dss_suspend_device+0x44/0x54) from
[<c03dbaa8>] (bus_for_each_dev+0x48/0x84)
[ 530.908233] [<c03dbaa8>] (bus_for_each_dev+0x48/0x84) from
[<c03af21c>] (dss_suspend_all_devices+0x18/0x30)
[ 530.908294] [<c03af21c>] (dss_suspend_all_devices+0x18/0x30) from
[<c03dd238>] (platform_pm_suspend+0x48/0x54)
[ 530.908325] [<c03dd238>] (platform_pm_suspend+0x48/0x54) from
[<c03df918>] (pm_op+0x4c/0xb4)
[ 530.908386] [<c03df918>] (pm_op+0x4c/0xb4) from [<c03e0490>]
(__device_suspend+0x140/0x1c0)
[ 530.908416] [<c03e0490>] (__device_suspend+0x140/0x1c0) from
[<c03e08c4>] (dpm_suspend_start+0x368/0x49c)
[ 530.908477] [<c03e08c4>] (dpm_suspend_start+0x368/0x49c) from
[<c028f214>] (suspend_devices_and_enter+0x48/0x200)
[ 530.908538] [<c028f214>] (suspend_devices_and_enter+0x48/0x200)
from [<c028f488>] (enter_state+0xbc/0x120)
[ 530.908569] [<c028f488>] (enter_state+0xbc/0x120) from [<c028eb80>]
(state_store+0xa0/0xbc)
[ 530.908599] [<c028eb80>] (state_store+0xa0/0xbc) from [<c0393e08>]
(kobj_attr_store+0x18/0x1c)
[ 530.908660] [<c0393e08>] (kobj_attr_store+0x18/0x1c) from
[<c0309244>] (sysfs_write_file+0x10c/0x140)
[ 530.908721] [<c0309244>] (sysfs_write_file+0x10c/0x140) from
[<c02c09e4>] (vfs_write+0xac/0x134)
[ 530.908752] [<c02c09e4>] (vfs_write+0xac/0x134) from [<c02c0b18>]
(sys_write+0x3c/0x68)
[ 530.908782] [<c02c0b18>] (sys_write+0x3c/0x68) from [<c0231f40>]
(ret_fast_syscall+0x0/0x3c)
[ 530.908813] ---[ end trace 7a172f77f33931a5 ]---
[ 530.909088] platform reg-dummy: suspend
[ 530.909393] PM: suspend of devices complete after 23.890 msecs
[ 530.910949] serial8250 serial8250: LATE suspend
[ 530.910980] platform l3_main.0: LATE suspend
[ 530.911010] platform iva.0: LATE suspend
[ 530.911041] platform mpu.0: LATE suspend
[ 530.911132] omapfb omapfb: LATE suspend
[ 530.911163] platform arm-pmu.0: LATE suspend
[ 530.911163] mmci-omap-hs mmci-omap-hs.1: LATE suspend
[ 530.911193] mmci-omap-hs mmci-omap-hs.0: LATE suspend
[ 530.911224] musb_hdrc musb_hdrc: LATE suspend
[ 530.911224] serial8250 serial8250.2: LATE suspend
[ 530.911254] serial8250 serial8250.1: LATE suspend
[ 530.911285] serial8250 serial8250.0: LATE suspend
[ 530.911285] nop_usb_xceiv nop_usb_xceiv: LATE suspend
[ 530.911315] reg-fixed-voltage reg-fixed-voltage.1: LATE suspend
[ 530.911346] omapdss omapdss: LATE suspend
[ 530.911376] platform reg-dummy: LATE suspend
[ 530.911407] PM: late suspend of devices complete after 1.983 msecs
[ 530.918731] sdrc_pwr before:00000009 now:00000129
[ 530.918792] core idlest1:ffffffbd idlest3:0000000d
[ 530.918823] Successfully put all powerdomains to target state
[ 530.919464] platform reg-dummy: EARLY resume
[ 530.919555] omapdss omapdss: EARLY resume
[ 530.919616] reg-fixed-voltage reg-fixed-voltage.1: EARLY resume
[ 530.919647] nop_usb_xceiv nop_usb_xceiv: EARLY resume
[ 530.919677] serial8250 serial8250.0: EARLY resume
[ 530.919708] serial8250 serial8250.1: EARLY resume
[ 530.919738] serial8250 serial8250.2: EARLY resume
[ 530.919769] musb_hdrc musb_hdrc: EARLY resume
[ 530.920104] mmci-omap-hs mmci-omap-hs.0: EARLY resume
[ 530.920166] mmci-omap-hs mmci-omap-hs.1: EARLY resume
[ 530.920196] platform arm-pmu.0: EARLY resume
[ 530.920227] omapfb omapfb: EARLY resume
[ 530.920440] platform mpu.0: EARLY resume
[ 530.920471] platform iva.0: EARLY resume
[ 530.920501] platform l3_main.0: EARLY resume
[ 530.920562] serial8250 serial8250: EARLY resume
[ 530.920745] PM: early resume of devices complete after 1.342 msecs
[ 530.920898] irqstatus 00000200
[ 530.921783] platform reg-dummy: resume
[ 530.922119] omapdss omapdss: resume
[ 530.924804] reg-fixed-voltage reg-fixed-voltage.1: resume
[ 530.924926] nop_usb_xceiv nop_usb_xceiv: resume
[ 530.925048] serial8250 serial8250.0: resume
[ 530.925201] serial8250 serial8250.1: resume
[ 530.925354] serial8250 serial8250.2: resume
[ 530.929779] musb_hdrc musb_hdrc: resume
[ 530.929901] mmci-omap-hs mmci-omap-hs.0: resume
[ 530.930389] mmci-omap-hs mmci-omap-hs.1: resume
[ 530.954437] sdrc_pwr before:00000129 now:00000169
[ 530.954467] core idlest1:fcffff9d idlest3:0000000d
[ 530.954772] irqstatus 00000001
[ 530.977600] sdrc_pwr before:00000169 now:00000169
[ 530.977630] core idlest1:fcffff9d idlest3:0000000d
[ 530.977935] irqstatus 00000001
[ 530.985565] sdrc_pwr before:00000169 now:00000129
[ 530.985595] core idlest1:fcffff9d idlest3:0000000d
[ 531.008850] sdrc_pwr before:00000129 now:00000169
[ 531.008880] core idlest1:fcffff9d idlest3:0000000d
[ 531.009185] irqstatus 00000001
[ 531.013275] sdrc_pwr before:00000169 now:00000129
[ 531.013336] core idlest1:fcffff9d idlest3:0000000d
[ 531.032196] sdrc_pwr before:00000129 now:00000169
[ 531.032257] core idlest1:fcffff9d idlest3:0000000d
[ 531.032562] irqstatus 00000001
[ 531.036834] sdrc_pwr before:00000169 now:00000129
[ 531.036895] core idlest1:fdffff9d idlest3:0000000d
[ 531.040924] sdrc_pwr before:00000129 now:00000129
[ 531.040954] core idlest1:fdffff9d idlest3:0000000d
[ 531.045043] sdrc_pwr before:00000129 now:00000129
[ 531.045074] core idlest1:fdffff9d idlest3:0000000d
[ 531.049133] sdrc_pwr before:00000129 now:00000129
[ 531.049163] core idlest1:fdffff9d idlest3:0000000d
[ 531.053253] sdrc_pwr before:00000129 now:00000129
[ 531.053283] core idlest1:fdffff9d idlest3:0000000d
[ 531.057312] sdrc_pwr before:00000129 now:00000129
[ 531.057342] core idlest1:fdffff9d idlest3:0000000d
[ 531.071166] sdrc_pwr before:00000129 now:00000169
[ 531.071228] core idlest1:fdffff9d idlest3:0000000d
[ 531.071533] irqstatus 00000001
[ 531.075683] sdrc_pwr before:00000169 now:00000129
[ 531.075744] core idlest1:fdffff9d idlest3:0000000d
[ 531.076324] platform arm-pmu.0: resume
[ 531.076477] omapfb omapfb: resume
[ 531.078826] platform mpu.0: resume
[ 531.078948] platform iva.0: resume
[ 531.079040] platform l3_main.0: resume
[ 531.079193] serial8250 serial8250: resume
[ 531.080657] mmcblk mmc1:0001: legacy resume
[ 531.081298] PM: resume of devices complete after 160.002 msecs
[ 531.082885] serial8250 serial8250: completing resume
[ 531.083007] platform l3_main.0: completing resume
[ 531.083099] platform iva.0: completing resume
[ 531.083160] platform mpu.0: completing resume
[ 531.085083] omapfb omapfb: completing resume
[ 531.085144] platform arm-pmu.0: completing resume
[ 531.085235] mmci-omap-hs mmci-omap-hs.1: completing resume
[ 531.085296] mmci-omap-hs mmci-omap-hs.0: completing resume
[ 531.085388] musb_hdrc musb_hdrc: completing resume
[ 531.085784] serial8250 serial8250.2: completing resume
[ 531.085906] serial8250 serial8250.1: completing resume
[ 531.085998] serial8250 serial8250.0: completing resume
[ 531.086059] nop_usb_xceiv nop_usb_xceiv: completing resume
[ 531.086151] reg-fixed-voltage reg-fixed-voltage.1: completing resume
[ 531.086212] omapdss omapdss: completing resume
[ 531.086486] platform reg-dummy: completing resume
[ 532.160278] PM: Finishing wakeup.
[ 532.163970] Restarting tasks ... done.
root@spark:~$ [ 532.402130] mmc0: host does not support reading
read-only switch. assuming write-enable.
[ 532.410980] mmc0: new SD card at address bed5
[ 532.416748] PM: Adding info for mmc:mmc0:bed5
[ 532.430267] mmcblk0: mmc0:bed5 SU02G 1.84 GiB
[ 532.436187] PM: Adding info for No Bus:mmcblk0
[ 532.453125] mmcblk0: p1 p2
[ 532.457611] PM: Adding info for No Bus:mmcblk0p1
[ 532.464080] PM: Adding info for No Bus:mmcblk0p2
[ 532.503845] PM: Adding info for No Bus:179:0
root@spark:~$ devmem 0x48307260
0x0000000C
root@spark:~$ echo mem > /sys/power/state
[ 558.495269] PM: Syncing filesystems ... done.
[ 558.500610] PM: Preparing system for mem sleep
[ 558.506378] mmc0: card bed5 removed
[ 558.510253] PM: Removing info for mmc:mmc0:bed5
[ 558.516632] PM: Removing info for No Bus:mmcblk0p2
[ 558.526306] PM: Removing info for No Bus:mmcblk0p1
[ 558.547790] PM: Removing info for No Bus:179:0
[ 558.579101] PM: Removing info for No Bus:mmcblk0
[ 558.620605] ------------[ cut here ]------------
[ 558.625854] WARNING: at drivers/regulator/core.c:1357
_regulator_disable+0x54/0x164()
[ 558.634063] unbalanced disables for vMMC
[ 558.638031] Modules linked in:
[ 558.641540] [<c0237960>] (unwind_backtrace+0x0/0xf0) from
[<c025ae10>] (warn_slowpath_common+0x4c/0x64)
[ 558.651397] [<c025ae10>] (warn_slowpath_common+0x4c/0x64) from
[<c025aea8>] (warn_slowpath_fmt+0x2c/0x3c)
[ 558.661407] [<c025aea8>] (warn_slowpath_fmt+0x2c/0x3c) from
[<c03b9b40>] (_regulator_disable+0x54/0x164)
[ 558.671386] [<c03b9b40>] (_regulator_disable+0x54/0x164) from
[<c03b9d3c>] (regulator_disable+0x20/0x34)
[ 558.681304] [<c03b9d3c>] (regulator_disable+0x20/0x34) from
[<c042d158>] (omap_hsmmc_1_set_power+0x64/0xa0)
[ 558.691467] [<c042d158>] (omap_hsmmc_1_set_power+0x64/0xa0) from
[<c042bd00>] (omap_hsmmc_set_ios+0x70/0x410)
[ 558.701782] [<c042bd00>] (omap_hsmmc_set_ios+0x70/0x410) from
[<c0422144>] (mmc_power_off+0x50/0x54)
[ 558.711364] [<c0422144>] (mmc_power_off+0x50/0x54) from
[<c0422b88>] (mmc_detach_bus+0x74/0xbc)
[ 558.720550] [<c0422b88>] (mmc_detach_bus+0x74/0xbc) from
[<c04231d4>] (mmc_pm_notify+0x90/0xd8)
[ 558.729705] [<c04231d4>] (mmc_pm_notify+0x90/0xd8) from
[<c0277954>] (notifier_call_chain+0x2c/0x70)
[ 558.739318] [<c0277954>] (notifier_call_chain+0x2c/0x70) from
[<c0277db0>] (__blocking_notifier_call_chain+0x48/0x5c)
[ 558.750396] [<c0277db0>] (__blocking_notifier_call_chain+0x48/0x5c)
from [<c0277dd8>] (blocking_notifier_call_chain+0x14/0x18)
[ 558.762237] [<c0277dd8>] (blocking_notifier_call_chain+0x14/0x18)
from [<c028ec1c>] (pm_notifier_call_chain+0x14/0x2c)
[ 558.773406] [<c028ec1c>] (pm_notifier_call_chain+0x14/0x2c) from
[<c028f448>] (enter_state+0x7c/0x120)
[ 558.783142] [<c028f448>] (enter_state+0x7c/0x120) from [<c028eb80>]
(state_store+0xa0/0xbc)
[ 558.791931] [<c028eb80>] (state_store+0xa0/0xbc) from [<c0393e08>]
(kobj_attr_store+0x18/0x1c)
[ 558.800994] [<c0393e08>] (kobj_attr_store+0x18/0x1c) from
[<c0309244>] (sysfs_write_file+0x10c/0x140)
[ 558.810638] [<c0309244>] (sysfs_write_file+0x10c/0x140) from
[<c02c09e4>] (vfs_write+0xac/0x134)
[ 558.819854] [<c02c09e4>] (vfs_write+0xac/0x134) from [<c02c0b18>]
(sys_write+0x3c/0x68)
[ 558.828277] [<c02c0b18>] (sys_write+0x3c/0x68) from [<c0231f40>]
(ret_fast_syscall+0x0/0x3c)
[ 558.837097] ---[ end trace 7a172f77f33931a6 ]---
[ 558.945281] Freezing user space processes ... (elapsed 0.01 seconds) done.
[ 558.971588] Freezing remaining freezable tasks ... (elapsed 0.02
seconds) done.
[ 559.002960] PM: Entering mem sleep
[ 559.006591] Suspending console(s) (use no_console_suspend to debug)
[ 559.013366] platform reg-dummy: preparing suspend
[ 559.013641] omapdss omapdss: preparing suspend
[ 559.013732] reg-fixed-voltage reg-fixed-voltage.1: preparing suspend
[ 559.013824] nop_usb_xceiv nop_usb_xceiv: preparing suspend
[ 559.013916] serial8250 serial8250.0: preparing suspend
[ 559.013977] serial8250 serial8250.1: preparing suspend
[ 559.014068] serial8250 serial8250.2: preparing suspend
[ 559.014129] musb_hdrc musb_hdrc: preparing suspend
[ 559.014221] mmci-omap-hs mmci-omap-hs.0: preparing suspend
[ 559.014282] mmci-omap-hs mmci-omap-hs.1: preparing suspend
[ 559.014373] platform arm-pmu.0: preparing suspend
[ 559.014465] omapfb omapfb: preparing suspend
[ 559.016632] platform mpu.0: preparing suspend
[ 559.016723] platform iva.0: preparing suspend
[ 559.016815] platform l3_main.0: preparing suspend
[ 559.016937] serial8250 serial8250: preparing suspend
[ 559.018707] mmcblk mmc1:0001: legacy suspend
[ 559.020141] serial8250 serial8250: suspend
[ 559.020324] platform l3_main.0: suspend
[ 559.020416] platform iva.0: suspend
[ 559.020538] platform mpu.0: suspend
[ 559.022460] omapfb omapfb: suspend
[ 559.022552] platform arm-pmu.0: suspend
[ 559.022644] mmci-omap-hs mmci-omap-hs.1: suspend
[ 559.023406] ------------[ cut here ]------------
[ 559.023498] WARNING: at drivers/regulator/core.c:1357
_regulator_disable+0x54/0x164()
[ 559.023559] unbalanced disables for dummy
[ 559.023559] Modules linked in:
[ 559.023712] [<c0237960>] (unwind_backtrace+0x0/0xf0) from
[<c025ae10>] (warn_slowpath_common+0x4c/0x64)
[ 559.023773] [<c025ae10>] (warn_slowpath_common+0x4c/0x64) from
[<c025aea8>] (warn_slowpath_fmt+0x2c/0x3c)
[ 559.023834] [<c025aea8>] (warn_slowpath_fmt+0x2c/0x3c) from
[<c03b9b40>] (_regulator_disable+0x54/0x164)
[ 559.023895] [<c03b9b40>] (_regulator_disable+0x54/0x164) from
[<c03b9d3c>] (regulator_disable+0x20/0x34)
[ 559.023956] [<c03b9d3c>] (regulator_disable+0x20/0x34) from
[<c042d0b8>] (omap_hsmmc_23_set_power+0xb4/0xf0)
[ 559.024017] [<c042d0b8>] (omap_hsmmc_23_set_power+0xb4/0xf0) from
[<c042bd00>] (omap_hsmmc_set_ios+0x70/0x410)
[ 559.024078] [<c042bd00>] (omap_hsmmc_set_ios+0x70/0x410) from
[<c0422144>] (mmc_power_off+0x50/0x54)
[ 559.024139] [<c0422144>] (mmc_power_off+0x50/0x54) from
[<c0422ad0>] (mmc_suspend_host+0x128/0x134)
[ 559.024200] [<c0422ad0>] (mmc_suspend_host+0x128/0x134) from
[<c042b69c>] (omap_hsmmc_suspend+0x60/0x108)
[ 559.024261] [<c042b69c>] (omap_hsmmc_suspend+0x60/0x108) from
[<c03dd21c>] (platform_pm_suspend+0x2c/0x54)
[ 559.024322] [<c03dd21c>] (platform_pm_suspend+0x2c/0x54) from
[<c03df918>] (pm_op+0x4c/0xb4)
[ 559.024383] [<c03df918>] (pm_op+0x4c/0xb4) from [<c03e0490>]
(__device_suspend+0x140/0x1c0)
[ 559.024414] [<c03e0490>] (__device_suspend+0x140/0x1c0) from
[<c03e08c4>] (dpm_suspend_start+0x368/0x49c)
[ 559.024505] [<c03e08c4>] (dpm_suspend_start+0x368/0x49c) from
[<c028f214>] (suspend_devices_and_enter+0x48/0x200)
[ 559.024566] [<c028f214>] (suspend_devices_and_enter+0x48/0x200)
from [<c028f488>] (enter_state+0xbc/0x120)
[ 559.024627] [<c028f488>] (enter_state+0xbc/0x120) from [<c028eb80>]
(state_store+0xa0/0xbc)
[ 559.024688] [<c028eb80>] (state_store+0xa0/0xbc) from [<c0393e08>]
(kobj_attr_store+0x18/0x1c)
[ 559.024780] [<c0393e08>] (kobj_attr_store+0x18/0x1c) from
[<c0309244>] (sysfs_write_file+0x10c/0x140)
[ 559.024841] [<c0309244>] (sysfs_write_file+0x10c/0x140) from
[<c02c09e4>] (vfs_write+0xac/0x134)
[ 559.024902] [<c02c09e4>] (vfs_write+0xac/0x134) from [<c02c0b18>]
(sys_write+0x3c/0x68)
[ 559.024963] [<c02c0b18>] (sys_write+0x3c/0x68) from [<c0231f40>]
(ret_fast_syscall+0x0/0x3c)
[ 559.024993] ---[ end trace 7a172f77f33931a7 ]---
[ 559.025268] mmci-omap-hs mmci-omap-hs.0: suspend
[ 559.026031] musb_hdrc musb_hdrc: suspend
[ 559.026245] serial8250 serial8250.2: suspend
[ 559.026611] serial8250 serial8250.1: suspend
[ 559.026794] serial8250 serial8250.0: suspend
[ 559.026947] nop_usb_xceiv nop_usb_xceiv: suspend
[ 559.027038] reg-fixed-voltage reg-fixed-voltage.1: suspend
[ 559.027130] omapdss omapdss: suspend
[ 559.033630] ------------[ cut here ]------------
[ 559.033752] WARNING: at drivers/regulator/core.c:1357
_regulator_disable+0x54/0x164()
[ 559.033782] unbalanced disables for dummy
[ 559.033782] Modules linked in:
[ 559.033935] [<c0237960>] (unwind_backtrace+0x0/0xf0) from
[<c025ae10>] (warn_slowpath_common+0x4c/0x64)
[ 559.034027] [<c025ae10>] (warn_slowpath_common+0x4c/0x64) from
[<c025aea8>] (warn_slowpath_fmt+0x2c/0x3c)
[ 559.034088] [<c025aea8>] (warn_slowpath_fmt+0x2c/0x3c) from
[<c03b9b40>] (_regulator_disable+0x54/0x164)
[ 559.034149] [<c03b9b40>] (_regulator_disable+0x54/0x164) from
[<c03b9d3c>] (regulator_disable+0x20/0x34)
[ 559.034240] [<c03b9d3c>] (regulator_disable+0x20/0x34) from
[<c03b2060>] (omapdss_dpi_display_disable+0x2c/0x3c)
[ 559.034301] [<c03b2060>] (omapdss_dpi_display_disable+0x2c/0x3c)
from [<c03b769c>] (generic_panel_suspend+0xc/0x1c)
[ 559.034362] [<c03b769c>] (generic_panel_suspend+0xc/0x1c) from
[<c03af0c0>] (dss_suspend_device+0x44/0x54)
[ 559.034423] [<c03af0c0>] (dss_suspend_device+0x44/0x54) from
[<c03dbaa8>] (bus_for_each_dev+0x48/0x84)
[ 559.034454] [<c03dbaa8>] (bus_for_each_dev+0x48/0x84) from
[<c03af21c>] (dss_suspend_all_devices+0x18/0x30)
[ 559.034515] [<c03af21c>] (dss_suspend_all_devices+0x18/0x30) from
[<c03dd238>] (platform_pm_suspend+0x48/0x54)
[ 559.034576] [<c03dd238>] (platform_pm_suspend+0x48/0x54) from
[<c03df918>] (pm_op+0x4c/0xb4)
[ 559.034637] [<c03df918>] (pm_op+0x4c/0xb4) from [<c03e0490>]
(__device_suspend+0x140/0x1c0)
[ 559.034698] [<c03e0490>] (__device_suspend+0x140/0x1c0) from
[<c03e08c4>] (dpm_suspend_start+0x368/0x49c)
[ 559.034790] [<c03e08c4>] (dpm_suspend_start+0x368/0x49c) from
[<c028f214>] (suspend_devices_and_enter+0x48/0x200)
[ 559.034851] [<c028f214>] (suspend_devices_and_enter+0x48/0x200)
from [<c028f488>] (enter_state+0xbc/0x120)
[ 559.034912] [<c028f488>] (enter_state+0xbc/0x120) from [<c028eb80>]
(state_store+0xa0/0xbc)
[ 559.034973] [<c028eb80>] (state_store+0xa0/0xbc) from [<c0393e08>]
(kobj_attr_store+0x18/0x1c)
[ 559.035034] [<c0393e08>] (kobj_attr_store+0x18/0x1c) from
[<c0309244>] (sysfs_write_file+0x10c/0x140)
[ 559.035125] [<c0309244>] (sysfs_write_file+0x10c/0x140) from
[<c02c09e4>] (vfs_write+0xac/0x134)
[ 559.035156] [<c02c09e4>] (vfs_write+0xac/0x134) from [<c02c0b18>]
(sys_write+0x3c/0x68)
[ 559.035217] [<c02c0b18>] (sys_write+0x3c/0x68) from [<c0231f40>]
(ret_fast_syscall+0x0/0x3c)
[ 559.035278] ---[ end trace 7a172f77f33931a8 ]---
[ 559.035675] platform reg-dummy: suspend
[ 559.035919] PM: suspend of devices complete after 17.486 msecs
[ 559.037841] serial8250 serial8250: LATE suspend
[ 559.037902] platform l3_main.0: LATE suspend
[ 559.037933] platform iva.0: LATE suspend
[ 559.037963] platform mpu.0: LATE suspend
[ 559.038177] omapfb omapfb: LATE suspend
[ 559.038208] platform arm-pmu.0: LATE suspend
[ 559.038238] mmci-omap-hs mmci-omap-hs.1: LATE suspend
[ 559.038269] mmci-omap-hs mmci-omap-hs.0: LATE suspend
[ 559.038269] musb_hdrc musb_hdrc: LATE suspend
[ 559.038299] serial8250 serial8250.2: LATE suspend
[ 559.038330] serial8250 serial8250.1: LATE suspend
[ 559.038360] serial8250 serial8250.0: LATE suspend
[ 559.038391] nop_usb_xceiv nop_usb_xceiv: LATE suspend
[ 559.038421] reg-fixed-voltage reg-fixed-voltage.1: LATE suspend
[ 559.038452] omapdss omapdss: LATE suspend
[ 559.038848] platform reg-dummy: LATE suspend
[ 559.038940] PM: late suspend of devices complete after 2.960 msecs
[ 568.066253] sdrc_pwr before:00000129 now:00000169
[ 568.066284] core idlest1:ffffffbd idlest3:0000000d
[ 568.066345] Powerdomain (core_pwrdm) didn't enter target state 0
[ 568.066375] Could not enter target state in pm_suspend
[ 568.066711] platform reg-dummy: EARLY resume
[ 568.066802] omapdss omapdss: EARLY resume
[ 568.066833] reg-fixed-voltage reg-fixed-voltage.1: EARLY resume
[ 568.066864] nop_usb_xceiv nop_usb_xceiv: EARLY resume
[ 568.066894] serial8250 serial8250.0: EARLY resume
[ 568.066925] serial8250 serial8250.1: EARLY resume
[ 568.066955] serial8250 serial8250.2: EARLY resume
[ 568.066986] musb_hdrc musb_hdrc: EARLY resume
[ 568.067077] mmci-omap-hs mmci-omap-hs.0: EARLY resume
[ 568.067108] mmci-omap-hs mmci-omap-hs.1: EARLY resume
[ 568.067138] platform arm-pmu.0: EARLY resume
[ 568.067169] omapfb omapfb: EARLY resume
[ 568.067382] platform mpu.0: EARLY resume
[ 568.067413] platform iva.0: EARLY resume
[ 568.067443] platform l3_main.0: EARLY resume
[ 568.067474] serial8250 serial8250: EARLY resume
[ 568.067687] PM: early resume of devices complete after 1.007 msecs
[ 568.067810] irqstatus 00000200
[ 568.068420] platform reg-dummy: resume
[ 568.068725] omapdss omapdss: resume
[ 568.071411] reg-fixed-voltage reg-fixed-voltage.1: resume
[ 568.071533] nop_usb_xceiv nop_usb_xceiv: resume
[ 568.071624] serial8250 serial8250.0: resume
[ 568.071807] serial8250 serial8250.1: resume
[ 568.071929] serial8250 serial8250.2: resume
[ 568.074096] musb_hdrc musb_hdrc: resume
[ 568.074218] mmci-omap-hs mmci-omap-hs.0: resume
[ 568.074707] mmci-omap-hs mmci-omap-hs.1: resume
[ 568.098571] sdrc_pwr before:00000169 now:00000169
[ 568.098602] core idlest1:fcffff9d idlest3:0000000d
[ 568.098907] irqstatus 00000001
[ 568.121948] sdrc_pwr before:00000169 now:00000169
[ 568.121978] core idlest1:fcffff9d idlest3:0000000d
[ 568.122314] irqstatus 00000001
[ 568.129913] sdrc_pwr before:00000169 now:00000129
[ 568.129974] core idlest1:fcffff9d idlest3:0000000d
[ 568.153228] sdrc_pwr before:00000129 now:00000169
[ 568.153259] core idlest1:fcffff9d idlest3:0000000d
[ 568.153594] irqstatus 00000001
[ 568.157714] sdrc_pwr before:00000169 now:00000129
[ 568.157745] core idlest1:fcffff9d idlest3:0000000d
[ 568.176605] sdrc_pwr before:00000129 now:00000169
[ 568.176635] core idlest1:fcffff9d idlest3:0000000d
[ 568.176940] irqstatus 00000001
[ 568.181243] sdrc_pwr before:00000169 now:00000129
[ 568.181274] core idlest1:fdffff9d idlest3:0000000d
[ 568.185333] sdrc_pwr before:00000129 now:00000129
[ 568.185363] core idlest1:fdffff9d idlest3:0000000d
[ 568.189422] sdrc_pwr before:00000129 now:00000129
[ 568.189453] core idlest1:fdffff9d idlest3:0000000d
[ 568.193511] sdrc_pwr before:00000129 now:00000129
[ 568.193542] core idlest1:fdffff9d idlest3:0000000d
[ 568.197631] sdrc_pwr before:00000129 now:00000129
[ 568.197692] core idlest1:fdffff9d idlest3:0000000d
[ 568.201721] sdrc_pwr before:00000129 now:00000129
[ 568.201751] core idlest1:fdffff9d idlest3:0000000d
[ 568.205932] sdrc_pwr before:00000129 now:00000129
[ 568.205963] core idlest1:fdffff9d idlest3:0000000d
[ 568.206787] platform arm-pmu.0: resume
[ 568.206939] omapfb omapfb: resume
[ 568.208923] platform mpu.0: resume
[ 568.209014] platform iva.0: resume
[ 568.209106] platform l3_main.0: resume
[ 568.209259] serial8250 serial8250: resume
[ 568.210693] mmcblk mmc1:0001: legacy resume
[ 568.211395] PM: resume of devices complete after 143.188 msecs
[ 568.212982] serial8250 serial8250: completing resume
[ 568.213134] platform l3_main.0: completing resume
[ 568.213226] platform iva.0: completing resume
[ 568.213287] platform mpu.0: completing resume
[ 568.215515] omapfb omapfb: completing resume
[ 568.215637] platform arm-pmu.0: completing resume
[ 568.215698] mmci-omap-hs mmci-omap-hs.1: completing resume
[ 568.215789] mmci-omap-hs mmci-omap-hs.0: completing resume
[ 568.215881] musb_hdrc musb_hdrc: completing resume
[ 568.215942] serial8250 serial8250.2: completing resume
[ 568.216033] serial8250 serial8250.1: completing resume
[ 568.216125] serial8250 serial8250.0: completing resume
[ 568.216186] nop_usb_xceiv nop_usb_xceiv: completing resume
[ 568.216247] reg-fixed-voltage reg-fixed-voltage.1: completing resume
[ 568.216339] omapdss omapdss: completing resume
[ 568.216583] platform reg-dummy: completing resume
[ 569.282806] PM: Finishing wakeup.
[ 569.286468] Restarting tasks ... done.
root@spark:~$ [ 569.522857] mmc0: host does not support reading
read-only switch. assuming write-enable.
[ 569.531677] mmc0: new SD card at address bed5
[ 569.537506] PM: Adding info for mmc:mmc0:bed5
[ 569.551300] mmcblk0: mmc0:bed5 SU02G 1.84 GiB
[ 569.557250] PM: Adding info for No Bus:mmcblk0
[ 569.574157] mmcblk0: p1 p2
[ 569.578369] PM: Adding info for No Bus:mmcblk0p1
[ 569.584808] PM: Adding info for No Bus:mmcblk0p2
[ 569.624908] PM: Adding info for No Bus:179:0
root@spark:~$ cat /debug/pm_debug/count
usbhost_pwrdm (OFF),OFF:1,RET:1,INA:0,ON:1,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0
sgx_pwrdm (OFF),OFF:1,RET:0,INA:0,ON:0,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0
per_pwrdm (ON),OFF:11,RET:0,INA:0,ON:12,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0
dss_pwrdm (ON),OFF:2,RET:3,INA:4,ON:9,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0
cam_pwrdm (OFF),OFF:1,RET:1,INA:0,ON:1,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0
core_pwrdm (ON),OFF:1,RET:0,INA:0,ON:2,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0,RET-MEMBANK2-OFF:0
neon_pwrdm (ON),OFF:11,RET:0,INA:0,ON:12,RET-LOGIC-OFF:0
mpu_pwrdm (ON),OFF:11,RET:0,INA:0,ON:12,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0
iva2_pwrdm (OFF),OFF:1,RET:1,INA:0,ON:1,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0,RET-MEMBANK2-OFF:0,RET-MEMBANK3-OFF:0,RET-MEMBANK4-OFF:0
per_clkdm->per_pwrdm (9)
usbhost_clkdm->usbhost_pwrdm (0)
cam_clkdm->cam_pwrdm (0)
dss_clkdm->dss_pwrdm (2)
core_l4_clkdm->core_pwrdm (9)
core_l3_clkdm->core_pwrdm (5)
d2d_clkdm->core_pwrdm (0)
sgx_clkdm->sgx_pwrdm (0)
iva2_clkdm->iva2_pwrdm (0)
neon_clkdm->neon_pwrdm (0)
mpu_clkdm->mpu_pwrdm (0)
prm_clkdm->wkup_pwrdm (0)
cm_clkdm->core_pwrdm (0)
Any ideas?
--
Laine Walker-Avina
--
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
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: SYS_OFF_MODE signaling and CORE domain Transition to OFF Mode
2010-09-22 22:18 SYS_OFF_MODE signaling and CORE domain Transition to OFF Mode Laine Walker-Avina
@ 2010-09-23 18:05 ` Kevin Hilman
2010-09-24 16:48 ` Laine Walker-Avina
0 siblings, 1 reply; 3+ messages in thread
From: Kevin Hilman @ 2010-09-23 18:05 UTC (permalink / raw)
To: Laine Walker-Avina; +Cc: linux-omap
Laine Walker-Avina <lwalkera@pasco.com> writes:
> I'm having some troubles putting my OMAP3503(the one without the DSP
> or SGX modules) board to sleep. I'm using the current master on the
> l-o git repository.
Looks like you're wanting to use off-mode. There are many drivers that
do not yet support off mode, as they need to do context save/restore in
their suspend/resume paths in order to support off mode.
In particular, MMC in l-o master does not yet have this support, so you
should not expect MMC to work after an off mode transition.
This is why off-mode is disabled by default, it has to be manually
enabled by: echo 1 > /debug/pm_debug/enable_off_mode.
Do things work as expected if you leave off-mode disabled?
> This is the output from dmesg and the count file after suspending
> twice. The first time it wakes immediately after going down, and the
> second time stays asleep but says that the core domain didn't enter
> OFF mode.
This is not easy to debug with the current kernel dump.
The way I suggest debugging this is by first getting to a minimal kernel
that can suspend/resume as you expect. Then you add in the drivers to
see which one is causing the problem, or keeping the system away.
Clearly the MMC driver has some problems in it's suspend/resume hooks
with unbalanced regulator enable/disables, so for starters, I'd suggest
disabling MMC. I'd also suggest disabling musb, but basically the best
way is to disable everything except a minimal kernel, and then work back
up to the config you want.
You might try using my PM branch (link below) which comes with a minimal
kernel config for this purpose: omap3_pm_defconfig.
> In either case, the SYS_OFF_MODE signal never asserts. I added some
> debug code into map_sram_idle() to capture CM_CORE_IDLEST1 and 3 right
> before it jumps to the final sleep code in SRAM.
For looking at the idlest regs, you might want to try the patch from my
pm-debug branch (included in my pm branch) which takes a snapshot of all
the PM registers just before SRAM idle and right after resume. You can
then see the registers using debugfs. This is documented on the OMAP PM
wiki:
http://elinux.org/OMAP_Power_Management
Hope that helps a little,
Kevin
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: SYS_OFF_MODE signaling and CORE domain Transition to OFF Mode
2010-09-23 18:05 ` Kevin Hilman
@ 2010-09-24 16:48 ` Laine Walker-Avina
0 siblings, 0 replies; 3+ messages in thread
From: Laine Walker-Avina @ 2010-09-24 16:48 UTC (permalink / raw)
To: Kevin Hilman; +Cc: linux-omap, Nimmagadda, Padmaja
On Thu, Sep 23, 2010 at 11:05 AM, Kevin Hilman
<khilman@deeprootsystems.com> wrote:
> Laine Walker-Avina <lwalkera@pasco.com> writes:
>
>> I'm having some troubles putting my OMAP3503(the one without the DSP
>> or SGX modules) board to sleep. I'm using the current master on the
>> l-o git repository.
>
> Looks like you're wanting to use off-mode. There are many drivers that
> do not yet support off mode, as they need to do context save/restore in
> their suspend/resume paths in order to support off mode.
>
> In particular, MMC in l-o master does not yet have this support, so you
> should not expect MMC to work after an off mode transition.
>
> This is why off-mode is disabled by default, it has to be manually
> enabled by: echo 1 > /debug/pm_debug/enable_off_mode.
>
> Do things work as expected if you leave off-mode disabled?
>
>> This is the output from dmesg and the count file after suspending
>> twice. The first time it wakes immediately after going down, and the
>> second time stays asleep but says that the core domain didn't enter
>> OFF mode.
>
> This is not easy to debug with the current kernel dump.
>
> The way I suggest debugging this is by first getting to a minimal kernel
> that can suspend/resume as you expect. Then you add in the drivers to
> see which one is causing the problem, or keeping the system away.
>
> Clearly the MMC driver has some problems in it's suspend/resume hooks
> with unbalanced regulator enable/disables, so for starters, I'd suggest
> disabling MMC. I'd also suggest disabling musb, but basically the best
> way is to disable everything except a minimal kernel, and then work back
> up to the config you want.
>
> You might try using my PM branch (link below) which comes with a minimal
> kernel config for this purpose: omap3_pm_defconfig.
>
>> In either case, the SYS_OFF_MODE signal never asserts. I added some
>> debug code into map_sram_idle() to capture CM_CORE_IDLEST1 and 3 right
>> before it jumps to the final sleep code in SRAM.
>
> For looking at the idlest regs, you might want to try the patch from my
> pm-debug branch (included in my pm branch) which takes a snapshot of all
> the PM registers just before SRAM idle and right after resume. You can
> then see the registers using debugfs. This is documented on the OMAP PM
> wiki:
>
> http://elinux.org/OMAP_Power_Management
>
> Hope that helps a little,
>
> Kevin
> --
> 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
>
Hi Kevin,
Thanks for the help. :)
I recompiled the kernel without anything but UART support like you
said. I applied the debug patch and the results follow. The processor
seems to go into OFF mode according the dmesg output, but the
SYS_OFF_MODE pin doesn't change state. Any thoughts?
Also, is the MMC driver being worked on to make it suspend/resume
compliant? I recall that I was able to at least go into retention with
the MMC as the root FS earlier.
root@spark:/debug/pm_debug$ echo mem > /sys/power/state
[ 209.520324] PM: Syncing filesystems ... done.
[ 209.525787] PM: Preparing system for mem sleep
[ 209.530944] Freezing user space processes ... (elapsed 0.02 seconds) done.
[ 209.559204] Freezing remaining freezable tasks ... (elapsed 0.02
seconds) done.
[ 209.590545] PM: Entering mem sleep
[ 209.594177] Suspending console(s) (use no_console_suspend to debug)
[ 209.600982] platform reg-dummy: preparing suspend
[ 209.601318] platform omapdss: preparing suspend
[ 209.601409] reg-fixed-voltage reg-fixed-voltage.1: preparing suspend
[ 209.601501] platform nop_usb_xceiv: preparing suspend
[ 209.601623] serial8250 serial8250.0: preparing suspend
[ 209.601715] serial8250 serial8250.1: preparing suspend
[ 209.601806] serial8250 serial8250.2: preparing suspend
[ 209.601898] platform arm-pmu.0: preparing suspend
[ 209.604217] platform mpu.0: preparing suspend
[ 209.604339] platform iva.0: preparing suspend
[ 209.604461] platform l3_main.0: preparing suspend
[ 209.604583] serial8250 serial8250: preparing suspend
[ 209.607818] serial8250 serial8250: suspend
[ 209.608001] platform l3_main.0: suspend
[ 209.608123] platform iva.0: suspend
[ 209.608245] platform mpu.0: suspend
[ 209.611083] platform arm-pmu.0: suspend
[ 209.611236] serial8250 serial8250.2: suspend
[ 209.611663] serial8250 serial8250.1: suspend
[ 209.611846] serial8250 serial8250.0: suspend
[ 209.612030] platform nop_usb_xceiv: suspend
[ 209.612152] reg-fixed-voltage reg-fixed-voltage.1: suspend
[ 209.612274] platform omapdss: suspend
[ 209.612609] platform reg-dummy: suspend
[ 209.612854] PM: suspend of devices complete after 6.778 msecs
[ 209.614685] serial8250 serial8250: LATE suspend
[ 209.614746] platform l3_main.0: LATE suspend
[ 209.614776] platform iva.0: LATE suspend
[ 209.614807] platform mpu.0: LATE suspend
[ 209.615020] platform arm-pmu.0: LATE suspend
[ 209.615051] serial8250 serial8250.2: LATE suspend
[ 209.615081] serial8250 serial8250.1: LATE suspend
[ 209.615112] serial8250 serial8250.0: LATE suspend
[ 209.615142] platform nop_usb_xceiv: LATE suspend
[ 209.615173] reg-fixed-voltage reg-fixed-voltage.1: LATE suspend
[ 209.615203] platform omapdss: LATE suspend
[ 209.615264] platform reg-dummy: LATE suspend
[ 209.615325] PM: late suspend of devices complete after 2.412 msecs
[ 220.011688] sdrc_pwr before:00000129 now:00000129
[ 220.011749] Successfully put all powerdomains to target state
[ 220.012115] platform reg-dummy: EARLY resume
[ 220.012176] platform omapdss: EARLY resume
[ 220.012207] reg-fixed-voltage reg-fixed-voltage.1: EARLY resume
[ 220.012237] platform nop_usb_xceiv: EARLY resume
[ 220.012268] serial8250 serial8250.0: EARLY resume
[ 220.012298] serial8250 serial8250.1: EARLY resume
[ 220.012329] serial8250 serial8250.2: EARLY resume
[ 220.012359] platform arm-pmu.0: EARLY resume
[ 220.012573] platform mpu.0: EARLY resume
[ 220.012603] platform iva.0: EARLY resume
[ 220.012634] platform l3_main.0: EARLY resume
[ 220.012664] serial8250 serial8250: EARLY resume
[ 220.012847] PM: early resume of devices complete after 0.793 msecs
[ 220.012969] irqstatus 00000200
[ 220.013488] platform reg-dummy: resume
[ 220.013793] platform omapdss: resume
[ 220.013885] reg-fixed-voltage reg-fixed-voltage.1: resume
[ 220.014007] platform nop_usb_xceiv: resume
[ 220.014099] serial8250 serial8250.0: resume
[ 220.014617] serial8250 serial8250.1: resume
[ 220.014801] serial8250 serial8250.2: resume
[ 220.022766] platform arm-pmu.0: resume
[ 220.024688] platform mpu.0: resume
[ 220.024780] platform iva.0: resume
[ 220.024871] platform l3_main.0: resume
[ 220.024993] serial8250 serial8250: resume
[ 220.026458] PM: resume of devices complete after 13.128 msecs
[ 220.027740] serial8250 serial8250: completing resume
[ 220.027862] platform l3_main.0: completing resume
[ 220.027954] platform iva.0: completing resume
[ 220.028045] platform mpu.0: completing resume
[ 220.029785] platform arm-pmu.0: completing resume
[ 220.029907] serial8250 serial8250.2: completing resume
[ 220.029998] serial8250 serial8250.1: completing resume
[ 220.030426] serial8250 serial8250.0: completing resume
[ 220.030548] platform nop_usb_xceiv: completing resume
[ 220.030639] reg-fixed-voltage reg-fixed-voltage.1: completing resume
[ 220.030731] platform omapdss: completing resume
[ 220.031005] platform reg-dummy: completing resume
[ 220.393035] PM: Finishing wakeup.
[ 220.396423] Restarting tasks ... done.
root@spark:/debug/pm_debug$ cat registers/1
MOD: CM_IVA2 (48014000)
04 => 00000011 20 => 00000001 34 => 00000001 40 => 00080000
44 => 00000001 48 => 00000003
MOD: CM_OCP (48004800)
00 => 00000010 10 => 00000001
MOD: CM_MPU (48004900)
04 => 00000077 24 => 00000001 34 => 00000001 40 => 0010fa05
44 => 00000001 48 => 00000003 4c => 00000001
MOD: CM_CORE (48004a00)
10 => 00000042 20 => ffffffbd 24 => 0000001f 28 => 0000000d
30 => fffffed9 34 => 0000001f 38 => 0000000c 40 => 0000030a
48 => 0000003f 4c => 00000003
MOD: CM_SGX (48004b00)
MOD: CM_WKUP (48004c00)
10 => 0000000e 20 => 000002f1 30 => 0000003f 40 => 00000015
MOD: CM_CCR (48004d00)
00 => 00770007 04 => 00000011 20 => 00000003 30 => 00000001
34 => 00000001 40 => 08a60500 44 => 0000d805 48 => 00000009
4c => 00003204 50 => 00000001 70 => 00000092
MOD: CM_DSS (48004e00)
20 => 00000003 30 => 00000001 40 => 00001009 48 => 00000003
MOD: CM_CAM (48004f00)
20 => 00000001 30 => 00000001 40 => 00000004 48 => 00000003
MOD: CM_PER (48005000)
10 => 0003e000 20 => 00001fff 30 => 0003ffff 40 => 000000ff
44 => 00000006 48 => 00000003 4c => 00000001
MOD: CM_EMU (48005100)
40 => 03020a50 48 => 00000001
MOD: CM_NEON (48005300)
48 => 00000003
MOD: CM_USB (48005400)
20 => 00000003 30 => 00000001 48 => 00000003
MOD: PRM_IVA2 (48316000)
50 => 00000007 e0 => 00ff0f04 f8 => 00000002
MOD: PRM_OCP (48306800)
04 => 00000010 14 => 00000001 18 => 00000010 1c => 00000201
MOD: PRM_MPU (48306900)
58 => 0000000c d4 => 00000012 e0 => 00030104 e4 => 000000c7
e8 => 000000c7
MOD: PRM_CORE (48306a00)
58 => 00000304 a0 => c33f9e18 a4 => c33ffe18 e0 => 000f0314
e4 => 000000f7 e8 => 000000f7 f0 => 00000004 f8 => 00000004
MOD: PRM_SGX (48306b00)
MOD: PRM_WKUP (48306c00)
a0 => 0001010b a4 => 0000010b b0 => 00010000
MOD: PRM_CCR (48306d00)
70 => 00000080
MOD: PRM_DSS (48306e00)
a0 => 00000001 e0 => 00030104
MOD: PRM_CAM (48306f00)
e0 => 00030104
MOD: PRM_PER (48307000)
58 => 0000000c a0 => 0003e007 a4 => 0003e807 c8 => 00000006
e0 => 00030104 e4 => 00000007 e8 => 00000007
MOD: PRM_EMU (48307100)
58 => 00000004 e4 => 00000100
MOD: PRM_GLBL (48307200)
38 => 00000018 54 => 00001006 58 => 00000001 60 => 0000000c
64 => 00000050 70 => 00000049 9c => 00000002 c4 => 00000001
e4 => 00000001
MOD: PRM_NEON (48307300)
58 => 0000000c c8 => 00000002 e0 => 00000004 e4 => 00000003
e8 => 00000003
MOD: PRM_USB (48307400)
58 => 00000008 a0 => 00000001 a4 => 00000001 a8 => 00000001
e0 => 00030104
root@spark:/debug/pm_debug$ cat registers/2
MOD: CM_IVA2 (48014000)
04 => 00000011 20 => 00000001 40 => 00080000 44 => 00000001
MOD: CM_OCP (48004800)
00 => 00000010 10 => 00000001
MOD: CM_MPU (48004900)
04 => 00000077 24 => 00000001 34 => 00000001 40 => 0010fa05
44 => 00000001 4c => 00000001
MOD: CM_CORE (48004a00)
10 => 0000004a 20 => ffffffbd 24 => 0000001f 28 => 0000000d
30 => 00000008 40 => 0000030a 4c => 00000003
MOD: CM_SGX (48004b00)
MOD: CM_WKUP (48004c00)
20 => 000002ff 40 => 00000015
MOD: CM_CCR (48004d00)
00 => 00770007 04 => 00000011 20 => 00000003 30 => 00000001
40 => 08a60500 44 => 0000d805 48 => 00000009 50 => 00000001
70 => 00000003
MOD: CM_DSS (48004e00)
20 => 00000003 40 => 00001010
MOD: CM_CAM (48004f00)
20 => 00000001 40 => 00000010
MOD: CM_PER (48005000)
20 => 0003ffff
MOD: CM_EMU (48005100)
40 => 10100a50 48 => 00000002 4c => 00000001
MOD: CM_NEON (48005300)
MOD: CM_USB (48005400)
20 => 00000003
MOD: PRM_IVA2 (48316000)
50 => 00000007 e0 => 00ff0f04 f8 => 00000002
MOD: PRM_OCP (48306800)
04 => 00000010 14 => 00000001 18 => 00000210 1c => 00000201
MOD: PRM_MPU (48306900)
58 => 0000000c d4 => 00000012 e0 => 00030104 e4 => 000000c7
MOD: PRM_CORE (48306a00)
58 => 00000304 a0 => c33f9e18 a4 => c33ffe18 e0 => 000f0314
e4 => 000000f7 f0 => 00000004 f8 => 00000004
MOD: PRM_SGX (48306b00)
MOD: PRM_WKUP (48306c00)
a0 => 0000010b a4 => 0000010b b0 => 00010100
MOD: PRM_CCR (48306d00)
70 => 00000080
MOD: PRM_DSS (48306e00)
a0 => 00000001 e0 => 00030104
MOD: PRM_CAM (48306f00)
e0 => 00030104
MOD: PRM_PER (48307000)
58 => 0000000c a0 => 0003e007 a4 => 0003e807 c8 => 00000006
e0 => 00030104
MOD: PRM_EMU (48307100)
58 => 00000004 e4 => 00000103
MOD: PRM_GLBL (48307200)
38 => 00000018 54 => 00001006 58 => 00000001 60 => 0000000c
64 => 00000050 70 => 00000049 9c => 00000002 c4 => 00000001
e4 => 00000001
MOD: PRM_NEON (48307300)
58 => 0000000c c8 => 00000002 e0 => 00000004 e4 => 00000003
MOD: PRM_USB (48307400)
58 => 00000008 a0 => 00000001 a4 => 00000001 a8 => 00000001
e0 => 00030104
root@spark:/debug/pm_debug$ cat registers/current
MOD: CM_IVA2 (48014000)
04 => 00000011 20 => 00000001 34 => 00000001 40 => 00080000
44 => 00000001 48 => 00000003
MOD: CM_OCP (48004800)
00 => 00000010 10 => 00000001
MOD: CM_MPU (48004900)
04 => 00000077 24 => 00000001 34 => 00000001 40 => 0010fa05
44 => 00000001 48 => 00000003 4c => 00000001
MOD: CM_CORE (48004a00)
00 => 00006000 10 => 00006042 20 => ffff9fbd 24 => 0000001f
28 => 0000000d 30 => fffffed9 34 => 0000001f 38 => 0000000c
40 => 0000030a 48 => 0000003f 4c => 00000003
MOD: CM_SGX (48004b00)
MOD: CM_WKUP (48004c00)
10 => 0000000e 20 => 000002f1 30 => 0000003f 40 => 00000015
MOD: CM_CCR (48004d00)
00 => 00770007 04 => 00000011 20 => 0000020b 30 => 00000001
34 => 00000001 40 => 08a60500 44 => 0000d805 48 => 00000009
4c => 00003204 50 => 00000001 70 => 00000092
MOD: CM_DSS (48004e00)
20 => 00000003 30 => 00000001 40 => 00001009 48 => 00000003
MOD: CM_CAM (48004f00)
20 => 00000001 30 => 00000001 40 => 00000004 48 => 00000003
MOD: CM_PER (48005000)
00 => 00000800 10 => 0003e800 20 => 000017ff 30 => 0003ffff
40 => 000000ff 44 => 00000006 48 => 00000003 4c => 00000001
MOD: CM_EMU (48005100)
40 => 03020a50 48 => 00000001
MOD: CM_NEON (48005300)
48 => 00000003
MOD: CM_USB (48005400)
20 => 00000003 30 => 00000001 48 => 00000003
MOD: PRM_IVA2 (48316000)
50 => 00000007 e0 => 00ff0f04 f8 => 00000002
MOD: PRM_OCP (48306800)
04 => 00000010 14 => 00000001 18 => 00000010 1c => 00000201
MOD: PRM_MPU (48306900)
58 => 0000000c d4 => 00000012 e0 => 00030104 e4 => 000000c7
MOD: PRM_CORE (48306a00)
58 => 00000304 a0 => c33f9e18 a4 => c33ffe18 e0 => 000f0314
e4 => 000000f7 f0 => 00000004 f8 => 00000004
MOD: PRM_SGX (48306b00)
MOD: PRM_WKUP (48306c00)
a0 => 0000000b a4 => 0000010b
MOD: PRM_CCR (48306d00)
70 => 00000080
MOD: PRM_DSS (48306e00)
a0 => 00000001 e0 => 00030104
MOD: PRM_CAM (48306f00)
e0 => 00030104
MOD: PRM_PER (48307000)
58 => 0000000c a0 => 0003e007 a4 => 0003e807 c8 => 00000006
e0 => 00030104 e4 => 00000007
MOD: PRM_EMU (48307100)
58 => 00000004 e4 => 00000100
MOD: PRM_GLBL (48307200)
38 => 00000018 54 => 00001006 58 => 00000001 60 => 0000000c
64 => 00000050 70 => 00000049 9c => 00000002 c4 => 00000001
e4 => 00000001
MOD: PRM_NEON (48307300)
58 => 0000000c c8 => 00000002 e0 => 00000004 e4 => 00000003
MOD: PRM_USB (48307400)
58 => 00000008 a0 => 00000001 a4 => 00000001 a8 => 00000001
e0 => 00030104
root@spark:/debug/pm_debug$ cat count
usbhost_pwrdm (OFF),OFF:1,RET:1,INA:0,ON:1,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0
sgx_pwrdm (OFF),OFF:1,RET:0,INA:0,ON:0,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0
per_pwrdm (ON),OFF:3,RET:0,INA:0,ON:4,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0
dss_pwrdm (OFF),OFF:1,RET:1,INA:0,ON:1,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0
cam_pwrdm (OFF),OFF:1,RET:1,INA:0,ON:1,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0
core_pwrdm (ON),OFF:3,RET:0,INA:0,ON:4,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0,RET-MEMBANK2-OFF:0
neon_pwrdm (ON),OFF:3,RET:0,INA:0,ON:4,RET-LOGIC-OFF:0
mpu_pwrdm (ON),OFF:3,RET:0,INA:0,ON:4,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0
iva2_pwrdm (OFF),OFF:1,RET:1,INA:0,ON:1,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0,RET-MEMBANK2-OFF:0,RET-MEMBANK3-OFF:0,RET-MEMBANK4-OFF:0
per_clkdm->per_pwrdm (9)
usbhost_clkdm->usbhost_pwrdm (0)
cam_clkdm->cam_pwrdm (0)
dss_clkdm->dss_pwrdm (0)
core_l4_clkdm->core_pwrdm (7)
core_l3_clkdm->core_pwrdm (4)
d2d_clkdm->core_pwrdm (0)
sgx_clkdm->sgx_pwrdm (0)
iva2_clkdm->iva2_pwrdm (0)
neon_clkdm->neon_pwrdm (0)
mpu_clkdm->mpu_pwrdm (0)
prm_clkdm->wkup_pwrdm (0)
cm_clkdm->core_pwrdm (0)
Thanks,
--
Laine Walker-Avina
Firmware Engineer
PASCO scientific
--
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
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2010-09-24 16:53 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-09-22 22:18 SYS_OFF_MODE signaling and CORE domain Transition to OFF Mode Laine Walker-Avina
2010-09-23 18:05 ` Kevin Hilman
2010-09-24 16:48 ` Laine Walker-Avina
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).