Project

General

Profile

Issue #537

GTA04 3.0 Kernel missing features

Added by Paul Kocialkowski over 7 years ago. Updated almost 5 years ago.

Status:
Closed
Priority:
High
Category:
Framework
Target version:
Start date:
05/20/2013
Due date:
% Done:

0%

Estimated time:
Resolution:
fixed
Device:
GTA04
Grant:

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 ]---

#2

Updated by Denis 'GNUtoo' Carikli over 7 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.

#3

Updated by Paul Kocialkowski over 6 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 !

#4

Updated by Denis 'GNUtoo' Carikli almost 5 years ago

  • Category changed from 75 to Framework
  • Device GTA04 added

Also available in: Atom PDF