This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Crash on Suspend with DM3730 or OMAP3530

Other Parts Discussed in Thread: DM3730, ADS7846

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