All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC] [PATCH] ARM: save/restore power control register on Cortex-A9 suspend/resume
@ 2014-07-01 12:45 Chander Kashyap
  2014-07-01 12:48 ` Russell King - ARM Linux
  0 siblings, 1 reply; 5+ messages in thread
From: Chander Kashyap @ 2014-07-01 12:45 UTC (permalink / raw)
  To: linux-arm-kernel

The CP15 power register holds clock latency and dynamic clock gating settings
for Cortex-A9 processor, which lost during the suspend/resume. So it needs to
be saved/restored on suspend/resume.

Signed-off-by: Chander Kashyap <k.chander@samsung.com>
---
 It is depedent on: ARM: save/restore diagnostic register on Cortex-A9 suspend/resume
 http://www.spinics.net/lists/arm-kernel/msg340506.html

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

diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S
index e26bfaa..9905df5 100644
--- a/arch/arm/mm/proc-v7.S
+++ b/arch/arm/mm/proc-v7.S
@@ -163,12 +163,14 @@ ENDPROC(cpu_v7_do_resume)
 	globl_equ	cpu_ca9mp_switch_mm,	cpu_v7_switch_mm
 	globl_equ	cpu_ca9mp_set_pte_ext,	cpu_v7_set_pte_ext
 .globl	cpu_ca9mp_suspend_size
-.equ	cpu_ca9mp_suspend_size, cpu_v7_suspend_size + 1 * 4
+.equ	cpu_ca9mp_suspend_size, cpu_v7_suspend_size + 2 * 4
 #ifdef CONFIG_ARM_CPU_SUSPEND
 ENTRY(cpu_ca9mp_do_suspend)
 	stmfd	sp!, {r4}
 	mrc	p15, 0, r4, c15, c0, 1  @ Diagnostic register
 	stmia	r0!, {r4}
+	mrc	p15, 0, r4, c15, c0, 0  @ Power register
+	stmia	r0!, {r4}
 	ldmfd	sp!, {r4}
 	b	cpu_v7_do_suspend
 ENDPROC(cpu_ca9mp_do_suspend)
@@ -176,6 +178,8 @@ ENDPROC(cpu_ca9mp_do_suspend)
 ENTRY(cpu_ca9mp_do_resume)
 	ldmia	r0!, {r4}
 	mcr	p15, 0, r4, c15, c0, 1  @ Diagnostic register
+	ldmia	r0!, {r4}
+	mcr	p15, 0, r4, c15, c0, 0  @ Power register
 	b	cpu_v7_do_resume
 ENDPROC(cpu_ca9mp_do_resume)
 #endif
-- 
1.7.9.5

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

* [RFC] [PATCH] ARM: save/restore power control register on Cortex-A9 suspend/resume
  2014-07-01 12:45 [RFC] [PATCH] ARM: save/restore power control register on Cortex-A9 suspend/resume Chander Kashyap
@ 2014-07-01 12:48 ` Russell King - ARM Linux
  2014-07-02  3:16   ` Chander Kashyap
  0 siblings, 1 reply; 5+ messages in thread
From: Russell King - ARM Linux @ 2014-07-01 12:48 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, Jul 01, 2014 at 06:15:49PM +0530, Chander Kashyap wrote:
> The CP15 power register holds clock latency and dynamic clock gating settings
> for Cortex-A9 processor, which lost during the suspend/resume. So it needs to
> be saved/restored on suspend/resume.
> 
> Signed-off-by: Chander Kashyap <k.chander@samsung.com>
> ---
>  It is depedent on: ARM: save/restore diagnostic register on Cortex-A9 suspend/resume
>  http://www.spinics.net/lists/arm-kernel/msg340506.html
> 
>  arch/arm/mm/proc-v7.S |    6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S
> index e26bfaa..9905df5 100644
> --- a/arch/arm/mm/proc-v7.S
> +++ b/arch/arm/mm/proc-v7.S
> @@ -163,12 +163,14 @@ ENDPROC(cpu_v7_do_resume)
>  	globl_equ	cpu_ca9mp_switch_mm,	cpu_v7_switch_mm
>  	globl_equ	cpu_ca9mp_set_pte_ext,	cpu_v7_set_pte_ext
>  .globl	cpu_ca9mp_suspend_size
> -.equ	cpu_ca9mp_suspend_size, cpu_v7_suspend_size + 1 * 4
> +.equ	cpu_ca9mp_suspend_size, cpu_v7_suspend_size + 2 * 4
>  #ifdef CONFIG_ARM_CPU_SUSPEND
>  ENTRY(cpu_ca9mp_do_suspend)
>  	stmfd	sp!, {r4}
>  	mrc	p15, 0, r4, c15, c0, 1  @ Diagnostic register
>  	stmia	r0!, {r4}
> +	mrc	p15, 0, r4, c15, c0, 0  @ Power register
> +	stmia	r0!, {r4}
>  	ldmfd	sp!, {r4}

Please combine these - yes, it'll be a larger change, but it'll be much
better.

	stmfd   sp!, {r4-r5}
	mrc     p15, 0, r4, c15, c0, 1  @ Diagnostic register
	mrc     p15, 0, r5, c15, c0, 0  @ Power register
	stmia   r0!, {r4-r5}
	ldmfd   sp!, {r4-r5}


>  	b	cpu_v7_do_suspend
>  ENDPROC(cpu_ca9mp_do_suspend)
> @@ -176,6 +178,8 @@ ENDPROC(cpu_ca9mp_do_suspend)
>  ENTRY(cpu_ca9mp_do_resume)
>  	ldmia	r0!, {r4}
>  	mcr	p15, 0, r4, c15, c0, 1  @ Diagnostic register
> +	ldmia	r0!, {r4}
> +	mcr	p15, 0, r4, c15, c0, 0  @ Power register

	ldmia	r0!, {r4-r5}
	mcr     p15, 0, r4, c15, c0, 1  @ Diagnostic register
	mcr     p15, 0, r5, c15, c0, 0  @ Power register

>  	b	cpu_v7_do_resume
>  ENDPROC(cpu_ca9mp_do_resume)
>  #endif

Thanks.

-- 
FTTC broadband for 0.8mile line: now at 9.7Mbps down 460kbps up... slowly
improving, and getting towards what was expected from it.

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

* [RFC] [PATCH] ARM: save/restore power control register on Cortex-A9 suspend/resume
  2014-07-01 12:48 ` Russell King - ARM Linux
@ 2014-07-02  3:16   ` Chander Kashyap
  2014-07-02  3:27     ` Nicolas Pitre
  0 siblings, 1 reply; 5+ messages in thread
From: Chander Kashyap @ 2014-07-02  3:16 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, Jul 1, 2014 at 6:18 PM, Russell King - ARM Linux
<linux@arm.linux.org.uk> wrote:
> On Tue, Jul 01, 2014 at 06:15:49PM +0530, Chander Kashyap wrote:
>> The CP15 power register holds clock latency and dynamic clock gating settings
>> for Cortex-A9 processor, which lost during the suspend/resume. So it needs to
>> be saved/restored on suspend/resume.
>>
>> Signed-off-by: Chander Kashyap <k.chander@samsung.com>
>> ---
>>  It is depedent on: ARM: save/restore diagnostic register on Cortex-A9 suspend/resume
>>  http://www.spinics.net/lists/arm-kernel/msg340506.html
>>
>>  arch/arm/mm/proc-v7.S |    6 +++++-
>>  1 file changed, 5 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S
>> index e26bfaa..9905df5 100644
>> --- a/arch/arm/mm/proc-v7.S
>> +++ b/arch/arm/mm/proc-v7.S
>> @@ -163,12 +163,14 @@ ENDPROC(cpu_v7_do_resume)
>>       globl_equ       cpu_ca9mp_switch_mm,    cpu_v7_switch_mm
>>       globl_equ       cpu_ca9mp_set_pte_ext,  cpu_v7_set_pte_ext
>>  .globl       cpu_ca9mp_suspend_size
>> -.equ cpu_ca9mp_suspend_size, cpu_v7_suspend_size + 1 * 4
>> +.equ cpu_ca9mp_suspend_size, cpu_v7_suspend_size + 2 * 4
>>  #ifdef CONFIG_ARM_CPU_SUSPEND
>>  ENTRY(cpu_ca9mp_do_suspend)
>>       stmfd   sp!, {r4}
>>       mrc     p15, 0, r4, c15, c0, 1  @ Diagnostic register
>>       stmia   r0!, {r4}
>> +     mrc     p15, 0, r4, c15, c0, 0  @ Power register
>> +     stmia   r0!, {r4}
>>       ldmfd   sp!, {r4}
>
> Please combine these - yes, it'll be a larger change, but it'll be much
> better.

Are asking me to squash this patch with Shawn's patch?
If so i will do that.

>
>         stmfd   sp!, {r4-r5}
>         mrc     p15, 0, r4, c15, c0, 1  @ Diagnostic register
>         mrc     p15, 0, r5, c15, c0, 0  @ Power register
>         stmia   r0!, {r4-r5}
>         ldmfd   sp!, {r4-r5}
>
>
>>       b       cpu_v7_do_suspend
>>  ENDPROC(cpu_ca9mp_do_suspend)
>> @@ -176,6 +178,8 @@ ENDPROC(cpu_ca9mp_do_suspend)
>>  ENTRY(cpu_ca9mp_do_resume)
>>       ldmia   r0!, {r4}
>>       mcr     p15, 0, r4, c15, c0, 1  @ Diagnostic register
>> +     ldmia   r0!, {r4}
>> +     mcr     p15, 0, r4, c15, c0, 0  @ Power register
>
>         ldmia   r0!, {r4-r5}
>         mcr     p15, 0, r4, c15, c0, 1  @ Diagnostic register
>         mcr     p15, 0, r5, c15, c0, 0  @ Power register

I will do these changes


Thanks for the review.

>
>>       b       cpu_v7_do_resume
>>  ENDPROC(cpu_ca9mp_do_resume)
>>  #endif
>
> Thanks.
>
> --
> FTTC broadband for 0.8mile line: now at 9.7Mbps down 460kbps up... slowly
> improving, and getting towards what was expected from it.
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* [RFC] [PATCH] ARM: save/restore power control register on Cortex-A9 suspend/resume
  2014-07-02  3:16   ` Chander Kashyap
@ 2014-07-02  3:27     ` Nicolas Pitre
  2014-07-02  7:54       ` Chander Kashyap
  0 siblings, 1 reply; 5+ messages in thread
From: Nicolas Pitre @ 2014-07-02  3:27 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, 2 Jul 2014, Chander Kashyap wrote:

> On Tue, Jul 1, 2014 at 6:18 PM, Russell King - ARM Linux
> <linux@arm.linux.org.uk> wrote:
> > On Tue, Jul 01, 2014 at 06:15:49PM +0530, Chander Kashyap wrote:
> >> The CP15 power register holds clock latency and dynamic clock gating settings
> >> for Cortex-A9 processor, which lost during the suspend/resume. So it needs to
> >> be saved/restored on suspend/resume.
> >>
> >> Signed-off-by: Chander Kashyap <k.chander@samsung.com>
> >> ---
> >>  It is depedent on: ARM: save/restore diagnostic register on Cortex-A9 suspend/resume
> >>  http://www.spinics.net/lists/arm-kernel/msg340506.html
> >>
> >>  arch/arm/mm/proc-v7.S |    6 +++++-
> >>  1 file changed, 5 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S
> >> index e26bfaa..9905df5 100644
> >> --- a/arch/arm/mm/proc-v7.S
> >> +++ b/arch/arm/mm/proc-v7.S
> >> @@ -163,12 +163,14 @@ ENDPROC(cpu_v7_do_resume)
> >>       globl_equ       cpu_ca9mp_switch_mm,    cpu_v7_switch_mm
> >>       globl_equ       cpu_ca9mp_set_pte_ext,  cpu_v7_set_pte_ext
> >>  .globl       cpu_ca9mp_suspend_size
> >> -.equ cpu_ca9mp_suspend_size, cpu_v7_suspend_size + 1 * 4
> >> +.equ cpu_ca9mp_suspend_size, cpu_v7_suspend_size + 2 * 4
> >>  #ifdef CONFIG_ARM_CPU_SUSPEND
> >>  ENTRY(cpu_ca9mp_do_suspend)
> >>       stmfd   sp!, {r4}
> >>       mrc     p15, 0, r4, c15, c0, 1  @ Diagnostic register
> >>       stmia   r0!, {r4}
> >> +     mrc     p15, 0, r4, c15, c0, 0  @ Power register
> >> +     stmia   r0!, {r4}
> >>       ldmfd   sp!, {r4}
> >
> > Please combine these - yes, it'll be a larger change, but it'll be much
> > better.
> 
> Are asking me to squash this patch with Shawn's patch?
> If so i will do that.

I'm not sure that's what RMK ment.

You should at least merge the loads and stores into a combined ldmia and 
stmia instructions as illustrated.

> 
> >
> >         stmfd   sp!, {r4-r5}
> >         mrc     p15, 0, r4, c15, c0, 1  @ Diagnostic register
> >         mrc     p15, 0, r5, c15, c0, 0  @ Power register
> >         stmia   r0!, {r4-r5}
> >         ldmfd   sp!, {r4-r5}
> >
> >
> >>       b       cpu_v7_do_suspend
> >>  ENDPROC(cpu_ca9mp_do_suspend)
> >> @@ -176,6 +178,8 @@ ENDPROC(cpu_ca9mp_do_suspend)
> >>  ENTRY(cpu_ca9mp_do_resume)
> >>       ldmia   r0!, {r4}
> >>       mcr     p15, 0, r4, c15, c0, 1  @ Diagnostic register
> >> +     ldmia   r0!, {r4}
> >> +     mcr     p15, 0, r4, c15, c0, 0  @ Power register
> >
> >         ldmia   r0!, {r4-r5}
> >         mcr     p15, 0, r4, c15, c0, 1  @ Diagnostic register
> >         mcr     p15, 0, r5, c15, c0, 0  @ Power register
> 
> I will do these changes
> 
> 
> Thanks for the review.
> 
> >
> >>       b       cpu_v7_do_resume
> >>  ENDPROC(cpu_ca9mp_do_resume)
> >>  #endif
> >
> > Thanks.
> >
> > --
> > FTTC broadband for 0.8mile line: now at 9.7Mbps down 460kbps up... slowly
> > improving, and getting towards what was expected from it.
> >
> > _______________________________________________
> > linux-arm-kernel mailing list
> > linux-arm-kernel at lists.infradead.org
> > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
> 

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

* [RFC] [PATCH] ARM: save/restore power control register on Cortex-A9 suspend/resume
  2014-07-02  3:27     ` Nicolas Pitre
@ 2014-07-02  7:54       ` Chander Kashyap
  0 siblings, 0 replies; 5+ messages in thread
From: Chander Kashyap @ 2014-07-02  7:54 UTC (permalink / raw)
  To: linux-arm-kernel

On 2 July 2014 08:57, Nicolas Pitre <nicolas.pitre@linaro.org> wrote:
> On Wed, 2 Jul 2014, Chander Kashyap wrote:
>
>> On Tue, Jul 1, 2014 at 6:18 PM, Russell King - ARM Linux
>> <linux@arm.linux.org.uk> wrote:
>> > On Tue, Jul 01, 2014 at 06:15:49PM +0530, Chander Kashyap wrote:
>> >> The CP15 power register holds clock latency and dynamic clock gating settings
>> >> for Cortex-A9 processor, which lost during the suspend/resume. So it needs to
>> >> be saved/restored on suspend/resume.
>> >>
>> >> Signed-off-by: Chander Kashyap <k.chander@samsung.com>
>> >> ---
>> >>  It is depedent on: ARM: save/restore diagnostic register on Cortex-A9 suspend/resume
>> >>  http://www.spinics.net/lists/arm-kernel/msg340506.html
>> >>
>> >>  arch/arm/mm/proc-v7.S |    6 +++++-
>> >>  1 file changed, 5 insertions(+), 1 deletion(-)
>> >>
>> >> diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S
>> >> index e26bfaa..9905df5 100644
>> >> --- a/arch/arm/mm/proc-v7.S
>> >> +++ b/arch/arm/mm/proc-v7.S
>> >> @@ -163,12 +163,14 @@ ENDPROC(cpu_v7_do_resume)
>> >>       globl_equ       cpu_ca9mp_switch_mm,    cpu_v7_switch_mm
>> >>       globl_equ       cpu_ca9mp_set_pte_ext,  cpu_v7_set_pte_ext
>> >>  .globl       cpu_ca9mp_suspend_size
>> >> -.equ cpu_ca9mp_suspend_size, cpu_v7_suspend_size + 1 * 4
>> >> +.equ cpu_ca9mp_suspend_size, cpu_v7_suspend_size + 2 * 4
>> >>  #ifdef CONFIG_ARM_CPU_SUSPEND
>> >>  ENTRY(cpu_ca9mp_do_suspend)
>> >>       stmfd   sp!, {r4}
>> >>       mrc     p15, 0, r4, c15, c0, 1  @ Diagnostic register
>> >>       stmia   r0!, {r4}
>> >> +     mrc     p15, 0, r4, c15, c0, 0  @ Power register
>> >> +     stmia   r0!, {r4}
>> >>       ldmfd   sp!, {r4}
>> >
>> > Please combine these - yes, it'll be a larger change, but it'll be much
>> > better.
>>
>> Are asking me to squash this patch with Shawn's patch?
>> If so i will do that.
>
> I'm not sure that's what RMK ment.
>
> You should at least merge the loads and stores into a combined ldmia and
> stmia instructions as illustrated.

Sure I will do that.

>
>>
>> >
>> >         stmfd   sp!, {r4-r5}
>> >         mrc     p15, 0, r4, c15, c0, 1  @ Diagnostic register
>> >         mrc     p15, 0, r5, c15, c0, 0  @ Power register
>> >         stmia   r0!, {r4-r5}
>> >         ldmfd   sp!, {r4-r5}
>> >
>> >
>> >>       b       cpu_v7_do_suspend
>> >>  ENDPROC(cpu_ca9mp_do_suspend)
>> >> @@ -176,6 +178,8 @@ ENDPROC(cpu_ca9mp_do_suspend)
>> >>  ENTRY(cpu_ca9mp_do_resume)
>> >>       ldmia   r0!, {r4}
>> >>       mcr     p15, 0, r4, c15, c0, 1  @ Diagnostic register
>> >> +     ldmia   r0!, {r4}
>> >> +     mcr     p15, 0, r4, c15, c0, 0  @ Power register
>> >
>> >         ldmia   r0!, {r4-r5}
>> >         mcr     p15, 0, r4, c15, c0, 1  @ Diagnostic register
>> >         mcr     p15, 0, r5, c15, c0, 0  @ Power register
>>
>> I will do these changes
>>
>>
>> Thanks for the review.
>>
>> >
>> >>       b       cpu_v7_do_resume
>> >>  ENDPROC(cpu_ca9mp_do_resume)
>> >>  #endif
>> >
>> > Thanks.
>> >
>> > --
>> > FTTC broadband for 0.8mile line: now at 9.7Mbps down 460kbps up... slowly
>> > improving, and getting towards what was expected from it.
>> >
>> > _______________________________________________
>> > linux-arm-kernel mailing list
>> > linux-arm-kernel at lists.infradead.org
>> > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel


Thanks Nicolas

-- 
with warm regards,
Chander Kashyap

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

end of thread, other threads:[~2014-07-02  7:54 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-07-01 12:45 [RFC] [PATCH] ARM: save/restore power control register on Cortex-A9 suspend/resume Chander Kashyap
2014-07-01 12:48 ` Russell King - ARM Linux
2014-07-02  3:16   ` Chander Kashyap
2014-07-02  3:27     ` Nicolas Pitre
2014-07-02  7:54       ` Chander Kashyap

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.