diff mbox

ARM: AM43XX: hwmod: Fix RSTST register offset for pruss

Message ID 1466394745-983-1-git-send-email-j-keerthy@ti.com (mailing list archive)
State New, archived
Headers show

Commit Message

J, KEERTHY June 20, 2016, 3:52 a.m. UTC
pruss hwmod RSTST register wrongly points to PWRSTCTRL register in case of
am43xx. Fix the RSTST register offset value.

This can lead to setting of wrong power state values for PER domain.

Fixes: 1c7e224d ("ARM: OMAP2+: hwmod: AM335x: runtime register update")
Signed-off-by: Keerthy <j-keerthy@ti.com>
---
 arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c | 1 +
 arch/arm/mach-omap2/prcm43xx.h                          | 1 +
 2 files changed, 2 insertions(+)

Comments

Afzal Mohammed June 20, 2016, 7:05 a.m. UTC | #1
Hi,

J, KEERTHY wrote on Monday, June 20, 2016 9:22 AM:

> pruss hwmod RSTST register wrongly points to PWRSTCTRL register in case of
> am43xx. Fix the RSTST register offset value.

> This can lead to setting of wrong power state values for PER domain.

Just curious, does it happen or noticed by going thr' the code ?

Regards
afzal
--
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
Keerthy June 20, 2016, 8:23 a.m. UTC | #2
On Monday 20 June 2016 12:35 PM, Mohammed, Afzal wrote:
> Hi,
>
> J, KEERTHY wrote on Monday, June 20, 2016 9:22 AM:
>
>> pruss hwmod RSTST register wrongly points to PWRSTCTRL register in case of
>> am43xx. Fix the RSTST register offset value.
>
>> This can lead to setting of wrong power state values for PER domain.
>
> Just curious, does it happen or noticed by going thr' the code ?

No i was trying omap4_prminst_deassert_hardreset on AM43XX on my local 
tree and i saw issues and then saw that RSTST register offsets were 
wrongly populated. Hence fixing the same.

>
> Regards
> afzal
>
--
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
Suman Anna June 20, 2016, 4:19 p.m. UTC | #3
Hi Afzal,

On 06/20/2016 03:23 AM, Keerthy wrote:
> 
> 
> On Monday 20 June 2016 12:35 PM, Mohammed, Afzal wrote:
>> Hi,
>>
>> J, KEERTHY wrote on Monday, June 20, 2016 9:22 AM:
>>
>>> pruss hwmod RSTST register wrongly points to PWRSTCTRL register in
>>> case of
>>> am43xx. Fix the RSTST register offset value.
>>
>>> This can lead to setting of wrong power state values for PER domain.
>>
>> Just curious, does it happen or noticed by going thr' the code ?

It does happen when the pruss module is exercised. We found this when we
tried to do a standby test on suspend, and while it worked on AM33xx,
AM437x failed because of this difference.

regards
Suman

> 
> No i was trying omap4_prminst_deassert_hardreset on AM43XX on my local
> tree and i saw issues and then saw that RSTST register offsets were
> wrongly populated. Hence fixing the same.
> 
>>
>> Regards
>> afzal
>>

--
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
Afzal Mohammed June 21, 2016, 7:52 a.m. UTC | #4
Hi Suman,

Anna, Suman wrote on Monday, June 20, 2016 9:49 PM:

> It does happen when the pruss module is exercised. We found this when we
> tried to do a standby test on suspend, and while it worked on AM33xx,
> AM437x failed because of this difference.

Okay, seems on am335x, PER doesn't have RSTST register itself.

Regards
afzal
--
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
Keerthy June 21, 2016, 9:57 a.m. UTC | #5
On Tuesday 21 June 2016 01:22 PM, Mohammed, Afzal wrote:
> Hi Suman,
>
> Anna, Suman wrote on Monday, June 20, 2016 9:49 PM:
>
>> It does happen when the pruss module is exercised. We found this when we
>> tried to do a standby test on suspend, and while it worked on AM33xx,
>> AM437x failed because of this difference.
>
> Okay, seems on am335x, PER doesn't have RSTST register itself.

Seems like code has some reference!

arch/arm/mach-omap2/prm33xx.h
#define AM33XX_RM_PER_RSTST_OFFSET		0x0004

But TRM: http://www.ti.com/lit/ug/spruh73m/spruh73m.pdf
claims that offset is reserved.

Should i remove the above lines altogether?

>
> Regards
> afzal
>
--
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
Keerthy June 22, 2016, 9:10 a.m. UTC | #6
Tony,

On Tuesday 21 June 2016 03:27 PM, Keerthy wrote:
>
>
> On Tuesday 21 June 2016 01:22 PM, Mohammed, Afzal wrote:
>> Hi Suman,
>>
>> Anna, Suman wrote on Monday, June 20, 2016 9:49 PM:
>>
>>> It does happen when the pruss module is exercised. We found this when we
>>> tried to do a standby test on suspend, and while it worked on AM33xx,
>>> AM437x failed because of this difference.
>>
>> Okay, seems on am335x, PER doesn't have RSTST register itself.
>
> Seems like code has some reference!
>
> arch/arm/mach-omap2/prm33xx.h
> #define AM33XX_RM_PER_RSTST_OFFSET        0x0004
>
> But TRM: http://www.ti.com/lit/ug/spruh73m/spruh73m.pdf
> claims that offset is reserved.
>
> Should i remove the above lines altogether?
>

Can you pull this patch as well?

>>
>> Regards
>> afzal
>>
--
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
Tony Lindgren June 22, 2016, 9:59 a.m. UTC | #7
* Keerthy <a0393675@ti.com> [160622 02:13]:
> Can you pull this patch as well?

OK thanks applying into omap-for-v4.8/soc.

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

diff --git a/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c b/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c
index 6a73b6c..55c5878 100644
--- a/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c
@@ -1392,6 +1392,7 @@  static void omap_hwmod_am43xx_rst(void)
 {
 	RSTCTRL(am33xx_pruss_hwmod, AM43XX_RM_PER_RSTCTRL_OFFSET);
 	RSTCTRL(am33xx_gfx_hwmod, AM43XX_RM_GFX_RSTCTRL_OFFSET);
+	RSTST(am33xx_pruss_hwmod, AM43XX_RM_PER_RSTST_OFFSET);
 	RSTST(am33xx_gfx_hwmod, AM43XX_RM_GFX_RSTST_OFFSET);
 }
 
diff --git a/arch/arm/mach-omap2/prcm43xx.h b/arch/arm/mach-omap2/prcm43xx.h
index 7c34c44e..babb5db 100644
--- a/arch/arm/mach-omap2/prcm43xx.h
+++ b/arch/arm/mach-omap2/prcm43xx.h
@@ -39,6 +39,7 @@ 
 
 /* RM RSTST offsets */
 #define AM43XX_RM_GFX_RSTST_OFFSET			0x0014
+#define AM43XX_RM_PER_RSTST_OFFSET			0x0014
 #define AM43XX_RM_WKUP_RSTST_OFFSET			0x0014
 
 /* CM instances */