From: Tony Lindgren <tony@atomide.com>
To: "Mark A. Greer" <mgreer@animalcreek.com>
Cc: linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
Kevin Hilman <khilman@linaro.org>, Paul Walmsley <paul@pwsan.com>
Subject: Re: [PATCH] ARM: OMAP3: Fix iva2_pwrdm settings for 3703
Date: Wed, 15 May 2013 10:07:35 -0700 [thread overview]
Message-ID: <20130515170734.GI5600@atomide.com> (raw)
In-Reply-To: <20130515015212.GB3268@animalcreek.com>
* Mark A. Greer <mgreer@animalcreek.com> [130514 18:57]:
> On Tue, May 14, 2013 at 05:25:37PM -0700, Tony Lindgren wrote:
> > Commit a819c4f1 (ARM: OMAP3: PM: Only access IVA if one exists)
> > changed PM to not access IVA registers on omaps that don't have
> > them. Turns out we still need to idle iva2 as otherwise iva2_pwrdm
> > will stay on and block deeper idle states.
> >
> > Signed-off-by: Tony Lindgren <tony@atomide.com>
> >
> > ---
> >
> > Paul & Kevin, do you have better ideas for fixing this?
> >
> > --- a/arch/arm/mach-omap2/pm34xx.c
> > +++ b/arch/arm/mach-omap2/pm34xx.c
> > @@ -546,8 +546,10 @@ static void __init prcm_setup_regs(void)
> > /* Clear any pending PRCM interrupts */
> > omap2_prm_write_mod_reg(0, OCP_MOD, OMAP3_PRM_IRQSTATUS_MPU_OFFSET);
> >
> > - if (omap3_has_iva())
> > - omap3_iva_idle();
> > + /*
> > + * We need to idle iva2_pwrdm even on am3703 with no iva2.
> > + */
> > + omap3_iva_idle();
> >
> > omap3_d2d_idle();
> > }
>
> [Kevin, Paul, some background: Tony discovered that the am3703 needs
> to have omap3_iva_idle() called even though its not supposed to have
> an IVA.]
>
> This is potentially bad for other SoC's that don't have an IVA so I don't
> think its the way to go. My preference would be to set the OMAP3_HAS_IVA
> flag for the am3703 only since its the one with the bug. Maybe something
> in id.c:omap3xxx_check_features() but I don't see any existing way to check
> for an am3703 vs. other am37xx SoCs. Any ideas?
>
> Another option, I suppose, is a dts entry but I don't like that at all.
It seems that iva2_pwrdm is there for all omap3 even if OMAP3_HAS_IVA
flag is unset. And if that's the case, iva2 clocks still need to be idled
in all cases.
It's possible that not all steps in omap3_iva_idle() are needed though.
I can debug further to see which part of the omap3_iva_idle() are needed.
Mark, do you have some omap3 with no iva (other than am3703) to test the
idle states with?
Regards,
Tony
WARNING: multiple messages have this Message-ID (diff)
From: tony@atomide.com (Tony Lindgren)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] ARM: OMAP3: Fix iva2_pwrdm settings for 3703
Date: Wed, 15 May 2013 10:07:35 -0700 [thread overview]
Message-ID: <20130515170734.GI5600@atomide.com> (raw)
In-Reply-To: <20130515015212.GB3268@animalcreek.com>
* Mark A. Greer <mgreer@animalcreek.com> [130514 18:57]:
> On Tue, May 14, 2013 at 05:25:37PM -0700, Tony Lindgren wrote:
> > Commit a819c4f1 (ARM: OMAP3: PM: Only access IVA if one exists)
> > changed PM to not access IVA registers on omaps that don't have
> > them. Turns out we still need to idle iva2 as otherwise iva2_pwrdm
> > will stay on and block deeper idle states.
> >
> > Signed-off-by: Tony Lindgren <tony@atomide.com>
> >
> > ---
> >
> > Paul & Kevin, do you have better ideas for fixing this?
> >
> > --- a/arch/arm/mach-omap2/pm34xx.c
> > +++ b/arch/arm/mach-omap2/pm34xx.c
> > @@ -546,8 +546,10 @@ static void __init prcm_setup_regs(void)
> > /* Clear any pending PRCM interrupts */
> > omap2_prm_write_mod_reg(0, OCP_MOD, OMAP3_PRM_IRQSTATUS_MPU_OFFSET);
> >
> > - if (omap3_has_iva())
> > - omap3_iva_idle();
> > + /*
> > + * We need to idle iva2_pwrdm even on am3703 with no iva2.
> > + */
> > + omap3_iva_idle();
> >
> > omap3_d2d_idle();
> > }
>
> [Kevin, Paul, some background: Tony discovered that the am3703 needs
> to have omap3_iva_idle() called even though its not supposed to have
> an IVA.]
>
> This is potentially bad for other SoC's that don't have an IVA so I don't
> think its the way to go. My preference would be to set the OMAP3_HAS_IVA
> flag for the am3703 only since its the one with the bug. Maybe something
> in id.c:omap3xxx_check_features() but I don't see any existing way to check
> for an am3703 vs. other am37xx SoCs. Any ideas?
>
> Another option, I suppose, is a dts entry but I don't like that at all.
It seems that iva2_pwrdm is there for all omap3 even if OMAP3_HAS_IVA
flag is unset. And if that's the case, iva2 clocks still need to be idled
in all cases.
It's possible that not all steps in omap3_iva_idle() are needed though.
I can debug further to see which part of the omap3_iva_idle() are needed.
Mark, do you have some omap3 with no iva (other than am3703) to test the
idle states with?
Regards,
Tony
next prev parent reply other threads:[~2013-05-15 17:07 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-15 0:25 [PATCH] ARM: OMAP3: Fix iva2_pwrdm settings for 3703 Tony Lindgren
2013-05-15 1:52 ` Mark A. Greer
2013-05-15 17:07 ` Tony Lindgren [this message]
2013-05-15 17:07 ` Tony Lindgren
2013-05-15 21:50 ` Mark A. Greer
2013-05-15 21:50 ` Mark A. Greer
2013-05-16 10:19 ` Yegor Yefremov
2013-05-16 10:19 ` Yegor Yefremov
2013-05-16 18:35 ` Tony Lindgren
2013-05-16 18:35 ` Tony Lindgren
2013-05-16 18:54 ` Tony Lindgren
2013-05-16 18:54 ` Tony Lindgren
2013-05-17 18:47 ` Mark A. Greer
2013-05-17 18:47 ` Mark A. Greer
2013-05-17 18:56 ` Mark A. Greer
2013-05-17 18:56 ` Mark A. Greer
2013-05-17 21:28 ` Yegor Yefremov
2013-05-17 21:28 ` Yegor Yefremov
2013-05-20 22:05 ` Tony Lindgren
2013-05-20 22:05 ` Tony Lindgren
2013-05-21 9:17 ` Yegor Yefremov
2013-05-21 9:17 ` Yegor Yefremov
2013-05-21 15:56 ` Mark A. Greer
2013-05-21 15:56 ` Mark A. Greer
2013-05-21 18:20 ` Kevin Hilman
2013-05-21 18:20 ` Kevin Hilman
2013-05-22 8:09 ` Yegor Yefremov
2013-05-22 8:09 ` Yegor Yefremov
2013-05-17 21:05 ` Mark A. Greer
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=20130515170734.GI5600@atomide.com \
--to=tony@atomide.com \
--cc=khilman@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-omap@vger.kernel.org \
--cc=mgreer@animalcreek.com \
--cc=paul@pwsan.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.