summaryrefslogtreecommitdiffstats
path: root/arch/arm/boot/compressed/misc.c
diff options
context:
space:
mode:
authorLinus Torvalds2010-01-21 16:15:10 +0100
committerLinus Torvalds2010-01-21 16:15:10 +0100
commitdef20529227a5c0938c374d11781bd0dbd5edee4 (patch)
tree76ba59d7dfdb858892996a59e95a892b43e0e6d2 /arch/arm/boot/compressed/misc.c
parentMerge git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog (diff)
parentARM: 5888/1: arm: Update comments in cacheflush.h and remove unnecessary V6 a... (diff)
downloadkernel-qcow2-linux-def20529227a5c0938c374d11781bd0dbd5edee4.tar.gz
kernel-qcow2-linux-def20529227a5c0938c374d11781bd0dbd5edee4.tar.xz
kernel-qcow2-linux-def20529227a5c0938c374d11781bd0dbd5edee4.zip
Merge master.kernel.org:/home/rmk/linux-2.6-arm
* master.kernel.org:/home/rmk/linux-2.6-arm: ARM: 5888/1: arm: Update comments in cacheflush.h and remove unnecessary V6 and V7 comments ARM: 5886/1: arm: Fix cpu_proc_fin() for proc-v7.S and make kexec work ARM: 5885/1: arm: Flush TLB entries in setup_mm_for_reboot() ARM: 5884/1: arm: Fix DCC console for v7 ARM: 5883/1: Revert "disable NX support for OABI-supporting kernels" ARM: 5882/1: ARM: Fix uncompress code compile for different defines of flush(void) ARM: fix badly placed mach/plat entries in Kconfig & Makefile
Diffstat (limited to 'arch/arm/boot/compressed/misc.c')
-rw-r--r--arch/arm/boot/compressed/misc.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/arch/arm/boot/compressed/misc.c b/arch/arm/boot/compressed/misc.c
index 7e0fe4d42c7b..56a0d116d271 100644
--- a/arch/arm/boot/compressed/misc.c
+++ b/arch/arm/boot/compressed/misc.c
@@ -53,6 +53,18 @@ static void icedcc_putc(int ch)
asm("mcr p14, 0, %0, c0, c5, 0" : : "r" (ch));
}
+
+#elif defined(CONFIG_CPU_V7)
+
+static void icedcc_putc(int ch)
+{
+ asm(
+ "wait: mrc p14, 0, pc, c0, c1, 0 \n\
+ bcs wait \n\
+ mcr p14, 0, %0, c0, c5, 0 "
+ : : "r" (ch));
+}
+
#elif defined(CONFIG_CPU_XSCALE)
static void icedcc_putc(int ch)
@@ -88,7 +100,6 @@ static void icedcc_putc(int ch)
#endif
#define putc(ch) icedcc_putc(ch)
-#define flush() do { } while (0)
#endif
static void putstr(const char *ptr)