diff mbox

ARM: OMAP3: Fix iva2_pwrdm settings for 3703

Message ID 20130520220540.GL10378@atomide.com (mailing list archive)
State New, archived
Headers show

Commit Message

Tony Lindgren May 20, 2013, 10:05 p.m. UTC
* Yegor Yefremov <yegorslists@googlemail.com> [130517 14:34]:
> On Fri, May 17, 2013 at 8:56 PM, Mark A. Greer <mgreer@animalcreek.com> wrote:
> > On Thu, May 16, 2013 at 12:19:20PM +0200, Yegor Yefremov wrote:
> >> On 15.05.2013 23:50, Mark A. Greer wrote:
> >> > On Wed, May 15, 2013 at 10:07:35AM -0700, Tony Lindgren wrote:
> >
> >> >> Mark, do you have some omap3 with no iva (other than am3703) to test the
> >> >> idle states with?
> >> >
> >> > I have an am35xx which isn't supposed to have an IVA so I can test with it
> >> > (although, I'm not sure how well the kernel works on the am35xx these days).
> >> >
> >> > I'm a bit busy today but I'll try booting the am35xx tomorrow and if it
> >> > comes up, see what I can figure out.
> >>
> >> I think this issue is relevant to am3517 as you can see from this thread: http://thread.gmane.org/gmane.linux.ports.arm.omap/97903
> >> I could boot only with your patch http://www.spinics.net/lists/arm-kernel/msg168865.html
> >>
> >> I have such a system running, so if you have any other patches/ideas to test, I would do it.
> >
> > Yegor, since I've so far been unable to get my am3517evm to fire up, can
> > you play around with the 3517 to see if there appears to be iva registers
> > that can be read/written to safely?  In particular, can the code that idles
> > the iva be run safely on an am3517?
> 
> I'll look into this next week. am3517 and IVA seems to be a really big
> mystery. In the TI forum will be stated, there is no IVA:
> http://e2e.ti.com/support/arm/sitara_arm/f/791/t/150961.aspx, but TRM
> has various appearances of IVA2 registers, but no real
> description/explanation of what is IVA and how to eat it.

On 3703 it looks like the whole omap3_iva_idle() reset is needed, except
for setting the iva2 bootmode to idle. So I'm planning to merge the following
patch with just comments update this week unless somebody has a better fix
in mind.

Regards,

Tony


From: Tony Lindgren <tony@atomide.com>
Date: Tue, 14 May 2013 20:28:15 -0700
Subject: [PATCH] ARM: OMAP3: Fix iva2_pwrdm settings for 3703

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.

It seems that the only part of the reset that may not be needed
is the setting of the iva2 boot mode to idle. But as that register
seems to be there and is harmless if no iva2 is on the SoC, it's
probably safest to do the complete reset.

Signed-off-by: Tony Lindgren <tony@atomide.com>

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

Comments

Yegor Yefremov May 21, 2013, 9:17 a.m. UTC | #1
On Tue, May 21, 2013 at 12:05 AM, Tony Lindgren <tony@atomide.com> wrote:
> * Yegor Yefremov <yegorslists@googlemail.com> [130517 14:34]:
>> On Fri, May 17, 2013 at 8:56 PM, Mark A. Greer <mgreer@animalcreek.com> wrote:
>> > On Thu, May 16, 2013 at 12:19:20PM +0200, Yegor Yefremov wrote:
>> >> On 15.05.2013 23:50, Mark A. Greer wrote:
>> >> > On Wed, May 15, 2013 at 10:07:35AM -0700, Tony Lindgren wrote:
>> >
>> >> >> Mark, do you have some omap3 with no iva (other than am3703) to test the
>> >> >> idle states with?
>> >> >
>> >> > I have an am35xx which isn't supposed to have an IVA so I can test with it
>> >> > (although, I'm not sure how well the kernel works on the am35xx these days).
>> >> >
>> >> > I'm a bit busy today but I'll try booting the am35xx tomorrow and if it
>> >> > comes up, see what I can figure out.
>> >>
>> >> I think this issue is relevant to am3517 as you can see from this thread: http://thread.gmane.org/gmane.linux.ports.arm.omap/97903
>> >> I could boot only with your patch http://www.spinics.net/lists/arm-kernel/msg168865.html
>> >>
>> >> I have such a system running, so if you have any other patches/ideas to test, I would do it.
>> >
>> > Yegor, since I've so far been unable to get my am3517evm to fire up, can
>> > you play around with the 3517 to see if there appears to be iva registers
>> > that can be read/written to safely?  In particular, can the code that idles
>> > the iva be run safely on an am3517?
>>
>> I'll look into this next week. am3517 and IVA seems to be a really big
>> mystery. In the TI forum will be stated, there is no IVA:
>> http://e2e.ti.com/support/arm/sitara_arm/f/791/t/150961.aspx, but TRM
>> has various appearances of IVA2 registers, but no real
>> description/explanation of what is IVA and how to eat it.
>
> On 3703 it looks like the whole omap3_iva_idle() reset is needed, except
> for setting the iva2 bootmode to idle. So I'm planning to merge the following
> patch with just comments update this week unless somebody has a better fix
> in mind.

calling omap3_iva_idle() made no difference so far. I still can boot
3.10-rc2 with 'nohlt' and omap3_iva_idle() and vice versa, without
'nohlt' I cannot boot whether with or without calling
omap3_iva_idle().

BTW Tony I've sent a patch to fix MUSB clock naming. Should I also
make a recent including linux-usb mailing list or can we handle this
internally on omap/arm list?

Yegor
--
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
Mark Greer May 21, 2013, 3:56 p.m. UTC | #2
On Mon, May 20, 2013 at 03:05:40PM -0700, Tony Lindgren wrote:
> * Yegor Yefremov <yegorslists@googlemail.com> [130517 14:34]:
> > On Fri, May 17, 2013 at 8:56 PM, Mark A. Greer <mgreer@animalcreek.com> wrote:
> > > On Thu, May 16, 2013 at 12:19:20PM +0200, Yegor Yefremov wrote:
> > >> On 15.05.2013 23:50, Mark A. Greer wrote:
> > >> > On Wed, May 15, 2013 at 10:07:35AM -0700, Tony Lindgren wrote:
> > >
> > >> >> Mark, do you have some omap3 with no iva (other than am3703) to test the
> > >> >> idle states with?
> > >> >
> > >> > I have an am35xx which isn't supposed to have an IVA so I can test with it
> > >> > (although, I'm not sure how well the kernel works on the am35xx these days).
> > >> >
> > >> > I'm a bit busy today but I'll try booting the am35xx tomorrow and if it
> > >> > comes up, see what I can figure out.
> > >>
> > >> I think this issue is relevant to am3517 as you can see from this thread: http://thread.gmane.org/gmane.linux.ports.arm.omap/97903
> > >> I could boot only with your patch http://www.spinics.net/lists/arm-kernel/msg168865.html
> > >>
> > >> I have such a system running, so if you have any other patches/ideas to test, I would do it.
> > >
> > > Yegor, since I've so far been unable to get my am3517evm to fire up, can
> > > you play around with the 3517 to see if there appears to be iva registers
> > > that can be read/written to safely?  In particular, can the code that idles
> > > the iva be run safely on an am3517?
> > 
> > I'll look into this next week. am3517 and IVA seems to be a really big
> > mystery. In the TI forum will be stated, there is no IVA:
> > http://e2e.ti.com/support/arm/sitara_arm/f/791/t/150961.aspx, but TRM
> > has various appearances of IVA2 registers, but no real
> > description/explanation of what is IVA and how to eat it.
> 
> On 3703 it looks like the whole omap3_iva_idle() reset is needed, except
> for setting the iva2 bootmode to idle. So I'm planning to merge the following
> patch with just comments update this week unless somebody has a better fix
> in mind.
> 
> Regards,
> 
> Tony
> 
> 
> From: Tony Lindgren <tony@atomide.com>
> Date: Tue, 14 May 2013 20:28:15 -0700
> Subject: [PATCH] ARM: OMAP3: Fix iva2_pwrdm settings for 3703
> 
> 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.
> 
> It seems that the only part of the reset that may not be needed
> is the setting of the iva2 boot mode to idle. But as that register
> seems to be there and is harmless if no iva2 is on the SoC, it's
> probably safest to do the complete reset.
> 
> Signed-off-by: Tony Lindgren <tony@atomide.com>
> 
> --- 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();
>  }

I think that patch will work fine.  That's basically how that piece of code
was before a819c4f16 (ARM: OMAP3: PM: Only access IVA if one exists) which
ran fine on the am3517 and am3703 (AFAIK).  In addition, Yegor has verified
that the am3517 still works so...

Acked-by: Mark A. Greer <mgreer@animalcreek.com>
--
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
Kevin Hilman May 21, 2013, 6:20 p.m. UTC | #3
Tony Lindgren <tony@atomide.com> writes:

> * Yegor Yefremov <yegorslists@googlemail.com> [130517 14:34]:
>> On Fri, May 17, 2013 at 8:56 PM, Mark A. Greer <mgreer@animalcreek.com> wrote:
>> > On Thu, May 16, 2013 at 12:19:20PM +0200, Yegor Yefremov wrote:
>> >> On 15.05.2013 23:50, Mark A. Greer wrote:
>> >> > On Wed, May 15, 2013 at 10:07:35AM -0700, Tony Lindgren wrote:
>> >
>> >> >> Mark, do you have some omap3 with no iva (other than am3703) to test the
>> >> >> idle states with?
>> >> >
>> >> > I have an am35xx which isn't supposed to have an IVA so I can test with it
>> >> > (although, I'm not sure how well the kernel works on the am35xx these days).
>> >> >
>> >> > I'm a bit busy today but I'll try booting the am35xx tomorrow and if it
>> >> > comes up, see what I can figure out.
>> >>
>> >> I think this issue is relevant to am3517 as you can see from this
>> >> thread: http://thread.gmane.org/gmane.linux.ports.arm.omap/97903
>> >> I could boot only with your patch http://www.spinics.net/lists/arm-kernel/msg168865.html
>> >>
>> >> I have such a system running, so if you have any other patches/ideas to test, I would do it.
>> >
>> > Yegor, since I've so far been unable to get my am3517evm to fire up, can
>> > you play around with the 3517 to see if there appears to be iva registers
>> > that can be read/written to safely?  In particular, can the code that idles
>> > the iva be run safely on an am3517?
>> 
>> I'll look into this next week. am3517 and IVA seems to be a really big
>> mystery. In the TI forum will be stated, there is no IVA:
>> http://e2e.ti.com/support/arm/sitara_arm/f/791/t/150961.aspx, but TRM
>> has various appearances of IVA2 registers, but no real
>> description/explanation of what is IVA and how to eat it.
>
> On 3703 it looks like the whole omap3_iva_idle() reset is needed, except
> for setting the iva2 bootmode to idle. So I'm planning to merge the following
> patch with just comments update this week unless somebody has a better fix
> in mind.
>
> Regards,
>
> Tony
>
>
> From: Tony Lindgren <tony@atomide.com>
> Date: Tue, 14 May 2013 20:28:15 -0700
> Subject: [PATCH] ARM: OMAP3: Fix iva2_pwrdm settings for 3703
>
> 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.
>
> It seems that the only part of the reset that may not be needed
> is the setting of the iva2 boot mode to idle. But as that register
> seems to be there and is harmless if no iva2 is on the SoC, it's
> probably safest to do the complete reset.
>
> Signed-off-by: Tony Lindgren <tony@atomide.com>

Acked-by: Kevin Hilman <khilman@linaro.org>

> --- 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();
>  }
--
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
Yegor Yefremov May 22, 2013, 8:09 a.m. UTC | #4
On Tue, May 21, 2013 at 8:20 PM, Kevin Hilman <khilman@linaro.org> wrote:
> Tony Lindgren <tony@atomide.com> writes:
>
>> * Yegor Yefremov <yegorslists@googlemail.com> [130517 14:34]:
>>> On Fri, May 17, 2013 at 8:56 PM, Mark A. Greer <mgreer@animalcreek.com> wrote:
>>> > On Thu, May 16, 2013 at 12:19:20PM +0200, Yegor Yefremov wrote:
>>> >> On 15.05.2013 23:50, Mark A. Greer wrote:
>>> >> > On Wed, May 15, 2013 at 10:07:35AM -0700, Tony Lindgren wrote:
>>> >
>>> >> >> Mark, do you have some omap3 with no iva (other than am3703) to test the
>>> >> >> idle states with?
>>> >> >
>>> >> > I have an am35xx which isn't supposed to have an IVA so I can test with it
>>> >> > (although, I'm not sure how well the kernel works on the am35xx these days).
>>> >> >
>>> >> > I'm a bit busy today but I'll try booting the am35xx tomorrow and if it
>>> >> > comes up, see what I can figure out.
>>> >>
>>> >> I think this issue is relevant to am3517 as you can see from this
>>> >> thread: http://thread.gmane.org/gmane.linux.ports.arm.omap/97903
>>> >> I could boot only with your patch http://www.spinics.net/lists/arm-kernel/msg168865.html
>>> >>
>>> >> I have such a system running, so if you have any other patches/ideas to test, I would do it.
>>> >
>>> > Yegor, since I've so far been unable to get my am3517evm to fire up, can
>>> > you play around with the 3517 to see if there appears to be iva registers
>>> > that can be read/written to safely?  In particular, can the code that idles
>>> > the iva be run safely on an am3517?
>>>
>>> I'll look into this next week. am3517 and IVA seems to be a really big
>>> mystery. In the TI forum will be stated, there is no IVA:
>>> http://e2e.ti.com/support/arm/sitara_arm/f/791/t/150961.aspx, but TRM
>>> has various appearances of IVA2 registers, but no real
>>> description/explanation of what is IVA and how to eat it.
>>
>> On 3703 it looks like the whole omap3_iva_idle() reset is needed, except
>> for setting the iva2 bootmode to idle. So I'm planning to merge the following
>> patch with just comments update this week unless somebody has a better fix
>> in mind.
>>
>> Regards,
>>
>> Tony
>>
>>
>> From: Tony Lindgren <tony@atomide.com>
>> Date: Tue, 14 May 2013 20:28:15 -0700
>> Subject: [PATCH] ARM: OMAP3: Fix iva2_pwrdm settings for 3703
>>
>> 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.
>>
>> It seems that the only part of the reset that may not be needed
>> is the setting of the iva2 boot mode to idle. But as that register
>> seems to be there and is harmless if no iva2 is on the SoC, it's
>> probably safest to do the complete reset.
>>
>> Signed-off-by: Tony Lindgren <tony@atomide.com>
>
> Acked-by: Kevin Hilman <khilman@linaro.org>

Tested-by: Yegor Yefremov <yegorslists@googlemail.com>
--
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
diff mbox

Patch

--- 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();
 }