Issue #537
closedGTA04 3.0 Kernel missing features
0%
Description
Our current GTA04 3.0 kernel is still incomplete and lacks omap3 features.
Suspend/resume is also broken and needs to be fixed. Currently, it fails to go to suspend with such messages:
<6>request_suspend_state: sleep (0->3) at 93786224369 (2000-01-01 00:04:28.943237303 UTC) <6>PM: Syncing filesystems ... done. <7>PM: Preparing system for mem sleep <4>Freezing user space processes ... (elapsed 0.02 seconds) done. <4>Freezing remaining freezable tasks ... (elapsed 0.01 seconds) done. <7>PM: Entering mem sleep <7>usb 1-2: unlink qh2-0001/de192bc0 start 1 [2/0 us] <7>usb 1-2: usb suspend <7>hub 1-0:1.0: hub_suspend <7>usb usb1: bus suspend <7>ehci-omap ehci-omap.0: suspend root hub <4>td028ttec1_panel_suspend() <4>gta04_disable_lcd() <6>PM: suspend of devices complete after 168.334 msecs <6>PM: late suspend of devices complete after 0.549 msecs <6>Powerdomain (core_pwrdm) didn't enter target state 1 <6>Powerdomain (usbhost_pwrdm) didn't enter target state 1 <3>Could not enter target state in pm_suspend <6>PM: early resume of devices complete after 0.305 msecs <4>td028ttec1_panel_resume() <4>gta04_enable_lcd() <7>usb usb2: usb resume <7>usb usb1: usb resume <7>ehci-omap ehci-omap.0: resume root hub <7>hub 2-0:1.0: hub_resume <7>hub 1-0:1.0: hub_resume <7>hub 1-0:1.0: port 2: status 0507 change 0000 <7>usb 1-2: usb resume <7>ehci-omap ehci-omap.0: GetStatus port:2 status 001005 0 ACK POWER sig=se0 PE CONNECT <7>usb 1-2: finish resume <7>ehci-omap ehci-omap.0: reused qh de192bc0 schedule <7>usb 1-2: link qh2-0001/de192bc0 start 1 [2/0 us] <6>PM: resume of devices complete after 798.767 msecs <7>PM: Finishing wakeup. <4>Restarting tasks ... <7>hub 2-0:1.0: state 7 ports 1 chg 0000 evt 0000 <7>hub 1-0:1.0: state 7 ports 3 chg 0000 evt 0000 <6>wakeup wake lock: KeyEvents <4>done. <3>omap_hsmmc omap_hsmmc.1: could not set regulator OCR (-22) <6>suspend: exit suspend, ret = -1 (2000-01-01 00:04:34.907165525 UTC) <6>active wake lock mmc1_detect <4>------------[ cut here ]------------ <4>WARNING: at /data/Projets/replicant/replicant-4.0/kernel/goldelico-3.0/gta04/drivers/regulator/core.c:1406 _regulator_disable+0x60/0x170() <4>unbalanced disables for dummy <4>Modules linked in: <4>[<c00799c0>] (unwind_backtrace+0x0/0xf0) from [<c009d5fc>] (warn_slowpath_common+0x4c/0x64) <4>[<c009d5fc>] (warn_slowpath_common+0x4c/0x64) from [<c009d694>] (warn_slowpath_fmt+0x2c/0x3c) <4>[<c009d694>] (warn_slowpath_fmt+0x2c/0x3c) from [<c026adac>] (_regulator_disable+0x60/0x170) <4>[<c026adac>] (_regulator_disable+0x60/0x170) from [<c026aeec>] (regulator_disable+0x30/0x6c) <4>[<c026aeec>] (regulator_disable+0x30/0x6c) from [<c037b624>] (omap_hsmmc_235_set_power+0xa4/0xf8) <4>[<c037b624>] (omap_hsmmc_235_set_power+0xa4/0xf8) from [<c037a0ec>] (omap_hsmmc_set_ios+0x70/0x414) <4>[<c037a0ec>] (omap_hsmmc_set_ios+0x70/0x414) from [<c036a4f0>] (mmc_power_off+0x68/0x6c) <4>[<c036a4f0>] (mmc_power_off+0x68/0x6c) from [<c036bce8>] (mmc_rescan+0x300/0x370) <4>[<c036bce8>] (mmc_rescan+0x300/0x370) from [<c00b0544>] (process_one_work+0x254/0x3a4) <4>[<c00b0544>] (process_one_work+0x254/0x3a4) from [<c00b2da0>] (worker_thread+0x21c/0x418) <4>[<c00b2da0>] (worker_thread+0x21c/0x418) from [<c00b6738>] (kthread+0x80/0x88) <4>[<c00b6738>] (kthread+0x80/0x88) from [<c0075350>] (kernel_thread_exit+0x0/0x8) <4>---[ end trace b8775e0155c2d40e ]--- <6>PM: Syncing filesystems ... done. <7>PM: Preparing system for mem sleep <4>Freezing user space processes ... (elapsed 0.02 seconds) done. <4>Freezing remaining freezable tasks ... (elapsed 0.01 seconds) done. <7>PM: Entering mem sleep <7>usb 1-2: unlink qh2-0001/de192bc0 start 1 [2/0 us] <7>usb 1-2: usb suspend <7>hub 2-0:1.0: hub_suspend <7>usb usb2: bus suspend <7>hub 1-0:1.0: hub_suspend <7>usb usb1: bus suspend <7>ehci-omap ehci-omap.0: suspend root hub <4>td028ttec1_panel_suspend() <4>gta04_disable_lcd() <6>PM: suspend of devices complete after 176.849 msecs <6>PM: late suspend of devices complete after 0.488 msecs <6>Powerdomain (core_pwrdm) didn't enter target state 1 <6>Powerdomain (usbhost_pwrdm) didn't enter target state 1 <3>Could not enter target state in pm_suspend <6>PM: early resume of devices complete after 0.274 msecs <4>td028ttec1_panel_resume() <4>gta04_enable_lcd() <7>usb usb2: usb resume <7>usb usb1: usb resume <7>ehci-omap ehci-omap.0: resume root hub <7>hub 2-0:1.0: hub_resume <7>hub 1-0:1.0: hub_resume <7>hub 1-0:1.0: port 2: status 0507 change 0000 <7>usb 1-2: usb resume <7>ehci-omap ehci-omap.0: GetStatus port:2 status 001005 0 ACK POWER sig=se0 PE CONNECT <7>usb 1-2: finish resume <7>ehci-omap ehci-omap.0: reused qh de192bc0 schedule <7>usb 1-2: link qh2-0001/de192bc0 start 1 [2/0 us] <6>PM: resume of devices complete after 783.416 msecs <7>PM: Finishing wakeup. <4>Restarting tasks ... <7>hub 2-0:1.0: state 7 ports 1 chg 0000 evt 0000 <7>hub 1-0:1.0: state 7 ports 3 chg 0000 evt 0000 <6>wakeup wake lock: KeyEvents <4>done. <3>omap_hsmmc omap_hsmmc.1: could not set regulator OCR (-22) <6>suspend: exit suspend, ret = -1 (2000-01-01 00:04:36.879028315 UTC) <6>active wake lock mmc1_detect <4>------------[ cut here ]------------ <4>WARNING: at /data/Projets/replicant/replicant-4.0/kernel/goldelico-3.0/gta04/drivers/regulator/core.c:1406 _regulator_disable+0x60/0x170() <4>unbalanced disables for dummy <4>Modules linked in: <4>[<c00799c0>] (unwind_backtrace+0x0/0xf0) from [<c009d5fc>] (warn_slowpath_common+0x4c/0x64) <4>[<c009d5fc>] (warn_slowpath_common+0x4c/0x64) from [<c009d694>] (warn_slowpath_fmt+0x2c/0x3c) <4>[<c009d694>] (warn_slowpath_fmt+0x2c/0x3c) from [<c026adac>] (_regulator_disable+0x60/0x170) <4>[<c026adac>] (_regulator_disable+0x60/0x170) from [<c026aeec>] (regulator_disable+0x30/0x6c) <4>[<c026aeec>] (regulator_disable+0x30/0x6c) from [<c037b624>] (omap_hsmmc_235_set_power+0xa4/0xf8) <4>[<c037b624>] (omap_hsmmc_235_set_power+0xa4/0xf8) from [<c037a0ec>] (omap_hsmmc_set_ios+0x70/0x414) <4>[<c037a0ec>] (omap_hsmmc_set_ios+0x70/0x414) from [<c036a4f0>] (mmc_power_off+0x68/0x6c) <4>[<c036a4f0>] (mmc_power_off+0x68/0x6c) from [<c036bce8>] (mmc_rescan+0x300/0x370) <4>[<c036bce8>] (mmc_rescan+0x300/0x370) from [<c00b0544>] (process_one_work+0x254/0x3a4) <4>[<c00b0544>] (process_one_work+0x254/0x3a4) from [<c00b2da0>] (worker_thread+0x21c/0x418) <4>[<c00b2da0>] (worker_thread+0x21c/0x418) from [<c00b6738>] (kthread+0x80/0x88) <4>[<c00b6738>] (kthread+0x80/0x88) from [<c0075350>] (kernel_thread_exit+0x0/0x8) <4>---[ end trace b8775e0155c2d40f ]--- <6>PM: Syncing filesystems ... done. <7>PM: Preparing system for mem sleep <4>Freezing user space processes ... (elapsed 0.02 seconds) done. <4>Freezing remaining freezable tasks ... (elapsed 0.01 seconds) done. <7>PM: Entering mem sleep <7>usb 1-2: unlink qh2-0001/de192bc0 start 1 [2/0 us] <7>usb 1-2: usb suspend <7>hub 2-0:1.0: hub_suspend <7>usb usb2: bus suspend <7>hub 1-0:1.0: hub_suspend <7>usb usb1: bus suspend <7>ehci-omap ehci-omap.0: suspend root hub <4>td028ttec1_panel_suspend() <4>gta04_disable_lcd() <6>PM: suspend of devices complete after 175.537 msecs <6>PM: late suspend of devices complete after 0.488 msecs <6>Powerdomain (mpu_pwrdm) didn't enter target state 1 <6>Powerdomain (neon_pwrdm) didn't enter target state 1 <6>Powerdomain (core_pwrdm) didn't enter target state 1 <6>Powerdomain (dss_pwrdm) didn't enter target state 1 <6>Powerdomain (per_pwrdm) didn't enter target state 1 <6>Powerdomain (usbhost_pwrdm) didn't enter target state 1 <3>Could not enter target state in pm_suspend <6>PM: early resume of devices complete after 0.305 msecs <4>td028ttec1_panel_resume() <4>gta04_enable_lcd()
And it goes on and on without going to suspend. The main issue seems to be "usbhost_pwrdm" not being put in target state.
On the p-android-omap3-3.0 kernel from omapzoom, suspend/resume works nicely and produces such messages:
<6>request_suspend_state: sleep (0->3) at 50088989263 (2000-01-01 00:09:55.444274906 UTC) <6>PM: Syncing filesystems ... done. <7>PM: Preparing system for mem sleep <4>Freezing user space processes ... (elapsed 0.02 seconds) done. <4>Freezing remaining freezable tasks ... (elapsed 0.01 seconds) done. <7>PM: Entering mem sleep <7>usb 1-2: usb suspend <7>hub 1-0:1.0: hub_suspend <7>usb usb1: bus suspend <7>ehci-omap ehci-omap.0: ehci_omap_bus_suspend <7>ehci-omap ehci-omap.0: suspend root hub <3>Invalid Device Structure <4>td028ttec1_panel_suspend() <4>gta04_disable_lcd() <6>PM: suspend of devices complete after 189.575 msecs <6>PM: late suspend of devices complete after 0.823 msecs
and
<6>PM: early resume of devices complete after 0.396 msecs <6>wakeup wake lock: event2-1374 <4>td028ttec1_panel_resume() <4>gta04_enable_lcd() <7>usb usb2: usb resume <7>usb usb1: usb resume <7>ehci-omap ehci-omap.0: ehci_omap_bus_resume <7>ehci-omap ehci-omap.0: resume root hub <7>hub 2-0:1.0: hub_resume <7>hub 1-0:1.0: hub_resume <6>PM: resume of devices complete after 690.093 msecs <7>PM: Finishing wakeup. <4>Restarting tasks ... <7>hub 2-0:1.0: state 7 ports 1 chg 0000 evt 0000 <6>request_suspend_state: wakeup (3->0) at 100180908202 (2000-01-01 00:10:52.778015121 UTC) <7>twl4030_usb twl4030_usb: HW_CONDITIONS 0x50/80; link 0 <7>hub 2-0:1.0: hub_resume <4>done. <3>omap_hsmmc omap_hsmmc.1: could not set regulator OCR (-22) <6>suspend: exit suspend, ret = -1 (2000-01-01 00:10:52.809051498 UTC) <3>hub 2-0:1.0: activate --> -22 <7>hub 1-0:1.0: state 7 ports 3 chg 0000 evt 0000 <4>------------[ cut here ]------------ <4>WARNING: at /data/Projets/replicant/replicant-4.0/kernel/goldelico-kernels/gta04/drivers/regulator/core.c:1406 _regulator_disable+0x60/0x170() <7>hub 1-0:1.0: hub_suspend <7>usb usb1: bus auto-suspend <7>ehci-omap ehci-omap.0: ehci_omap_bus_suspend <7>ehci-omap ehci-omap.0: suspend root hub <7>hub 2-0:1.0: state 7 ports 1 chg 0000 evt 0000 <7>hub 2-0:1.0: hub_suspend <4>unbalanced disables for dummy <4>Modules linked in: <4>[<c007ca28>] (unwind_backtrace+0x0/0xf0) from [<c00a8eb4>] (warn_slowpath_common+0x4c/0x64) <7>usb usb2: bus auto-suspend <4>[<c00a8eb4>] (warn_slowpath_common+0x4c/0x64) from [<c00a8f4c>] (warn_slowpath_fmt+0x2c/0x3c) <4>[<c00a8f4c>] (warn_slowpath_fmt+0x2c/0x3c) from [<c029c230>] (_regulator_disable+0x60/0x170) <4>[<c029c230>] (_regulator_disable+0x60/0x170) from [<c029c370>] (regulator_disable+0x30/0x6c) <4>[<c029c370>] (regulator_disable+0x30/0x6c) from [<c03c4230>] (omap_hsmmc_235_set_power+0xa4/0xf8) <4>[<c03c4230>] (omap_hsmmc_235_set_power+0xa4/0xf8) from [<c03c2a40>] (omap_hsmmc_set_ios+0x74/0x408) <4>[<c03c2a40>] (omap_hsmmc_set_ios+0x74/0x408) from [<c03b2d08>] (mmc_power_off+0x68/0x6c) <4>[<c03b2d08>] (mmc_power_off+0x68/0x6c) from [<c03b45e8>] (mmc_rescan+0x300/0x370) <4>[<c03b45e8>] (mmc_rescan+0x300/0x370) from [<c00bbd08>] (process_one_work+0x254/0x3a4) <4>[<c00bbd08>] (process_one_work+0x254/0x3a4) from [<c00be514>] (worker_thread+0x21c/0x418) <4>[<c00be514>] (worker_thread+0x21c/0x418) from [<c00c1e90>] (kthread+0x80/0x88) <4>[<c00c1e90>] (kthread+0x80/0x88) from [<c0078390>] (kernel_thread_exit+0x0/0x8) <4>---[ end trace e53ece62dd004ec8 ]---
Updated by Denis 'GNUtoo' Carikli over 11 years ago
The kernel source to look at is here:
http://omapzoom.org/?p=kernel/omap.git;a=shortlog;h=refs/heads/p-android-omap3-3.0
Updated by Denis 'GNUtoo' Carikli over 11 years ago
SD is not the cause because the problem is still there with:
static int omap_hsmmc_235_set_power(struct device *dev, int slot, int power_on, int vdd) { struct omap_hsmmc_host *host = platform_get_drvdata(to_platform_device(dev)); int ret = 0; return 0;
while the WARNING is gone.
omap_i2c omap_i2c.1: controller timed out twl: i2c_write failed to transfer all messages twl4030_madc twl4030_madc: unable to write sel register 0xB PM: early resume of devices complete after 0.305 msecs
could that be the cause?
it was obtained trough:
none core processors [platform] devices freezer
in pm_test.
+ pressing the power button.
Updated by Paul Kocialkowski over 10 years ago
- Status changed from New to Closed
- Resolution set to fixed
The Linux 3.12 kernel works reasonably well, including suspend/resume and other OMAP3 features as well as Android-specific features!
La route est longue mais la voie est libre !
Updated by Denis 'GNUtoo' Carikli almost 9 years ago
- Category changed from 75 to Framework
- Device GTA04 added