linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: linux@arm.linux.org.uk (Russell King - ARM Linux)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 2/6] ARM: pm: add generic CPU suspend/resume support
Date: Sun, 20 Feb 2011 12:00:39 +0000	[thread overview]
Message-ID: <20110220120039.GA14495@n2100.arm.linux.org.uk> (raw)
In-Reply-To: <20110215110453.GB11199@n2100.arm.linux.org.uk>

Kukjin, could you test this update as well please?

Thanks.

On Tue, Feb 15, 2011 at 11:04:53AM +0000, Russell King - ARM Linux wrote:
> On Fri, Feb 11, 2011 at 06:50:57PM -0800, Colin Cross wrote:
> > > +ENDPROC(cpu_resume_turn_mmu_on)
> > > +cpu_resume_after_mmu:
> > > + ? ? ? str ? ? r5, [r2, r4, lsl #2] ? ?@ restore old mapping
> > > +#ifdef MULTI_CACHE
> > > + ? ? ? ldr ? ? r10, =cpu_cache
> > > + ? ? ? ldr ? ? pc, [r10, #CACHE_FLUSH_KERN_ALL]
> > > +#else
> > > + ? ? ? b ? ? ? __cpuc_flush_kern_all
> > > +#endif
> 
> I think we can eliminate this cache flush by delaying the cache enable
> as below.  Could you see whether Tegra 2 survives this please?
> Thanks.
> 
> diff --git a/arch/arm/kernel/sleep.S b/arch/arm/kernel/sleep.S
> index bed1876..193be5f 100644
> --- a/arch/arm/kernel/sleep.S
> +++ b/arch/arm/kernel/sleep.S
> @@ -4,6 +4,7 @@
>  #include <asm/assembler.h>
>  #include <asm/glue-cache.h>
>  #include <asm/glue-proc.h>
> +#include <asm/system.h>
>  	.text
>  
>  /*
> @@ -81,25 +82,22 @@ ENTRY(cpu_resume_mmu)
>  	str	r3, [r2, r4, lsl #2]	@ setup 1:1 mapping for mmu code
>  	sub	r2, r2, r1
>  	ldr	r3, =cpu_resume_after_mmu
> +	bic	r1, r0, #CR_C		@ ensure D-cache is disabled
>  	b	cpu_resume_turn_mmu_on
>  ENDPROC(cpu_resume_mmu)
>  	.ltorg
>  	.align	5
>  cpu_resume_turn_mmu_on:
> -	mcr	p15, 0, r0, c1, c0, 0	@ turn on MMU, caches, etc
> -	mrc	p15, 0, r0, c0, c0, 0	@ read id reg
> -	mov	r0, r0
> -	mov	r0, r0
> +	mcr	p15, 0, r1, c1, c0, 0	@ turn on MMU, I-cache, etc
> +	mrc	p15, 0, r1, c0, c0, 0	@ read id reg
> +	mov	r1, r1
> +	mov	r1, r1
>  	mov	pc, r3			@ jump to virtual address
>  ENDPROC(cpu_resume_turn_mmu_on)
>  cpu_resume_after_mmu:
>  	str	r5, [r2, r4, lsl #2]	@ restore old mapping
> -#ifdef MULTI_CACHE
> -	ldr	r10, =cpu_cache
> -	ldr	pc, [r10, #CACHE_FLUSH_KERN_ALL]
> -#else
> -	b	__cpuc_flush_kern_all
> -#endif
> +	mcr	p15, 0, r0, c1, c0, 0	@ turn on D-cache
> +	mov	pc, lr
>  
>  /*
>   * Note: Yes, part of the following code is located into the .data section.
> 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2011-02-20 12:00 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-11 16:16 [PATCH] Generic CPU save/restore PM support Russell King - ARM Linux
2011-02-11 16:17 ` [PATCH 1/6] ARM: move cache/processor/fault glue to separate include files Russell King - ARM Linux
2011-02-12  2:52   ` Colin Cross
2011-02-12  9:48     ` Russell King - ARM Linux
2011-02-11 16:17 ` [PATCH 2/6] ARM: pm: add generic CPU suspend/resume support Russell King - ARM Linux
2011-02-12  2:50   ` Colin Cross
2011-02-15 11:04     ` Russell King - ARM Linux
2011-02-16  0:26       ` Colin Cross
2011-02-17 10:41         ` Lorenzo Pieralisi
2011-02-17 13:59           ` Russell King - ARM Linux
2011-02-17 20:05           ` Colin Cross
2011-02-17 23:36             ` Russell King - ARM Linux
2011-02-20 12:00       ` Russell King - ARM Linux [this message]
2011-02-21  9:58         ` Kukjin Kim
2011-02-15  1:21   ` Colin Cross
2011-02-15  4:11     ` Colin Cross
2011-02-15 10:50       ` Russell King - ARM Linux
2011-02-15 18:20         ` Colin Cross
2011-02-11 16:18 ` [PATCH 3/6] ARM: pm: convert PXA to generic " Russell King - ARM Linux
2011-02-11 16:18 ` [PATCH 4/6] ARM: pm: convert sa11x0 " Russell King - ARM Linux
2011-02-11 16:18 ` [PATCH 5/6] ARM: pm: convert samsung platforms " Russell King - ARM Linux
2011-02-17 12:09   ` Kukjin Kim
2011-02-17 14:06     ` Russell King - ARM Linux
2011-02-17 23:05       ` Kukjin Kim
2011-02-17 23:29         ` Russell King - ARM Linux
2011-02-17 23:46           ` Kukjin Kim
2011-02-17 23:58         ` SAMSUNG: any example code for soc_camera, tv output, etc...? Nick Pelling
2011-02-22 14:00           ` 余谨智
     [not found]             ` <AANLkTin0PR3VQLruade+w6GbCMoW9pXy4Kvn-sBZ+LBM@mail.gmail.c om>
2011-02-22 22:54               ` Nick Pelling
2011-02-23 11:03                 ` Sylwester Nawrocki
2011-02-11 16:19 ` [PATCH 6/6] ARM: pm: allow generic sleep code to be used with SMP CPU idle Russell King - ARM Linux
2011-02-12  2:52   ` Colin Cross
2011-02-13 21:59   ` Colin Cross
2011-02-14 16:01     ` Russell King - ARM Linux

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=20110220120039.GA14495@n2100.arm.linux.org.uk \
    --to=linux@arm.linux.org.uk \
    --cc=linux-arm-kernel@lists.infradead.org \
    /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 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).