linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] ARM: cpu_pj4b_suspend_size should base on cpu_v7_suspend_size
@ 2014-07-02  6:48 Shawn Guo
  2014-07-02  7:12 ` Gregory CLEMENT
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Shawn Guo @ 2014-07-02  6:48 UTC (permalink / raw)
  To: linux-arm-kernel

Since pj4b suspend/resume routines are implemented based on generic
ARMv7 ones, instead of hard-coding cpu_pj4b_suspend_size, we should have
it be cpu_v7_suspend_size plus pj4b specific bytes.  Otherwise, if
cpu_v7_suspend_size gets updated alone, the pj4b suspend/resume will
likely be broken.

While at it, fix the comments in cpu_pj4b_do_resume, as we're restoring
CP15 registers rather than saving in there.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
---
Completely untested.

 arch/arm/mm/proc-v7.S | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S
index 3db2c2f04a30..604dda5f65cc 100644
--- a/arch/arm/mm/proc-v7.S
+++ b/arch/arm/mm/proc-v7.S
@@ -184,16 +184,16 @@ ENDPROC(cpu_pj4b_do_suspend)
 
 ENTRY(cpu_pj4b_do_resume)
 	ldmia	r0!, {r6 - r10}
-	mcr	p15, 1, r6, c15, c1, 0  @ save CP15 - extra features
-	mcr	p15, 1, r7, c15, c2, 0	@ save CP15 - Aux Func Modes Ctrl 0
-	mcr	p15, 1, r8, c15, c1, 2	@ save CP15 - Aux Debug Modes Ctrl 2
-	mcr	p15, 1, r9, c15, c1, 1  @ save CP15 - Aux Debug Modes Ctrl 1
-	mcr	p15, 0, r10, c9, c14, 0  @ save CP15 - PMC
+	mcr	p15, 1, r6, c15, c1, 0  @ retore CP15 - extra features
+	mcr	p15, 1, r7, c15, c2, 0	@ retore CP15 - Aux Func Modes Ctrl 0
+	mcr	p15, 1, r8, c15, c1, 2	@ retore CP15 - Aux Debug Modes Ctrl 2
+	mcr	p15, 1, r9, c15, c1, 1  @ retore CP15 - Aux Debug Modes Ctrl 1
+	mcr	p15, 0, r10, c9, c14, 0  @ retore CP15 - PMC
 	b cpu_v7_do_resume
 ENDPROC(cpu_pj4b_do_resume)
 #endif
 .globl	cpu_pj4b_suspend_size
-.equ	cpu_pj4b_suspend_size, 4 * 14
+.equ	cpu_pj4b_suspend_size, cpu_v7_suspend_size + 4 * 5
 
 #endif
 
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH] ARM: cpu_pj4b_suspend_size should base on cpu_v7_suspend_size
  2014-07-02  6:48 [PATCH] ARM: cpu_pj4b_suspend_size should base on cpu_v7_suspend_size Shawn Guo
@ 2014-07-02  7:12 ` Gregory CLEMENT
  2014-07-02  9:14 ` Gregory CLEMENT
  2014-07-03  9:01 ` Shawn Guo
  2 siblings, 0 replies; 4+ messages in thread
From: Gregory CLEMENT @ 2014-07-02  7:12 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Shawn,

On 02/07/2014 08:48, Shawn Guo wrote:
> Since pj4b suspend/resume routines are implemented based on generic
> ARMv7 ones, instead of hard-coding cpu_pj4b_suspend_size, we should have
> it be cpu_v7_suspend_size plus pj4b specific bytes.  Otherwise, if
> cpu_v7_suspend_size gets updated alone, the pj4b suspend/resume will
> likely be broken.

It was something I thought I did but I forgot to push it! Thanks for having
spotted it. I am going to test it soon.


Thanks,

Gregory


> 
> While at it, fix the comments in cpu_pj4b_do_resume, as we're restoring
> CP15 registers rather than saving in there.
> 
> Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
> ---
> Completely untested.
> 
>  arch/arm/mm/proc-v7.S | 12 ++++++------
>  1 file changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S
> index 3db2c2f04a30..604dda5f65cc 100644
> --- a/arch/arm/mm/proc-v7.S
> +++ b/arch/arm/mm/proc-v7.S
> @@ -184,16 +184,16 @@ ENDPROC(cpu_pj4b_do_suspend)
>  
>  ENTRY(cpu_pj4b_do_resume)
>  	ldmia	r0!, {r6 - r10}
> -	mcr	p15, 1, r6, c15, c1, 0  @ save CP15 - extra features
> -	mcr	p15, 1, r7, c15, c2, 0	@ save CP15 - Aux Func Modes Ctrl 0
> -	mcr	p15, 1, r8, c15, c1, 2	@ save CP15 - Aux Debug Modes Ctrl 2
> -	mcr	p15, 1, r9, c15, c1, 1  @ save CP15 - Aux Debug Modes Ctrl 1
> -	mcr	p15, 0, r10, c9, c14, 0  @ save CP15 - PMC
> +	mcr	p15, 1, r6, c15, c1, 0  @ retore CP15 - extra features
> +	mcr	p15, 1, r7, c15, c2, 0	@ retore CP15 - Aux Func Modes Ctrl 0
> +	mcr	p15, 1, r8, c15, c1, 2	@ retore CP15 - Aux Debug Modes Ctrl 2
> +	mcr	p15, 1, r9, c15, c1, 1  @ retore CP15 - Aux Debug Modes Ctrl 1
> +	mcr	p15, 0, r10, c9, c14, 0  @ retore CP15 - PMC
>  	b cpu_v7_do_resume
>  ENDPROC(cpu_pj4b_do_resume)
>  #endif
>  .globl	cpu_pj4b_suspend_size
> -.equ	cpu_pj4b_suspend_size, 4 * 14
> +.equ	cpu_pj4b_suspend_size, cpu_v7_suspend_size + 4 * 5
>  
>  #endif
>  
> 


-- 
Gregory Clement, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH] ARM: cpu_pj4b_suspend_size should base on cpu_v7_suspend_size
  2014-07-02  6:48 [PATCH] ARM: cpu_pj4b_suspend_size should base on cpu_v7_suspend_size Shawn Guo
  2014-07-02  7:12 ` Gregory CLEMENT
@ 2014-07-02  9:14 ` Gregory CLEMENT
  2014-07-03  9:01 ` Shawn Guo
  2 siblings, 0 replies; 4+ messages in thread
From: Gregory CLEMENT @ 2014-07-02  9:14 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Shawn,

On 02/07/2014 08:48, Shawn Guo wrote:
> Since pj4b suspend/resume routines are implemented based on generic
> ARMv7 ones, instead of hard-coding cpu_pj4b_suspend_size, we should have
> it be cpu_v7_suspend_size plus pj4b specific bytes.  Otherwise, if
> cpu_v7_suspend_size gets updated alone, the pj4b suspend/resume will
> likely be broken.
> 
> While at it, fix the comments in cpu_pj4b_do_resume, as we're restoring
> CP15 registers rather than saving in there.
> 
> Signed-off-by: Shawn Guo <shawn.guo@freescale.com>

Acked-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
and
Tested-by: Gregory CLEMENT <gregory.clement@free-electrons.com>


Thanks,

Gregory

> ---
> Completely untested.
> 
>  arch/arm/mm/proc-v7.S | 12 ++++++------
>  1 file changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S
> index 3db2c2f04a30..604dda5f65cc 100644
> --- a/arch/arm/mm/proc-v7.S
> +++ b/arch/arm/mm/proc-v7.S
> @@ -184,16 +184,16 @@ ENDPROC(cpu_pj4b_do_suspend)
>  
>  ENTRY(cpu_pj4b_do_resume)
>  	ldmia	r0!, {r6 - r10}
> -	mcr	p15, 1, r6, c15, c1, 0  @ save CP15 - extra features
> -	mcr	p15, 1, r7, c15, c2, 0	@ save CP15 - Aux Func Modes Ctrl 0
> -	mcr	p15, 1, r8, c15, c1, 2	@ save CP15 - Aux Debug Modes Ctrl 2
> -	mcr	p15, 1, r9, c15, c1, 1  @ save CP15 - Aux Debug Modes Ctrl 1
> -	mcr	p15, 0, r10, c9, c14, 0  @ save CP15 - PMC
> +	mcr	p15, 1, r6, c15, c1, 0  @ retore CP15 - extra features
> +	mcr	p15, 1, r7, c15, c2, 0	@ retore CP15 - Aux Func Modes Ctrl 0
> +	mcr	p15, 1, r8, c15, c1, 2	@ retore CP15 - Aux Debug Modes Ctrl 2
> +	mcr	p15, 1, r9, c15, c1, 1  @ retore CP15 - Aux Debug Modes Ctrl 1
> +	mcr	p15, 0, r10, c9, c14, 0  @ retore CP15 - PMC
>  	b cpu_v7_do_resume
>  ENDPROC(cpu_pj4b_do_resume)
>  #endif
>  .globl	cpu_pj4b_suspend_size
> -.equ	cpu_pj4b_suspend_size, 4 * 14
> +.equ	cpu_pj4b_suspend_size, cpu_v7_suspend_size + 4 * 5
>  
>  #endif
>  
> 


-- 
Gregory Clement, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH] ARM: cpu_pj4b_suspend_size should base on cpu_v7_suspend_size
  2014-07-02  6:48 [PATCH] ARM: cpu_pj4b_suspend_size should base on cpu_v7_suspend_size Shawn Guo
  2014-07-02  7:12 ` Gregory CLEMENT
  2014-07-02  9:14 ` Gregory CLEMENT
@ 2014-07-03  9:01 ` Shawn Guo
  2 siblings, 0 replies; 4+ messages in thread
From: Shawn Guo @ 2014-07-03  9:01 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Jul 02, 2014 at 02:48:35PM +0800, Shawn Guo wrote:
> Since pj4b suspend/resume routines are implemented based on generic
> ARMv7 ones, instead of hard-coding cpu_pj4b_suspend_size, we should have
> it be cpu_v7_suspend_size plus pj4b specific bytes.  Otherwise, if
> cpu_v7_suspend_size gets updated alone, the pj4b suspend/resume will
> likely be broken.
> 
> While at it, fix the comments in cpu_pj4b_do_resume, as we're restoring
> CP15 registers rather than saving in there.
> 
> Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
> ---
> Completely untested.
> 
>  arch/arm/mm/proc-v7.S | 12 ++++++------
>  1 file changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S
> index 3db2c2f04a30..604dda5f65cc 100644
> --- a/arch/arm/mm/proc-v7.S
> +++ b/arch/arm/mm/proc-v7.S
> @@ -184,16 +184,16 @@ ENDPROC(cpu_pj4b_do_suspend)
>  
>  ENTRY(cpu_pj4b_do_resume)
>  	ldmia	r0!, {r6 - r10}
> -	mcr	p15, 1, r6, c15, c1, 0  @ save CP15 - extra features
> -	mcr	p15, 1, r7, c15, c2, 0	@ save CP15 - Aux Func Modes Ctrl 0
> -	mcr	p15, 1, r8, c15, c1, 2	@ save CP15 - Aux Debug Modes Ctrl 2
> -	mcr	p15, 1, r9, c15, c1, 1  @ save CP15 - Aux Debug Modes Ctrl 1
> -	mcr	p15, 0, r10, c9, c14, 0  @ save CP15 - PMC
> +	mcr	p15, 1, r6, c15, c1, 0  @ retore CP15 - extra features
> +	mcr	p15, 1, r7, c15, c2, 0	@ retore CP15 - Aux Func Modes Ctrl 0
> +	mcr	p15, 1, r8, c15, c1, 2	@ retore CP15 - Aux Debug Modes Ctrl 2
> +	mcr	p15, 1, r9, c15, c1, 1  @ retore CP15 - Aux Debug Modes Ctrl 1
> +	mcr	p15, 0, r10, c9, c14, 0  @ retore CP15 - PMC

s/retore/restore

I fixed the typo, added Gregory's Acked-by and Tested-by tags, and put
it into patch system as 8089/1.

Shawn

>  	b cpu_v7_do_resume
>  ENDPROC(cpu_pj4b_do_resume)
>  #endif
>  .globl	cpu_pj4b_suspend_size
> -.equ	cpu_pj4b_suspend_size, 4 * 14
> +.equ	cpu_pj4b_suspend_size, cpu_v7_suspend_size + 4 * 5
>  
>  #endif
>  
> -- 
> 1.8.3.2
> 

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2014-07-03  9:01 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-07-02  6:48 [PATCH] ARM: cpu_pj4b_suspend_size should base on cpu_v7_suspend_size Shawn Guo
2014-07-02  7:12 ` Gregory CLEMENT
2014-07-02  9:14 ` Gregory CLEMENT
2014-07-03  9:01 ` Shawn Guo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).