[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20130109135816.2d65e46e24391fb56a09fd76@canb.auug.org.au>
Date: Wed, 9 Jan 2013 13:58:16 +1100
From: Stephen Rothwell <sfr@...b.auug.org.au>
To: Stephen Warren <swarren@...dia.com>,
Colin Cross <ccross@...roid.com>,
Olof Johansson <olof@...om.net>
Cc: linux-next@...r.kernel.org, linux-kernel@...r.kernel.org,
Dietmar Eggemann <dietmar.eggemann@....com>,
Will Deacon <will.deacon@....com>,
Joseph Lo <josephl@...dia.com>
Subject: linux-next: manual merge of the tegra tree with the tree
Hi all,
Today's linux-next merge of the tegra tree got a conflict in
arch/arm/mach-tegra/headsmp.S between commit bc4f1bdabc89 ("ARM:
coresight: common definition for (OS) Lock Access Register key value")
from the arm-perf tree and commit 2a3eb5bc45bd ("ARM: tegra: make device
can run on UP") from the tegra tree.
I fixed it up (see below) and can carry the fix as necessary (no action
is required).
--
Cheers,
Stephen Rothwell sfr@...b.auug.org.au
diff --cc arch/arm/mach-tegra/headsmp.S
index b154213,fd473f2..0000000
--- a/arch/arm/mach-tegra/headsmp.S
+++ b/arch/arm/mach-tegra/headsmp.S
@@@ -1,67 -1,9 +1,11 @@@
#include <linux/linkage.h>
#include <linux/init.h>
- #include <asm/cache.h>
- #include <asm/asm-offsets.h>
- #include <asm/hardware/cache-l2x0.h>
+#include <asm/hardware/coresight.h>
+
- #include "flowctrl.h"
- #include "iomap.h"
- #include "reset.h"
#include "sleep.h"
- #define APB_MISC_GP_HIDREV 0x804
- #define PMC_SCRATCH41 0x140
-
- #define RESET_DATA(x) ((TEGRA_RESET_##x)*4)
-
.section ".text.head", "ax"
- __CPUINIT
-
- /*
- * Tegra specific entry point for secondary CPUs.
- * The secondary kernel init calls v7_flush_dcache_all before it enables
- * the L1; however, the L1 comes out of reset in an undefined state, so
- * the clean + invalidate performed by v7_flush_dcache_all causes a bunch
- * of cache lines with uninitialized data and uninitialized tags to get
- * written out to memory, which does really unpleasant things to the main
- * processor. We fix this by performing an invalidate, rather than a
- * clean + invalidate, before jumping into the kernel.
- */
- ENTRY(v7_invalidate_l1)
- mov r0, #0
- mcr p15, 2, r0, c0, c0, 0
- mrc p15, 1, r0, c0, c0, 0
-
- ldr r1, =0x7fff
- and r2, r1, r0, lsr #13
-
- ldr r1, =0x3ff
-
- and r3, r1, r0, lsr #3 @ NumWays - 1
- add r2, r2, #1 @ NumSets
-
- and r0, r0, #0x7
- add r0, r0, #4 @ SetShift
-
- clz r1, r3 @ WayShift
- add r4, r3, #1 @ NumWays
- 1: sub r2, r2, #1 @ NumSets--
- mov r3, r4 @ Temp = NumWays
- 2: subs r3, r3, #1 @ Temp--
- mov r5, r3, lsl r1
- mov r6, r2, lsl r0
- orr r5, r5, r6 @ Reg = (Temp<<WayShift)|(NumSets<<SetShift)
- mcr p15, 0, r5, c7, c6, 2
- bgt 2b
- cmp r2, #0
- bgt 1b
- dsb
- isb
- mov pc, lr
- ENDPROC(v7_invalidate_l1)
-
ENTRY(tegra_secondary_startup)
bl v7_invalidate_l1
Content of type "application/pgp-signature" skipped
Powered by blists - more mailing lists