From: Archit Taneja <a0393947@ti.com>
To: Joe Woodward <jw@terrafix.co.uk>
Cc: Kevin Hilman <khilman@ti.com>,
tomi.valkeinen@ti.com, linux-omap@vger.kernel.org,
jaswinder.singh@linaro.org
Subject: Re: 3.5-rc3: PM/DSS broken (was vdd_mpu_iva warnings)
Date: Tue, 3 Jul 2012 16:29:21 +0530 [thread overview]
Message-ID: <4FF2D089.8030507@ti.com> (raw)
In-Reply-To: <WC20120703091232.480345@terrafix.co.uk>
Hi,
On Tuesday 03 July 2012 02:42 PM, Joe Woodward wrote:
>
>
> -----Original Message-----
> From: Archit Taneja<a0393947@ti.com>
> To: Joe Woodward<jw@terrafix.co.uk>
> Cc: Kevin Hilman<khilman@ti.com>,<tomi.valkeinen@ti.com>, "linux-omap@vger.kernel.org"<linux-omap@vger.kernel.org>
> Date: Tue, 3 Jul 2012 14:29:34 +0530
> Subject: Re: 3.5-rc3: PM/DSS broken (was vdd_mpu_iva warnings)
>
>> On Tuesday 03 July 2012 02:07 PM, Joe Woodward wrote:
>>> -----Original Message-----
>>> From: Kevin Hilman<khilman@ti.com>
>>> To: "Joe Woodward"<jw@terrafix.co.uk>
>>> Cc: "linux-omap\@vger.kernel.org"<linux-omap@vger.kernel.org>
>>> Date: Mon, 02 Jul 2012 14:19:49 -0700
>>> Subject: Re: 3.5-rc3: vdd_mpu_iva warnings
>>>
>>>> "Joe Woodward"<jw@terrafix.co.uk> writes:
>>>>
>>>>> I have a GUMSTIX Overo AirSTORM module (AM3703-based).
>>>>>
>>>>> When booting the kernel the following features are listed:
>>>>> OMAP3630 ES1.2 (l2cache neon isp 192mhz_clk )
>>>>>
>>>>> After booting I get the following (repeating every few seconds):
>>>>>
>>>>> [ 81.122558] voltdm_scale: No voltage scale API registered for
>>>> vdd_mpu_iva
>>>>> [ 81.130340] platform mpu.0: omap_target: unable to scale voltage
>>>> up.
>>>>>
>>>>
>>>> BTW, after boot, can you run the shell snippet below. This should
>> run
>>>> the board through MPU DVFS for all the available OPPs:
>>>>
>>>> Thanks,
>>>>
>>>> Kevin
>>>>
>>>
>>> First, apologies...
>>>
>>> I had added a GPIO control to board-overo.c, and after cleaning and
>>> starting again I realised that in the process I had deleted an
>>> important line.
>>>
>>> So, the warnings I posted are not present (i.e. the power domains
>>> do get registered), sorry for the noise!
>>>
>>> But, I still have problems with 3.5-rc5 with system suspend and DSS.
>>>
>>> I've started again with a completely clean area, built using
>>> omap2plus_defconfig with the following changes (DSS built-in, and
>>> use of devtmpfs and SquashFS):
>>> CONFIG_OMAP2_DSS=y
>>> CONFIG_OMAP2_VRAM_SIZE=4
>>> CONFIG_FB_OMAP2=y
>>>
>>> CONFIG_DEVTMPFS=y
>>> CONFIG_DEVTMPFS_MOUNT=y
>>> CONFIG_SQUASHFS=y
>>>
>
> I should add that I also set the generic panel to be built-in:
> CONFIG_PANEL_GENERIC_DPI=y
>
>>> I also modified board-overo.c to switch from DVI to LCD as the
>> default device:
>>> static struct omap_dss_board_info overo_dss_data = {
>>> .num_devices = ARRAY_SIZE(overo_dss_devices),
>>> .devices = overo_dss_devices,
>>> // .default_device =&overo_dvi_device,
>>> .default_device =&overo_lcd43_device,
>>> };
>>>
>>> And when suspending I get:
>>>
>>> # echo mem> /sys/power/state
>>> [ 20.138214] PM: Syncing filesystems ... done.
>>> [ 20.158477] Freezing user space processes ... (elapsed 0.01
>> seconds) done.
>>> [ 20.184509] Freezing remaining freezable tasks ... (elapsed 0.02
>> seconds) done.
>>> [ 20.215698] Suspending console(s) (use no_console_suspend to
>> debug)
>>> [ 20.804626] Modules linked in:
>>> [ 20.401611] PM: suspend of devices complete after 175.963 msecs
>>> [ 20.404388] PM: late suspend of devices complete after 2.777 msecs
>>> [ 20.409301] PM: noirq suspend of devices complete after 4.882
>> msecs
>>> [ 20.409362] Disabling non-boot CPUs ...
>>> [ 20.428527] Powerdomain (core_pwrdm) didn't enter target state 1
>>> [ 20.428558] Could not enter target state in pm_suspend
>>> [ 20.431060] PM: noirq resume of devices complete after 2.319 msecs
>>> [ 20.434173] PM: early resume of devices complete after 1.739 msecs
>>> [ 20.803344] mmc1: error -110 during resume (card was removed?)
>>> [ 20.804595] ------------[ cut here ]------------
>>> [ 20.804626] WARNING: at drivers/video/omap2/dss/dispc.c:376
>> dispc_runtime_get+0x50/0x64()
>>> [ 20.804687] [<c001b61c>] (unwind_backtrace+0x0/0xf0) from
>> [<c00401fc>] (warn_slowpath_common+0x4c/0x64)
>>> [ 20.804718] [<c00401fc>] (warn_slowpath_common+0x4c/0x64) from
>> [<c0040230>] (warn_slowpath_null+0x1c/0x24)
>>> [ 20.804718] [<c0040230>] (warn_slowpath_null+0x1c/0x24) from
>> [<c02a72d4>] (dispc_runtime_get+0x50/0x64)
>>> [ 20.804748] [<c02a72d4>] (dispc_runtime_get+0x50/0x64) from
>> [<c02b2d80>] (omapdss_dpi_display_enable+0x48/0x230)
>>> [ 20.804779] [<c02b2d80>] (omapdss_dpi_display_enable+0x48/0x230)
>> from [<c02c9a28>] (generic_dpi_panel_power_on+0x2c/0x78)
>>> [ 20.804779] [<c02c9a28>] (generic_dpi_panel_power_on+0x2c/0x78)
>> from [<c02c9a80>] (generic_dpi_panel_resume+0xc/0x1c)
>>> [ 20.804809] [<c02c9a80>] (generic_dpi_panel_resume+0xc/0x1c) from
>> [<c02ae28c>] (dss_resume_device+0x28/0x40)
>>> [ 20.804840] [<c02ae28c>] (dss_resume_device+0x28/0x40) from
>> [<c02fc848>] (bus_for_each_dev+0x50/0x7c)
>>> [ 20.804870] [<c02fc848>] (bus_for_each_dev+0x50/0x7c) from
>> [<c02ff530>] (platform_pm_resume+0x2c/0x50)
>>> [ 20.804901] [<c02ff530>] (platform_pm_resume+0x2c/0x50) from
>> [<c0303aa4>] (dpm_run_callback.clone.7+0x30/0xb0)
>>> [ 20.804901] [<c0303aa4>] (dpm_run_callback.clone.7+0x30/0xb0) from
>> [<c0304828>] (device_resume+0xc8/0x188)
>>> [ 20.804931] [<c0304828>] (device_resume+0xc8/0x188) from
>> [<c0304c50>] (dpm_resume+0xfc/0x21c)
>>> [ 20.804962] [<c0304c50>] (dpm_resume+0xfc/0x21c) from [<c0304f04>]
>> (dpm_resume_end+0xc/0x18)
>>> [ 20.804962] [<c0304f04>] (dpm_resume_end+0xc/0x18) from
>> [<c007ffe4>] (suspend_devices_and_enter+0x15c/0x2d0)
>>> [ 20.804992] [<c007ffe4>] (suspend_devices_and_enter+0x15c/0x2d0)
>> from [<c00802e4>] (pm_suspend+0x18c/0x208)
>>> [ 20.805023] [<c00802e4>] (pm_suspend+0x18c/0x208) from
>> [<c007f588>] (state_store+0x120/0x134)
>>> [ 20.805053] [<c007f588>] (state_store+0x120/0x134) from
>> [<c026800c>] (kobj_attr_store+0x14/0x20)
>>> [ 20.805053] [<c026800c>] (kobj_attr_store+0x14/0x20) from
>> [<c0169ff4>] (sysfs_write_file+0x100/0x184)
>>> [ 20.805084] [<c0169ff4>] (sysfs_write_file+0x100/0x184) from
>> [<c01093fc>] (vfs_write+0xb4/0x148)
>>> [ 20.805114] [<c01093fc>] (vfs_write+0xb4/0x148) from [<c0109684>]
>> (sys_write+0x40/0x70)
>>> [ 20.805145] [<c0109684>] (sys_write+0x40/0x70) from [<c0013d60>]
>> (ret_fast_syscall+0x0/0x3c)
>>> [ 20.805145] ---[ end trace c7f1420c2bbb60a2 ]---
>>> [ 20.805511] dpm_run_callback(): platform_pm_resume+0x0/0x50
>> returns -13
>>> [ 20.805541] PM: Device omapdss failed to resume: error -13
>>> [ 20.857238] PM: resume of devices complete after 422.943 msecs
>>> [ 21.162658] Restarting tasks ... done.
>>> sh: write error: Operation not permitted
>>>
>>> This returns immediately.
>>>
>>> Any ideas?
>>
>> Could you try to just disable/enable the panel and see if you get the
>> same error? disabling/enabling result in the same code flow from a DSS
>> point of view:
>>
>> echo 0> /sys/devices/platform/omapdss/display0/enabled
>> echo 1> /sys/devices/platform/omapdss/display0/enabled
>
> The LCD43 gets registered as display2, so I did:
> echo 0> /sys/devices/platform/omapdss/display2/enabled
> echo 1> /sys/devices/platform/omapdss/display2/enabled
>
> And this gave no warnings at all.
>
> If I suspend with the panel disabled then the DSS warnings go away - however the suspend
> call still returns immediately saying:
> # echo 0> /sys/devices/platform/omapdss/display2/enabled
> # echo mem> /sys/power/state
> [ 156.381134] PM: Syncing filesystems ... done.
> [ 156.401580] Freezing user space processes ... (elapsed 0.01 seconds) done.
> [ 156.426788] Freezing remaining freezable tasks ... (elapsed 0.02 seconds) done.
> [ 156.458038] Suspending console(s) (use no_console_suspend to debug)
> [ 156.636169] PM: suspend of devices complete after 168.090 msecs
> [ 156.639007] PM: late suspend of devices complete after 2.807 msecs
> [ 156.643981] PM: noirq suspend of devices complete after 4.943 msecs
> [ 156.644012] Disabling non-boot CPUs ...
> [ 157.100738] Powerdomain (core_pwrdm) didn't enter target state 1
> [ 157.100738] Could not enter target state in pm_suspend
> [ 157.103271] PM: noirq resume of devices complete after 2.319 msecs
> [ 157.106475] PM: early resume of devices complete after 1.739 msecs
> [ 157.451843] mmc1: error -110 during resume (card was removed?)
> [ 157.505706] PM: resume of devices complete after 399.047 msecs
> [ 157.569976] Restarting tasks ... done.
> sh: write error: Operation not permitted
> #
>
> If I then re-enable the panel and suspend the warnings come back:
> # echo 1> /sys/devices/platform/omapdss/display2/enabled
> # echo mem> /sys/power/state
> [ 161.922912] PM: Syncing filesystems ... done.
> [ 161.931243] Freezing user space processes ... (elapsed 0.02 seconds) done.
> [ 161.961486] Freezing remaining freezable tasks ... (elapsed 0.02 seconds) done.
> [ 161.992645] Suspending console(s) (use no_console_suspend to debug)
> [ 162.636138] Modules linked in:
> [ 162.170776] PM: suspend of devices complete after 168.089 msecs
> [ 162.173522] PM: late suspend of devices complete after 2.715 msecs
> [ 162.178192] PM: noirq suspend of devices complete after 4.638 msecs
> [ 162.178192] Disabling non-boot CPUs ...
> [ 162.283081] Powerdomain (core_pwrdm) didn't enter target state 1
> [ 162.283081] Could not enter target state in pm_suspend
> [ 162.285583] PM: noirq resume of devices complete after 2.319 msecs
> [ 162.288757] PM: early resume of devices complete after 1.739 msecs
> [ 162.634765] mmc1: error -110 during resume (card was removed?)
> [ 162.636108] ------------[ cut here ]------------
> [ 162.636138] WARNING: at drivers/video/omap2/dss/dispc.c:376 dispc_runtime_get+0x50/0x64()
> [ 162.636199] [<c001b61c>] (unwind_backtrace+0x0/0xf0) from [<c00401fc>] (warn_slowpath_common+0x4c/0x64)
> [ 162.636230] [<c00401fc>] (warn_slowpath_common+0x4c/0x64) from [<c0040230>] (warn_slowpath_null+0x1c/0x24)
> [ 162.636230] [<c0040230>] (warn_slowpath_null+0x1c/0x24) from [<c02a72d4>] (dispc_runtime_get+0x50/0x64)
> [ 162.636260] [<c02a72d4>] (dispc_runtime_get+0x50/0x64) from [<c02b2d80>] (omapdss_dpi_display_enable+0x48/0x230)
> [ 162.636291] [<c02b2d80>] (omapdss_dpi_display_enable+0x48/0x230) from [<c02c9a28>] (generic_dpi_panel_power_on+0x2c/0x78)
> [ 162.636291] [<c02c9a28>] (generic_dpi_panel_power_on+0x2c/0x78) from [<c02c9a80>] (generic_dpi_panel_resume+0xc/0x1c)
> [ 162.636322] [<c02c9a80>] (generic_dpi_panel_resume+0xc/0x1c) from [<c02ae28c>] (dss_resume_device+0x28/0x40)
> [ 162.636352] [<c02ae28c>] (dss_resume_device+0x28/0x40) from [<c02fc848>] (bus_for_each_dev+0x50/0x7c)
> [ 162.636383] [<c02fc848>] (bus_for_each_dev+0x50/0x7c) from [<c02ff530>] (platform_pm_resume+0x2c/0x50)
> [ 162.636413] [<c02ff530>] (platform_pm_resume+0x2c/0x50) from [<c0303aa4>] (dpm_run_callback.clone.7+0x30/0xb0)
> [ 162.636413] [<c0303aa4>] (dpm_run_callback.clone.7+0x30/0xb0) from [<c0304828>] (device_resume+0xc8/0x188)
> [ 162.636444] [<c0304828>] (device_resume+0xc8/0x188) from [<c0304c50>] (dpm_resume+0xfc/0x21c)
> [ 162.636474] [<c0304c50>] (dpm_resume+0xfc/0x21c) from [<c0304f04>] (dpm_resume_end+0xc/0x18)
> [ 162.636505] [<c0304f04>] (dpm_resume_end+0xc/0x18) from [<c007ffe4>] (suspend_devices_and_enter+0x15c/0x2d0)
> [ 162.636505] [<c007ffe4>] (suspend_devices_and_enter+0x15c/0x2d0) from [<c00802e4>] (pm_suspend+0x18c/0x208)
> [ 162.636535] [<c00802e4>] (pm_suspend+0x18c/0x208) from [<c007f588>] (state_store+0x120/0x134)
> [ 162.636566] [<c007f588>] (state_store+0x120/0x134) from [<c026800c>] (kobj_attr_store+0x14/0x20)
> [ 162.636566] [<c026800c>] (kobj_attr_store+0x14/0x20) from [<c0169ff4>] (sysfs_write_file+0x100/0x184)
> [ 162.636596] [<c0169ff4>] (sysfs_write_file+0x100/0x184) from [<c01093fc>] (vfs_write+0xb4/0x148)
> [ 162.636627] [<c01093fc>] (vfs_write+0xb4/0x148) from [<c0109684>] (sys_write+0x40/0x70)
> [ 162.636657] [<c0109684>] (sys_write+0x40/0x70) from [<c0013d60>] (ret_fast_syscall+0x0/0x3c)
> [ 162.636657] ---[ end trace a8835c35315270a8 ]---
> [ 162.637054] dpm_run_callback(): platform_pm_resume+0x0/0x50 returns -13
> [ 162.637084] PM: Device omapdss failed to resume: error -13
> [ 162.688385] PM: resume of devices complete after 399.505 msecs
> [ 162.993499] Restarting tasks ... done.
> sh: write error: Operation not permitted
> #
Thanks for testing this out.
I was going through Tomi's queue for the 3.6 merge window:
git://gitorious.org/linux-omap-dss2/linux.git master
There is a commit called:
2b8501d777346ce1d4fe99167e9b3c0e42aae7a8
OMAPDSS: Use PM notifiers for system suspend
The commit message mentions the issue you see, and seems to resolve it.
Could you give this a try?
Tomi is out on vacation, and I don't know why this wasn't intended for
the 3.5-rcs, maybe there are still some discussion going on about this?
Copping Jassi who was involved with this commit.
Archit
>
> Cheers,
> Joe
>
>>
>> The error returned from the runtime_resume call is -ENOACCES, which by
>> looking at the code, is returned by rpm_resume() when:
>>
>> dev->power.disable_depth> 0
>>
>> I don't know what that means, does someone have any idea?
>>
>> Archit
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-omap"
>> in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
>
>
>
next prev parent reply other threads:[~2012-07-03 11:00 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-18 10:39 3.5-rc3: vdd_mpu_iva warnings Joe Woodward
2012-06-27 15:22 ` Joe Woodward
2012-07-02 21:18 ` Kevin Hilman
2012-07-02 21:19 ` Kevin Hilman
2012-07-03 8:37 ` 3.5-rc3: PM/DSS broken (was vdd_mpu_iva warnings) Joe Woodward
2012-07-03 8:59 ` Archit Taneja
2012-07-03 9:12 ` Joe Woodward
2012-07-03 10:59 ` Archit Taneja [this message]
2012-07-03 12:31 ` Jassi Brar
2012-07-03 13:52 ` Joe Woodward
2012-07-04 14:01 ` Kevin Hilman
2012-07-05 7:58 ` Joe Woodward
2012-07-04 6:28 ` Tomi Valkeinen
2012-07-04 10:38 ` Archit Taneja
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4FF2D089.8030507@ti.com \
--to=a0393947@ti.com \
--cc=jaswinder.singh@linaro.org \
--cc=jw@terrafix.co.uk \
--cc=khilman@ti.com \
--cc=linux-omap@vger.kernel.org \
--cc=tomi.valkeinen@ti.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.