Hi,
I am using a DM3730 with Android patched Linux kernel 2.6.32 from the gumdroid project (https://github.com/gumdroid) and when I try to suspend my device I get the following error:
# echo 8 > /proc/sys/kernel/printk
# echo 15 > /sys/module/wakelock/parameters/debug_mask
# echo mem > /sys/power/state
request_suspend_state: sleep (3->3) at 38078856731 (2000-01-01 00:00:45.220061560 UTC)
# PM: Adding info for No Bus:vcs63
PM: Adding info for No Bus:vcsa63
console_early_suspend: Can't set console
active wake lock mmc_delayed_work
suspend: enter suspend
PM: Syncing filesystems ... done.
PM: Preparing system for mem sleep
Freezing user space processes ... (elapsed 0.01 seconds) done.
Freezing remaining freezable tasks ... (elapsed 0.01 seconds) done.
PM: Entering mem sleep
power power.0: preparing suspend
i2c_omap i2c_omap.1: preparing suspend
i2c_omap i2c_omap.3: preparing suspend
omapdss omapdss: preparing suspend
leds-gpio leds-gpio: preparing suspend
gpio-keys gpio-keys: preparing suspend, may wakeup
serial8250 serial8250.0: preparing suspend, may wakeup
serial8250 serial8250.1: preparing suspend, may wakeup
serial8250 serial8250.2: preparing suspend, may wakeup
omap2-nand omap2-nand: preparing suspend
musb_hdrc musb_hdrc: preparing suspend
ehci-omap ehci-omap.0: preparing suspend
android_usb android_usb: preparing suspend
smsc911x smsc911x.0: preparing suspend
platform smsc911x.1: preparing suspend
omap3isp omap3isp: preparing suspend
omap2_mcspi omap2_mcspi.1: preparing suspend
omap2_mcspi omap2_mcspi.2: preparing suspend
omap2_mcspi omap2_mcspi.3: preparing suspend
omap2_mcspi omap2_mcspi.4: preparing suspend
omap-mcbsp omap-mcbsp.1: preparing suspend
omap-mcbsp omap-mcbsp.2: preparing suspend
omap-mcbsp omap-mcbsp.3: preparing suspend
omap-mcbsp omap-mcbsp.4: preparing suspend
omap-mcbsp omap-mcbsp.5: preparing suspend
omap_wdt omap_wdt: preparing suspend
platform omap_vout: preparing suspend
omapfb omapfb: preparing suspend
twl4030_gpio twl4030_gpio: preparing suspend
mmci-omap-hs mmci-omap-hs.0: preparing suspend
mmci-omap-hs mmci-omap-hs.1: preparing suspend
twl4030_madc twl4030_madc: preparing suspend, may wakeup
twl_rtc twl_rtc: preparing suspend, may wakeup
twl_reg twl_reg.17: preparing suspend
twl_reg twl_reg.18: preparing suspend
twl_reg twl_reg.19: preparing suspend
twl4030_usb twl4030_usb: preparing suspend, may wakeup
twl_reg twl_reg.6: preparing suspend
twl_reg twl_reg.3: preparing suspend
twl_reg twl_reg.5: preparing suspend
platform regulatory.0: preparing suspend
omap-iommu omap-iommu.0: preparing suspend
serial8250 serial8250: preparing suspend
usb usb1: preparing type suspend, may wakeup
usb usb2: preparing type suspend, may wakeup
alarm alarm: preparing suspend
omap-previewer omap-previewer: preparing suspend
omap-resizer omap-resizer.2: preparing suspend
drivers/base/power/main.c: dpm_start_suspend: Finished all device_prepare and the error is: 0
drivers/base/power/main.c: dpm_start_suspend: about to call dpm_suspend
mmcblk mmc0:0001: legacy suspend
leds gpio22: legacy class suspend
leds gpio21: legacy class suspend
omap-resizer omap-resizer.2: suspend
omap-previewer omap-previewer: suspend
alarm alarm: suspend
rtc rtc0: legacy class suspend
input input1: type suspend
input input0: type suspend
usb usb2: type suspend, may wakeup
hub 2-0:1.0: hub_suspend
usb usb2: bus suspend
usb usb1: type suspend, may wakeup
hub 1-0:1.0: hub_suspend
usb usb1: bus suspend
ehci-omap ehci-omap.0: suspend root hub
Generic PHY 0:01: legacy suspend
mtd mtd4ro: legacy class suspend
mtd mtd4: legacy class suspend
mtd mtd3ro: legacy class suspend
mtd mtd3: legacy class suspend
mtd mtd2ro: legacy class suspend
mtd mtd2: legacy class suspend
mtd mtd1ro: legacy class suspend
mtd mtd1: legacy class suspend
mtd mtd0ro: legacy class suspend
mtd mtd0: legacy class suspend
serial8250 serial8250: suspend
omap-iommu omap-iommu.0: suspend
platform regulatory.0: suspend
i2c 3-005c: suspend
i2c i2c-3: suspend
twl_reg twl_reg.5: suspend
twl_reg twl_reg.3: suspend
twl_reg twl_reg.6: suspend
twl4030_usb twl4030_usb: suspend, may wakeup
twl_reg twl_reg.19: suspend
twl_reg twl_reg.18: suspend
twl_reg twl_reg.17: suspend
twl_rtc twl_rtc: suspend, may wakeup
twl4030_madc twl4030_madc: suspend, may wakeup
mmci-omap-hs mmci-omap-hs.1: suspend
mmci-omap-hs mmci-omap-hs.0: suspend
twl4030_gpio twl4030_gpio: suspend
dummy 1-004b: suspend
dummy 1-004a: suspend
dummy 1-0049: suspend
twl 1-0048: suspend, may wakeup
i2c i2c-1: suspend
lgphilips_lb035q02_panel-spi spi1.1: legacy suspend
lgphilips_lb035q02_panel-spi spi1.1: ... can't suspend
ads7846 spi1.0: legacy suspend
omapfb omapfb: suspend
platform omap_vout: suspend
omap_wdt omap_wdt: suspend
omap-mcbsp omap-mcbsp.5: suspend
omap-mcbsp omap-mcbsp.4: suspend
omap-mcbsp omap-mcbsp.3: suspend
omap-mcbsp omap-mcbsp.2: suspend
omap-mcbsp omap-mcbsp.1: suspend
omap2_mcspi omap2_mcspi.4: suspend
omap2_mcspi omap2_mcspi.3: suspend
omap2_mcspi omap2_mcspi.2: suspend
omap2_mcspi omap2_mcspi.1: suspend
omap3isp omap3isp: suspend
platform smsc911x.1: suspend
smsc911x smsc911x.0: suspend
android_usb android_usb: suspend
ehci-omap ehci-omap.0: suspend
musb_hdrc musb_hdrc: suspend
omap2-nand omap2-nand: suspend
serial8250 serial8250.2: suspend, may wakeup
serial8250 serial8250.1: suspend, may wakeup
serial8250 serial8250.0: suspend, may wakeup
gpio-keys gpio-keys: suspend, may wakeup
leds-gpio leds-gpio: suspend
omapdss omapdss: suspend
i2c_omap i2c_omap.3: suspend
i2c_omap i2c_omap.1: suspend
power power.0: suspend
PM: About to start dpm_suspend_noirq...
omap-resizer omap-resizer.2: LATE suspend
omap-previewer omap-previewer: LATE suspend
alarm alarm: LATE suspend
serial8250 serial8250: LATE suspend
omap-iommu omap-iommu.0: LATE suspend
platform regulatory.0: LATE suspend
i2c 3-005c: LATE suspend
i2c i2c-3: LATE suspend
twl_reg twl_reg.5: LATE suspend
twl_reg twl_reg.3: LATE suspend
twl_reg twl_reg.6: LATE suspend
twl4030_usb twl4030_usb: LATE suspend, may wakeup
twl_reg twl_reg.19: LATE suspend
twl_reg twl_reg.18: LATE suspend
twl_reg twl_reg.17: LATE suspend
twl_rtc twl_rtc: LATE suspend, may wakeup
twl4030_madc twl4030_madc: LATE suspend, may wakeup
mmci-omap-hs mmci-omap-hs.1: LATE suspend
mmci-omap-hs mmci-omap-hs.0: LATE suspend
twl4030_gpio twl4030_gpio: LATE suspend
dummy 1-004b: LATE suspend
dummy 1-004a: LATE suspend
dummy 1-0049: LATE suspend
twl 1-0048: LATE suspend, may wakeup
i2c i2c-1: LATE suspend
omapfb omapfb: LATE suspend
platform omap_vout: LATE suspend
omap_wdt omap_wdt: LATE suspend
omap-mcbsp omap-mcbsp.5: LATE suspend
omap-mcbsp omap-mcbsp.4: LATE suspend
omap-mcbsp omap-mcbsp.3: LATE suspend
omap-mcbsp omap-mcbsp.2: LATE suspend
omap-mcbsp omap-mcbsp.1: LATE suspend
omap2_mcspi omap2_mcspi.4: LATE suspend
omap2_mcspi omap2_mcspi.3: LATE suspend
omap2_mcspi omap2_mcspi.2: LATE suspend
omap2_mcspi omap2_mcspi.1: LATE suspend
omap3isp omap3isp: LATE suspend
platform smsc911x.1: LATE suspend
smsc911x smsc911x.0: LATE suspend
android_usb android_usb: LATE suspend
ehci-omap ehci-omap.0: LATE suspend
musb_hdrc musb_hdrc: LATE suspend
omap2-nand omap2-nand: LATE suspend
serial8250 serial8250.2: LATE suspend, may wakeup
serial8250 serial8250.1: LATE suspend, may wakeup
serial8250 serial8250.0: LATE suspend, may wakeup
gpio-keys gpio-keys: LATE suspend, may wakeup
leds-gpio leds-gpio: LATE suspend
omapdss omapdss: LATE suspend
i2c_omap i2c_omap.3: LATE suspend
i2c_omap i2c_omap.1: LATE suspend
power power.0: LATE suspend
power_suspend_late return 0
PM: Finished dpm_suspend_noirq...
PM: About to start suspend_ops->prepare_late...
PM: About to start suspend_test...
PM: About to start disable_non_cpus...
PM: About to start arch_suspend_disable_irqs...
PM: About to start sysdev_suspend...
drivers/base/sys.c: about to check_wakeup_irqs()......
drivers/base/sys.c: about to check if irqs_disabled()......
drivers/base/sys.c: Suspending System Devices...
drivers/base/sys.c: about to call list_for_each_entry_reverse()...
drivers/base/sys.c: Suspending type: vfp
drivers/base/sys.c: Suspending type: oprofile
BUG: sleeping function called from invalid context at kernel/mutex.c:94
in_atomic(): 0, irqs_disabled(): 128, pid: 13, name: suspend
[<c0058f08>] (unwind_backtrace+0x0/0xd8) from [<c0439f3c>] (mutex_lock+0x18/0x38)
[<c0439f3c>] (mutex_lock+0x18/0x38) from [<c036f2c4>] (op_arm_suspend+0xc/0x40)
[<c036f2c4>] (op_arm_suspend+0xc/0x40) from [<c024b3cc>] (sysdev_suspend+0xc8/0x238)
[<c024b3cc>] (sysdev_suspend+0xc8/0x238) from [<c00b6680>] (suspend_devices_and_enter+0x150/0x258)
[<c00b6680>] (suspend_devices_and_enter+0x150/0x258) from [<c00b6844>] (enter_state+0xbc/0x120)
[<c00b6844>] (enter_state+0xbc/0x120) from [<c00b7bf8>] (suspend+0x60/0x124)
[<c00b7bf8>] (suspend+0x60/0x124) from [<c009a274>] (worker_thread+0x1f0/0x29c)
[<c009a274>] (worker_thread+0x1f0/0x29c) from [<c009dd08>] (kthread+0x78/0x80)
[<c009dd08>] (kthread+0x78/0x80) from [<c0054990>] (kernel_thread_exit+0x0/0x8)
drivers/base/sys.c: Suspending type: clocksource
drivers/base/sys.c: Suspending type: timekeeping
drivers/base/sys.c: Suspending type: leds
drivers/base/sys.c: Suspending type: timer
drivers/base/sys.c: Suspending type: gpio
drivers/base/sys.c: Suspending type: cpu
Powerdomain (mpu_pwrdm) didn't enter target state 1
Powerdomain (neon_pwrdm) didn't enter target state 1
Powerdomain (core_pwrdm) didn't enter target state 1
Powerdomain (per_pwrdm) didn't enter target state 1
Could not enter target state in pm_suspend
PM: I think I should be sleeping now, and about to start sysdev_resume...
PM: About to start arch_suspend_enable_irqs...
power power.0: EARLY resume
i2c_omap i2c_omap.1: EARLY resume
i2c_omap i2c_omap.3: EARLY resume
omapdss omapdss: EARLY resume
leds-gpio leds-gpio: EARLY resume
gpio-keys gpio-keys: EARLY resume
serial8250 serial8250.0: EARLY resume
serial8250 serial8250.1: EARLY resume
serial8250 serial8250.2: EARLY resume
omap2-nand omap2-nand: EARLY resume
musb_hdrc musb_hdrc: EARLY resume
ehci-omap ehci-omap.0: EARLY resume
android_usb android_usb: EARLY resume
smsc911x smsc911x.0: EARLY resume
platform smsc911x.1: EARLY resume
omap3isp omap3isp: EARLY resume
omap2_mcspi omap2_mcspi.1: EARLY resume
omap2_mcspi omap2_mcspi.2: EARLY resume
omap2_mcspi omap2_mcspi.3: EARLY resume
omap2_mcspi omap2_mcspi.4: EARLY resume
omap-mcbsp omap-mcbsp.1: EARLY resume
omap-mcbsp omap-mcbsp.2: EARLY resume
omap-mcbsp omap-mcbsp.3: EARLY resume
omap-mcbsp omap-mcbsp.4: EARLY resume
omap-mcbsp omap-mcbsp.5: EARLY resume
omap_wdt omap_wdt: EARLY resume
platform omap_vout: EARLY resume
omapfb omapfb: EARLY resume
i2c i2c-1: EARLY resume
twl 1-0048: EARLY resume
dummy 1-0049: EARLY resume
dummy 1-004a: EARLY resume
dummy 1-004b: EARLY resume
twl4030_gpio twl4030_gpio: EARLY resume
mmci-omap-hs mmci-omap-hs.0: EARLY resume
mmci-omap-hs mmci-omap-hs.1: EARLY resume
twl4030_madc twl4030_madc: EARLY resume
twl_rtc twl_rtc: EARLY resume
twl_reg twl_reg.17: EARLY resume
twl_reg twl_reg.18: EARLY resume
twl_reg twl_reg.19: EARLY resume
twl4030_usb twl4030_usb: EARLY resume
twl_reg twl_reg.6: EARLY resume
twl_reg twl_reg.3: EARLY resume
twl_reg twl_reg.5: EARLY resume
i2c i2c-3: EARLY resume
i2c 3-005c: EARLY resume
platform regulatory.0: EARLY resume
omap-iommu omap-iommu.0: EARLY resume
serial8250 serial8250: EARLY resume
alarm alarm: EARLY resume
omap-previewer omap-previewer: EARLY resume
omap-resizer omap-resizer.2: EARLY resume
power power.0: resume
i2c_omap i2c_omap.1: resume
i2c_omap i2c_omap.3: resume
omapdss omapdss: resume
leds-gpio leds-gpio: resume
gpio-keys gpio-keys: resume
serial8250 serial8250.0: resume
serial8250 serial8250.1: resume
serial8250 serial8250.2: resume
omap2-nand omap2-nand: resume
musb_hdrc musb_hdrc: resume
ehci-omap ehci-omap.0: resume
android_usb android_usb: resume
smsc911x smsc911x.0: resume
platform smsc911x.1: resume
omap3isp omap3isp: resume
omap2_mcspi omap2_mcspi.1: resume
omap2_mcspi omap2_mcspi.2: resume
omap2_mcspi omap2_mcspi.3: resume
omap2_mcspi omap2_mcspi.4: resume
omap-mcbsp omap-mcbsp.1: resume
omap-mcbsp omap-mcbsp.2: resume
omap-mcbsp omap-mcbsp.3: resume
omap-mcbsp omap-mcbsp.4: resume
omap-mcbsp omap-mcbsp.5: resume
omap_wdt omap_wdt: resume
platform omap_vout: resume
omapfb omapfb: resume
ads7846 spi1.0: legacy resume
lgphilips_lb035q02_panel-spi spi1.1: legacy resume
lgphilips_lb035q02_panel-spi spi1.1: ... can't resume
i2c i2c-1: resume
twl 1-0048: resume
dummy 1-0049: resume
dummy 1-004a: resume
dummy 1-004b: resume
twl4030_gpio twl4030_gpio: resume
mmci-omap-hs mmci-omap-hs.0: resume
wakeup wake lock: mmc_delayed_work
mmci-omap-hs mmci-omap-hs.1: resume
twl4030_madc twl4030_madc: resume
twl_rtc twl_rtc: resume
twl_reg twl_reg.17: resume
twl_reg twl_reg.18: resume
twl_reg twl_reg.19: resume
twl4030_usb twl4030_usb: resume
twl_reg twl_reg.6: resume
twl_reg twl_reg.3: resume
twl_reg twl_reg.5: resume
i2c i2c-3: resume
i2c 3-005c: resume
platform regulatory.0: resume
omap-iommu omap-iommu.0: resume
serial8250 serial8250: resume
mtd mtd0: legacy class resume
mtd mtd0ro: legacy class resume
mtd mtd1: legacy class resume
mtd mtd1ro: legacy class resume
mtd mtd2: legacy class resume
mtd mtd2ro: legacy class resume
mtd mtd3: legacy class resume
mtd mtd3ro: legacy class resume
mtd mtd4: legacy class resume
mtd mtd4ro: legacy class resume
Generic PHY 0:01: legacy resume
usb usb1: type resume
usb usb1: usb resume
ehci-omap ehci-omap.0: resume root hub
hub 1-0:1.0: hub_resume
usb usb2: type resume
usb usb2: usb resume
hub 2-0:1.0: hub_resume
input input0: type resume
input input1: type resume
rtc rtc0: legacy class resume
alarm alarm: resume
omap-previewer omap-previewer: resume
omap-resizer omap-resizer.2: resume
leds gpio21: legacy class resume
leds gpio22: legacy class resume
mmcblk mmc0:0001: legacy resume
omap-resizer omap-resizer.2: completing resume
omap-previewer omap-previewer: completing resume
alarm alarm: completing resume
usb usb2: completing type resume
usb usb1: completing type resume
serial8250 serial8250: completing resume
omap-iommu omap-iommu.0: completing resume
platform regulatory.0: completing resume
twl_reg twl_reg.5: completing resume
twl_reg twl_reg.3: completing resume
twl_reg twl_reg.6: completing resume
twl4030_usb twl4030_usb: completing resume
twl_reg twl_reg.19: completing resume
twl_reg twl_reg.18: completing resume
twl_reg twl_reg.17: completing resume
... and then it completes the resume and then tries to suspend again.
I have added a few extra printk's and turned on the debugging in the kernel. I have modified the Android /init.rc so that all it does is boot to a busybox shell and load nothing else. I am booting from an SD card and therefore enabled CONFIG_MMC_UNSAFE_RESUME in the kernel as well as CONFIG_OMAP_RESET_CLOCKS. My PM layer selection is OMAP_PM_SRF. I have tried booting from NAND and I get the same result.
Any assistance with this is greatly appreciated.
Ben