From: Magnus Damm <magnus.damm@gmail.com>
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 05/06] ARM: shmobile: Common shmobile_scu_base in headsmp-scu.S
Date: Wed, 13 Feb 2013 13:47:17 +0000 [thread overview]
Message-ID: <20130213134717.12153.6162.sendpatchset@w520> (raw)
In-Reply-To: <20130213134628.12153.47120.sendpatchset@w520>
From: Magnus Damm <damm@opensource.se>
Update the code in headsmp-scu.S to use a global
shmobile_scu_base variable both for convenient SCU
base address storage and for the early SCU setup
code in shmobile_secondary_vector_scu.
With this patch applied r8a7779, sh73a0 and EMEV2
all make use of the global shmobile_scu_base
variable. However only sh73a0 makes use of the SCU
bring up code in shmobile_secondary_vector_scu.
Signed-off-by: Magnus Damm <damm@opensource.se>
---
arch/arm/mach-shmobile/Makefile | 4 ++--
arch/arm/mach-shmobile/headsmp-scu.S | 8 +++++++-
arch/arm/mach-shmobile/include/mach/common.h | 1 +
arch/arm/mach-shmobile/smp-emev2.c | 2 --
arch/arm/mach-shmobile/smp-r8a7779.c | 2 --
arch/arm/mach-shmobile/smp-sh73a0.c | 2 --
6 files changed, 10 insertions(+), 9 deletions(-)
--- 0009/arch/arm/mach-shmobile/Makefile
+++ work/arch/arm/mach-shmobile/Makefile 2013-02-13 21:54:34.000000000 +0900
@@ -16,8 +16,8 @@ obj-$(CONFIG_ARCH_EMEV2) += setup-emev2.
smp-y := platsmp.o headsmp.o
smp-$(CONFIG_HOTPLUG_CPU) += hotplug.o
smp-$(CONFIG_ARCH_SH73A0) += smp-sh73a0.o headsmp-scu.o
-smp-$(CONFIG_ARCH_R8A7779) += smp-r8a7779.o
-smp-$(CONFIG_ARCH_EMEV2) += smp-emev2.o
+smp-$(CONFIG_ARCH_R8A7779) += smp-r8a7779.o headsmp-scu.o
+smp-$(CONFIG_ARCH_EMEV2) += smp-emev2.o headsmp-scu.o
# IRQ objects
obj-$(CONFIG_ARCH_SH7372) += entry-intc.o
--- 0009/arch/arm/mach-shmobile/headsmp-scu.S
+++ work/arch/arm/mach-shmobile/headsmp-scu.S 2013-02-13 21:54:27.000000000 +0900
@@ -39,7 +39,8 @@ ENTRY(shmobile_secondary_vector_scu)
mrc p15, 0, r0, c0, c0, 5 @ read MIPDR
and r0, r0, #3 @ mask out cpu ID
lsl r0, r0, #3 @ we will shift by cpu_id * 8 bits
- mov r1, #0xf0000000 @ SCU base address
+ ldr r1, =shmobile_scu_base
+ ldr r1, [r1] @ SCU base address
ldr r2, [r1, #8] @ SCU Power Status Register
mov r3, #3
bic r2, r2, r3, lsl r0 @ Clear bits of our CPU (Run Mode)
@@ -48,3 +49,8 @@ ENTRY(shmobile_secondary_vector_scu)
ldr pc, 1f
1: .long shmobile_invalidate_start - PAGE_OFFSET + PLAT_PHYS_OFFSET
ENDPROC(shmobile_secondary_vector_scu)
+
+ .text
+ .globl shmobile_scu_base
+shmobile_scu_base:
+ .space 4
--- 0009/arch/arm/mach-shmobile/include/mach/common.h
+++ work/arch/arm/mach-shmobile/include/mach/common.h 2013-02-13 21:54:27.000000000 +0900
@@ -96,6 +96,7 @@ extern int shmobile_cpu_is_dead(unsigned
static inline int shmobile_cpu_is_dead(unsigned int cpu) { return 1; }
#endif
+extern void __iomem *shmobile_scu_base;
extern void shmobile_smp_init_cpus(unsigned int ncores);
static inline void __init shmobile_init_late(void)
--- 0008/arch/arm/mach-shmobile/smp-emev2.c
+++ work/arch/arm/mach-shmobile/smp-emev2.c 2013-02-13 21:54:27.000000000 +0900
@@ -32,8 +32,6 @@
#define EMEV2_SCU_BASE 0x1e000000
-static void __iomem *shmobile_scu_base;
-
static DEFINE_SPINLOCK(scu_lock);
static void modify_scu_cpu_psr(unsigned long set, unsigned long clr)
--- 0007/arch/arm/mach-shmobile/smp-r8a7779.c
+++ work/arch/arm/mach-shmobile/smp-r8a7779.c 2013-02-13 21:54:27.000000000 +0900
@@ -33,8 +33,6 @@
#define AVECR IOMEM(0xfe700040)
#define R8A7779_SCU_BASE IOMEM(0xf0000000)
-static void __iomem *shmobile_scu_base;
-
static struct r8a7779_pm_ch r8a7779_ch_cpu1 = {
.chan_offs = 0x40, /* PWRSR0 .. PWRER0 */
.chan_bit = 1, /* ARM1 */
--- 0009/arch/arm/mach-shmobile/smp-sh73a0.c
+++ work/arch/arm/mach-shmobile/smp-sh73a0.c 2013-02-13 21:54:27.000000000 +0900
@@ -41,8 +41,6 @@
#define SH73A0_SCU_BASE IOMEM(0xf0000000)
-static void __iomem *shmobile_scu_base;
-
#ifdef CONFIG_HAVE_ARM_TWD
static DEFINE_TWD_LOCAL_TIMER(twd_local_timer, SH73A0_SCU_BASE + 0x600, 29);
void __init sh73a0_register_twd(void)
WARNING: multiple messages have this Message-ID (diff)
From: magnus.damm@gmail.com (Magnus Damm)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 05/06] ARM: shmobile: Common shmobile_scu_base in headsmp-scu.S
Date: Wed, 13 Feb 2013 22:47:17 +0900 [thread overview]
Message-ID: <20130213134717.12153.6162.sendpatchset@w520> (raw)
In-Reply-To: <20130213134628.12153.47120.sendpatchset@w520>
From: Magnus Damm <damm@opensource.se>
Update the code in headsmp-scu.S to use a global
shmobile_scu_base variable both for convenient SCU
base address storage and for the early SCU setup
code in shmobile_secondary_vector_scu.
With this patch applied r8a7779, sh73a0 and EMEV2
all make use of the global shmobile_scu_base
variable. However only sh73a0 makes use of the SCU
bring up code in shmobile_secondary_vector_scu.
Signed-off-by: Magnus Damm <damm@opensource.se>
---
arch/arm/mach-shmobile/Makefile | 4 ++--
arch/arm/mach-shmobile/headsmp-scu.S | 8 +++++++-
arch/arm/mach-shmobile/include/mach/common.h | 1 +
arch/arm/mach-shmobile/smp-emev2.c | 2 --
arch/arm/mach-shmobile/smp-r8a7779.c | 2 --
arch/arm/mach-shmobile/smp-sh73a0.c | 2 --
6 files changed, 10 insertions(+), 9 deletions(-)
--- 0009/arch/arm/mach-shmobile/Makefile
+++ work/arch/arm/mach-shmobile/Makefile 2013-02-13 21:54:34.000000000 +0900
@@ -16,8 +16,8 @@ obj-$(CONFIG_ARCH_EMEV2) += setup-emev2.
smp-y := platsmp.o headsmp.o
smp-$(CONFIG_HOTPLUG_CPU) += hotplug.o
smp-$(CONFIG_ARCH_SH73A0) += smp-sh73a0.o headsmp-scu.o
-smp-$(CONFIG_ARCH_R8A7779) += smp-r8a7779.o
-smp-$(CONFIG_ARCH_EMEV2) += smp-emev2.o
+smp-$(CONFIG_ARCH_R8A7779) += smp-r8a7779.o headsmp-scu.o
+smp-$(CONFIG_ARCH_EMEV2) += smp-emev2.o headsmp-scu.o
# IRQ objects
obj-$(CONFIG_ARCH_SH7372) += entry-intc.o
--- 0009/arch/arm/mach-shmobile/headsmp-scu.S
+++ work/arch/arm/mach-shmobile/headsmp-scu.S 2013-02-13 21:54:27.000000000 +0900
@@ -39,7 +39,8 @@ ENTRY(shmobile_secondary_vector_scu)
mrc p15, 0, r0, c0, c0, 5 @ read MIPDR
and r0, r0, #3 @ mask out cpu ID
lsl r0, r0, #3 @ we will shift by cpu_id * 8 bits
- mov r1, #0xf0000000 @ SCU base address
+ ldr r1, =shmobile_scu_base
+ ldr r1, [r1] @ SCU base address
ldr r2, [r1, #8] @ SCU Power Status Register
mov r3, #3
bic r2, r2, r3, lsl r0 @ Clear bits of our CPU (Run Mode)
@@ -48,3 +49,8 @@ ENTRY(shmobile_secondary_vector_scu)
ldr pc, 1f
1: .long shmobile_invalidate_start - PAGE_OFFSET + PLAT_PHYS_OFFSET
ENDPROC(shmobile_secondary_vector_scu)
+
+ .text
+ .globl shmobile_scu_base
+shmobile_scu_base:
+ .space 4
--- 0009/arch/arm/mach-shmobile/include/mach/common.h
+++ work/arch/arm/mach-shmobile/include/mach/common.h 2013-02-13 21:54:27.000000000 +0900
@@ -96,6 +96,7 @@ extern int shmobile_cpu_is_dead(unsigned
static inline int shmobile_cpu_is_dead(unsigned int cpu) { return 1; }
#endif
+extern void __iomem *shmobile_scu_base;
extern void shmobile_smp_init_cpus(unsigned int ncores);
static inline void __init shmobile_init_late(void)
--- 0008/arch/arm/mach-shmobile/smp-emev2.c
+++ work/arch/arm/mach-shmobile/smp-emev2.c 2013-02-13 21:54:27.000000000 +0900
@@ -32,8 +32,6 @@
#define EMEV2_SCU_BASE 0x1e000000
-static void __iomem *shmobile_scu_base;
-
static DEFINE_SPINLOCK(scu_lock);
static void modify_scu_cpu_psr(unsigned long set, unsigned long clr)
--- 0007/arch/arm/mach-shmobile/smp-r8a7779.c
+++ work/arch/arm/mach-shmobile/smp-r8a7779.c 2013-02-13 21:54:27.000000000 +0900
@@ -33,8 +33,6 @@
#define AVECR IOMEM(0xfe700040)
#define R8A7779_SCU_BASE IOMEM(0xf0000000)
-static void __iomem *shmobile_scu_base;
-
static struct r8a7779_pm_ch r8a7779_ch_cpu1 = {
.chan_offs = 0x40, /* PWRSR0 .. PWRER0 */
.chan_bit = 1, /* ARM1 */
--- 0009/arch/arm/mach-shmobile/smp-sh73a0.c
+++ work/arch/arm/mach-shmobile/smp-sh73a0.c 2013-02-13 21:54:27.000000000 +0900
@@ -41,8 +41,6 @@
#define SH73A0_SCU_BASE IOMEM(0xf0000000)
-static void __iomem *shmobile_scu_base;
-
#ifdef CONFIG_HAVE_ARM_TWD
static DEFINE_TWD_LOCAL_TIMER(twd_local_timer, SH73A0_SCU_BASE + 0x600, 29);
void __init sh73a0_register_twd(void)
next prev parent reply other threads:[~2013-02-13 13:47 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-02-13 13:46 [PATCH 00/06] ARM: shmobile: SMP Cortex-A9 SCU rework Magnus Damm
2013-02-13 13:46 ` Magnus Damm
2013-02-13 13:46 ` [PATCH 01/06] ARM: shmobile: Kill off sh73a0 scu_base_addr() function Magnus Damm
2013-02-13 13:46 ` Magnus Damm
2013-02-16 12:35 ` Arnd Bergmann
2013-02-16 12:35 ` Arnd Bergmann
2013-02-18 5:46 ` Magnus Damm
2013-02-18 5:46 ` Magnus Damm
2013-02-13 13:46 ` [PATCH 02/06] ARM: shmobile: Kill off r8a7779 " Magnus Damm
2013-02-13 13:46 ` Magnus Damm
2013-02-13 13:46 ` [PATCH 03/06] ARM: shmobile: Rework EMEV2 scu_base variable Magnus Damm
2013-02-13 13:46 ` Magnus Damm
2013-02-13 13:47 ` [PATCH 04/06] ARM: shmobile: Move headsmp-sh73a0.S to headsmp-scu.S Magnus Damm
2013-02-13 13:47 ` Magnus Damm
2013-02-13 13:47 ` Magnus Damm [this message]
2013-02-13 13:47 ` [PATCH 05/06] ARM: shmobile: Common shmobile_scu_base in headsmp-scu.S Magnus Damm
2013-02-17 22:20 ` Bastian Hecht
2013-02-17 22:20 ` Bastian Hecht
2013-02-18 5:40 ` Magnus Damm
2013-02-18 5:40 ` Magnus Damm
2013-02-18 14:56 ` Bastian Hecht
2013-02-18 14:56 ` Bastian Hecht
2013-02-13 13:47 ` [PATCH 06/06] ARM: shmobile: Update EMEV2 to use scu_power_mode() Magnus Damm
2013-02-13 13:47 ` Magnus Damm
2013-02-14 3:34 ` [PATCH 00/06] ARM: shmobile: SMP Cortex-A9 SCU rework Simon Horman
2013-02-14 3:34 ` Simon Horman
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=20130213134717.12153.6162.sendpatchset@w520 \
--to=magnus.damm@gmail.com \
--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 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.