Hello, I am porting Android 4.0 to a DM37x board. I used the rowboat kernel (rowboat-kernel-2.6.37 branch) as a base and added my device-specific board files and drivers on top. I am facing an issue when entering suspend mode: it seems that something (probably a wakelock) wakes the device right after suspend and it goes into a loop:
request_suspend_state: sleep (0->3) at 84432126265 (2000-01-01 00:01:21.405057172 UTC)
PM: Syncing filesystems ... done.
PM: Preparing system for mem sleep
Freezing user space processes ...
Freezing of user space aborted
Restarting tasks ... done.
suspend: exit suspend, ret = -16 (2000-01-01 00:01:21.450275136 UTC)
PM: Syncing filesystems ... done.
PM: Preparing system for mem sleep
Freezing user space processes ... (elapsed 0.02 seconds) done.
Freezing remaining freezable tasks ... (elapsed 0.01 seconds) done.
PM: Entering mem sleep
td028ttec1_panel_suspend()
gta04_disable_lcd()
PM: suspend of devices complete after 142.365 msecs
PM: late suspend of devices complete after 0.335 msecs
Successfully put all powerdomains to target state
PM: early resume of devices complete after 0.213 msecs
td028ttec1_panel_resume()
platform iva.0: omap_voltage_scale: Already at the requestedrate 800000000
platform mpu.0: omap_voltage_scale: Already at the requestedrate 1000000000
gta04_enable_lcd()
wakeup wake lock: event0-1086
PM: resume of devices complete after 590.118 msecs
PM: Finishing wakeup.
Restarting tasks ... done.
suspend: exit suspend, ret = 0 (2000-01-01 00:01:23.544219970 UTC)
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
td028ttec1_panel_suspend()
gta04_disable_lcd()
PM: suspend of devices complete after 142.120 msecs
PM: late suspend of devices complete after 0.335 msecs
Successfully put all powerdomains to target state
PM: early resume of devices complete after 0.183 msecs
td028ttec1_panel_resume()
platform iva.0: omap_voltage_scale: Already at the requestedrate 800000000
platform mpu.0: omap_voltage_scale: Already at the requestedrate 1000000000
gta04_enable_lcd()
wakeup wake lock: event0-1086
PM: resume of devices complete after 583.282 msecs
PM: Finishing wakeup.
Restarting tasks ... done.
suspend: exit suspend, ret = 0 (2000-01-01 00:01:24.535400390 UTC)
PM: Syncing filesystems ... done.
PM: Preparing system for mem sleep
Freezing user space processes ... (elapsed 0.02 seconds) done.
Freezing remaining freezable tasks ... (elapsed 0.01 seconds) done.
PM: Entering mem sleep
td028ttec1_panel_suspend()
gta04_disable_lcd()
PM: suspend of devices complete after 141.540 msecs
PM: late suspend of devices complete after 0.335 msecs
Successfully put all powerdomains to target state
PM: early resume of devices complete after 0.183 msecs
td028ttec1_panel_resume()
platform iva.0: omap_voltage_scale: Already at the requestedrate 800000000
platform mpu.0: omap_voltage_scale: Already at the requestedrate 1000000000
gta04_enable_lcd()
wakeup wake lock: event0-1086
PM: resume of devices complete after 583.831 msecs
PM: Finishing wakeup.
Restarting tasks ... done.
suspend: exit suspend, ret = 0 (2000-01-01 00:01:25.524902342 UTC)
PM: Syncing filesystems ... done.
PM: Preparing system for mem sleep
Freezing user space processes ... (elapsed 0.02 seconds) done.
Freezing remaining freezable tasks ... (elapsed 0.01 seconds) done.
PM: Entering mem sleep
td028ttec1_panel_suspend()
gta04_disable_lcd()
PM: suspend of devices complete after 148.986 msecs
PM: late suspend of devices complete after 0.335 msecs
Powerdomain (core_pwrdm) didn't enter target state 1
Powerdomain (usbhost_pwrdm) didn't enter target state 1
Could not enter target state in pm_suspend
PM: early resume of devices complete after 0.183 msecs
td028ttec1_panel_resume()
platform iva.0: omap_voltage_scale: Already at the requestedrate 800000000
platform mpu.0: omap_voltage_scale: Already at the requestedrate 1000000000
gta04_enable_lcd()
wakeup wake lock: event0-1086
PM: resume of devices complete after 584.259 msecs
PM: Finishing wakeup.
Restarting tasks ... done.
request_suspend_state: wakeup (3->0) at 98690124448 (2000-01-01 00:01:38.516906738 UTC)
done.
suspend: exit suspend, ret = 0 (2000-01-01 00:01:38.527648924 UTC)
Thanks for your help!