...snip...
> > Hmm, interesting, I don't see this on my 3730-based Over FireSTORM.
> >
> > But, after "converting" mine into an AirStorm[1], I see the same
> errors
> > as you're seeing. We're obviously doing something wrong when IVA
> and/or
> > SGX are not present, so I will look into it.
>
> With the hack below on top of my pm branch, can you try to
> suspend/resume on your AirSTORM?
>
> You'll get a bunch of noise from the clockdomain code becasue of the
> missing power domains, but you can ignore them.
>
> I'm hoping this will fix your issue. Obviously, this hack is not a
> real
> fix but just a test to see if the problem is where I think it is. If
> so, then I know the right solution and it's been discussed before but
> never been a priority (at least for me) to fix.
>
> Basically, we still need to fix up the registration of certain hwmods
> and powerdomains based on whether or not certain IPs exist or not. We
> currently are rather blindly registering the hwmods for IVA, GFX etc.
>
> Kevin
>
After applying the patch (and also your GPIO fix for the ads7846).
As you said, when booting lots of warnings are spat out:
[ 0.000000] ------------[ cut here ]------------
[ 0.000000] WARNING: at arch/arm/mach-omap2/clockdomain.c:237
_resolve_clkdm_deps.clone.0+0x98/0x108()
[ 0.000000] Modules linked in:
[ 0.000000]
[ 0.000000] [<c001b75c>] (unwind_backtrace+0x0/0xf0) from [<c0041788>]
(warn_slowpath_common+0x4c/0x64)
[ 0.000000] [<c0041788>] (warn_slowpath_common+0x4c/0x64) from [<c0041834>]
(warn_slowpath_fmt+0x30/0x40)
[ 0.000000] [<c0041834>] (warn_slowpath_fmt+0x30/0x40) from [<c00321a0>]
(_resolve_clkdm_deps.clone.0+0x98/0x108)
[ 0.000000] [<c00321a0>] (_resolve_clkdm_deps.clone.0+0x98/0x108) from
[<c0032bb8>] (clkdm_complete_init+0x3c/0xa0)
[ 0.000000] [<c0032bb8>] (clkdm_complete_init+0x3c/0xa0) from [<c06d2458>]
(omap3_init_early+0x20/0x30)
[ 0.000000] [<c06d2458>] (omap3_init_early+0x20/0x30) from [<c06ce1a8>]
(setup_arch+0x814/0x934)
[ 0.000000] [<c06ce1a8>] (setup_arch+0x814/0x934) from [<c06ca584>]
(start_kernel+0x88/0x300)
[ 0.000000] [<c06ca584>] (start_kernel+0x88/0x300) from [<80008044>]
(0x80008044)
[ 0.000000] ---[ end trace 1b75b31a2719ed1c ]---
And now when suspending I get:
# echo mem > /sys/power/state
[ 78.174713] PM: Syncing filesystems ... done.
[ 78.190582] Freezing user space processes ... (elapsed 0.01 seconds) done.
[ 78.216430] Freezing remaining freezable tasks ... (elapsed 0.02 seconds)
done.
[ 78.247558] Suspending console(s) (use no_console_suspend to debug)
[ 78.379241] PM: suspend of devices complete after 120.605 msecs
[ 78.382934] PM: late suspend of devices complete after 3.692 msecs
[ 78.388671] PM: noirq suspend of devices complete after 5.706 msecs
[ 78.388732] Disabling non-boot CPUs ...
[ 107.219818] Powerdomain (core_pwrdm) didn't enter target state 1
[ 107.219818] Could not enter target state in pm_suspend
[ 107.222808] PM: noirq resume of devices complete after 2.838 msecs
[ 107.226684] PM: early resume of devices complete after 2.380 msecs
[ 107.592620] mmc1: error -110 during resume (card was removed?)
[ 107.602752] PM: resume of devices complete after 375.946 msecs
[ 107.667449] Restarting tasks ... done.
sh: write error: Operation not permitted
So most of the warnings have gone, but core still fails to enter the target
state.
This is sitll using the omap2plus_defconfig with:
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_DMADEVICES=y
CONFIG_DMA_OMAP=y
CONFIG_SQUASHFS=y
All running from RAM-based RFS.
Cheers,
Joe
> diff --git a/arch/arm/mach-omap2/powerdomains3xxx_data.c
> b/arch/arm/mach-omap2/powerdomains3xxx_data.c
> index bb883e4..b3568bb 100644
> --- a/arch/arm/mach-omap2/powerdomains3xxx_data.c
> +++ b/arch/arm/mach-omap2/powerdomains3xxx_data.c
> @@ -341,7 +341,7 @@ static struct powerdomain dpll5_pwrdm = {
> /* As powerdomains are added or removed above, this list must also be
> changed */
> static struct powerdomain *powerdomains_omap3430_common[] __initdata =
> {
> &wkup_omap2_pwrdm,
> - &iva2_pwrdm,
> + /* &iva2_pwrdm, */
> &mpu_3xxx_pwrdm,
> &neon_pwrdm,
> &cam_pwrdm,
> @@ -373,7 +373,7 @@ static struct powerdomain
> *powerdomains_omap3430es2_es3_0[] __initdata = {
> /* also includes 3630ES1.1+ */
> static struct powerdomain *powerdomains_omap3430es3_1plus[] __initdata
> = {
> &core_3xxx_es3_1_pwrdm,
> - &sgx_pwrdm,
> + /* &sgx_pwrdm, */
> &usbhost_pwrdm,
> &dpll5_pwrdm,
> NULL
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap"
> in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html