aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/Kconfig26
-rw-r--r--arch/arm/Kconfig.debug12
-rw-r--r--arch/arm/boot/compressed/Makefile3
-rw-r--r--arch/arm/boot/compressed/debug.S12
-rw-r--r--arch/arm/boot/compressed/misc.c8
-rw-r--r--arch/arm/boot/dts/armada-370-mirabox.dts2
-rw-r--r--arch/arm/boot/dts/armada-370.dtsi6
-rw-r--r--arch/arm/boot/dts/at91sam9x5.dtsi28
-rw-r--r--arch/arm/boot/dts/dbx5x0.dtsi4
-rw-r--r--arch/arm/boot/dts/exynos4.dtsi9
-rw-r--r--arch/arm/boot/dts/exynos5440.dtsi6
-rw-r--r--arch/arm/boot/dts/imx28-m28evk.dts1
-rw-r--r--arch/arm/boot/dts/imx28-sps1.dts1
-rw-r--r--arch/arm/boot/dts/imx6qdl.dtsi1
-rw-r--r--arch/arm/boot/dts/kirkwood-goflexnet.dts1
-rw-r--r--arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts14
-rw-r--r--arch/arm/boot/dts/orion5x.dtsi9
-rw-r--r--arch/arm/boot/dts/tegra20.dtsi2
-rw-r--r--arch/arm/boot/dts/tegra30.dtsi2
-rw-r--r--arch/arm/include/asm/atomic.h24
-rw-r--r--arch/arm/include/asm/delay.h2
-rw-r--r--arch/arm/include/asm/glue-cache.h8
-rw-r--r--arch/arm/include/asm/hardware/iop3xx.h2
-rw-r--r--arch/arm/include/asm/highmem.h7
-rw-r--r--arch/arm/include/asm/mach/pci.h11
-rw-r--r--arch/arm/include/asm/mmu_context.h2
-rw-r--r--arch/arm/include/asm/pgtable-3level.h2
-rw-r--r--arch/arm/include/asm/pgtable.h9
-rw-r--r--arch/arm/include/asm/thread_info.h1
-rw-r--r--arch/arm/include/asm/tlbflush.h28
-rw-r--r--arch/arm/include/debug/uncompress.h7
-rw-r--r--arch/arm/kernel/bios32.c6
-rw-r--r--arch/arm/kernel/entry-armv.S46
-rw-r--r--arch/arm/kernel/entry-common.S20
-rw-r--r--arch/arm/kernel/entry-header.S66
-rw-r--r--arch/arm/kernel/head.S2
-rw-r--r--arch/arm/kernel/hw_breakpoint.c8
-rw-r--r--arch/arm/kernel/perf_event.c5
-rw-r--r--arch/arm/kernel/return_address.c5
-rw-r--r--arch/arm/kernel/sched_clock.c4
-rw-r--r--arch/arm/kernel/setup.c29
-rw-r--r--arch/arm/kernel/smp.c45
-rw-r--r--arch/arm/kernel/smp_tlb.c67
-rw-r--r--arch/arm/kernel/tcm.c1
-rw-r--r--arch/arm/kvm/arm.c1
-rw-r--r--arch/arm/kvm/coproc.c4
-rw-r--r--arch/arm/kvm/vgic.c35
-rw-r--r--arch/arm/lib/delay.c8
-rw-r--r--arch/arm/mach-at91/include/mach/gpio.h8
-rw-r--r--arch/arm/mach-at91/irq.c20
-rw-r--r--arch/arm/mach-at91/pm.c10
-rw-r--r--arch/arm/mach-cns3xxx/core.c16
-rw-r--r--arch/arm/mach-cns3xxx/include/mach/cns3xxx.h16
-rw-r--r--arch/arm/mach-davinci/dma.c3
-rw-r--r--arch/arm/mach-ep93xx/include/mach/uncompress.h10
-rw-r--r--arch/arm/mach-exynos/hotplug.c1
-rw-r--r--arch/arm/mach-footbridge/Kconfig1
-rw-r--r--arch/arm/mach-highbank/hotplug.c11
-rw-r--r--arch/arm/mach-imx/clk-imx35.c3
-rw-r--r--arch/arm/mach-imx/clk-imx6q.c3
-rw-r--r--arch/arm/mach-imx/common.h2
-rw-r--r--arch/arm/mach-imx/hotplug.c14
-rw-r--r--arch/arm/mach-imx/imx25-dt.c5
-rw-r--r--arch/arm/mach-imx/src.c12
-rw-r--r--arch/arm/mach-kirkwood/board-iomega_ix2_200.c7
-rw-r--r--arch/arm/mach-kirkwood/guruplug-setup.c2
-rw-r--r--arch/arm/mach-kirkwood/openrd-setup.c1
-rw-r--r--arch/arm/mach-kirkwood/rd88f6281-setup.c1
-rw-r--r--arch/arm/mach-mmp/gplugd.c1
-rw-r--r--arch/arm/mach-msm/hotplug.c4
-rw-r--r--arch/arm/mach-msm/timer.c5
-rw-r--r--arch/arm/mach-mvebu/irq-armada-370-xp.c24
-rw-r--r--arch/arm/mach-mxs/mach-mxs.c24
-rw-r--r--arch/arm/mach-omap1/clock_data.c12
-rw-r--r--arch/arm/mach-omap2/cclock44xx_data.c20
-rw-r--r--arch/arm/mach-omap2/common.h3
-rw-r--r--arch/arm/mach-omap2/io.c18
-rw-r--r--arch/arm/mach-omap2/omap-hotplug.c3
-rw-r--r--arch/arm/mach-omap2/omap_hwmod.c7
-rw-r--r--arch/arm/mach-omap2/omap_hwmod.h9
-rw-r--r--arch/arm/mach-omap2/omap_hwmod_3xxx_data.c7
-rw-r--r--arch/arm/mach-omap2/omap_hwmod_44xx_data.c6
-rw-r--r--arch/arm/mach-omap2/timer.c4
-rw-r--r--arch/arm/mach-prima2/hotplug.c3
-rw-r--r--arch/arm/mach-realview/hotplug.c2
-rw-r--r--arch/arm/mach-s3c24xx/include/mach/irqs.h4
-rw-r--r--arch/arm/mach-s3c24xx/irq.c2
-rw-r--r--arch/arm/mach-s5pv210/clock.c36
-rw-r--r--arch/arm/mach-s5pv210/mach-goni.c2
-rw-r--r--arch/arm/mach-shmobile/board-marzen.c1
-rw-r--r--arch/arm/mach-shmobile/smp-sh73a0.c8
-rw-r--r--arch/arm/mach-spear13xx/hotplug.c2
-rw-r--r--arch/arm/mach-tegra/common.h1
-rw-r--r--arch/arm/mach-tegra/hotplug.c10
-rw-r--r--arch/arm/mach-tegra/platsmp.c1
-rw-r--r--arch/arm/mach-ux500/board-mop500-sdi.c1
-rw-r--r--arch/arm/mach-ux500/board-mop500.c12
-rw-r--r--arch/arm/mach-ux500/board-mop500.h1
-rw-r--r--arch/arm/mach-ux500/cpu-db8500.c5
-rw-r--r--arch/arm/mach-ux500/hotplug.c3
-rw-r--r--arch/arm/mach-vexpress/hotplug.c2
-rw-r--r--arch/arm/mm/Kconfig5
-rw-r--r--arch/arm/mm/Makefile1
-rw-r--r--arch/arm/mm/cache-feroceon-l2.c1
-rw-r--r--arch/arm/mm/cache-l2x0.c11
-rw-r--r--arch/arm/mm/cache-v3.S137
-rw-r--r--arch/arm/mm/cache-v4.S2
-rw-r--r--arch/arm/mm/context.c3
-rw-r--r--arch/arm/mm/dma-mapping.c15
-rw-r--r--arch/arm/mm/flush.c15
-rw-r--r--arch/arm/mm/mmu.c75
-rw-r--r--arch/arm/mm/proc-arm740.S30
-rw-r--r--arch/arm/mm/proc-arm920.S2
-rw-r--r--arch/arm/mm/proc-arm926.S2
-rw-r--r--arch/arm/mm/proc-mohawk.S2
-rw-r--r--arch/arm/mm/proc-sa1100.S2
-rw-r--r--arch/arm/mm/proc-syms.c2
-rw-r--r--arch/arm/mm/proc-v6.S4
-rw-r--r--arch/arm/mm/proc-v7-2level.S3
-rw-r--r--arch/arm/mm/proc-v7-3level.S3
-rw-r--r--arch/arm/mm/proc-v7.S26
-rw-r--r--arch/arm/mm/proc-xsc3.S2
-rw-r--r--arch/arm/mm/proc-xscale.S2
-rw-r--r--arch/arm/mm/tcm.h (renamed from arch/arm/kernel/tcm.h)0
-rw-r--r--arch/arm/net/bpf_jit_32.c2
-rw-r--r--arch/arm/tools/mach-types991
126 files changed, 1195 insertions, 1134 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 7caf8ddea046..00bdfdbdd4a8 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -49,7 +49,6 @@ config ARM
49 select HAVE_REGS_AND_STACK_ACCESS_API 49 select HAVE_REGS_AND_STACK_ACCESS_API
50 select HAVE_SYSCALL_TRACEPOINTS 50 select HAVE_SYSCALL_TRACEPOINTS
51 select HAVE_UID16 51 select HAVE_UID16
52 select VIRT_TO_BUS
53 select KTIME_SCALAR 52 select KTIME_SCALAR
54 select PERF_USE_VMALLOC 53 select PERF_USE_VMALLOC
55 select RTC_LIB 54 select RTC_LIB
@@ -59,6 +58,7 @@ config ARM
59 select CLONE_BACKWARDS 58 select CLONE_BACKWARDS
60 select OLD_SIGSUSPEND3 59 select OLD_SIGSUSPEND3
61 select OLD_SIGACTION 60 select OLD_SIGACTION
61 select HAVE_CONTEXT_TRACKING
62 help 62 help
63 The ARM series is a line of low-power-consumption RISC chip designs 63 The ARM series is a line of low-power-consumption RISC chip designs
64 licensed by ARM Ltd and targeted at embedded applications and 64 licensed by ARM Ltd and targeted at embedded applications and
@@ -743,6 +743,7 @@ config ARCH_RPC
743 select NEED_MACH_IO_H 743 select NEED_MACH_IO_H
744 select NEED_MACH_MEMORY_H 744 select NEED_MACH_MEMORY_H
745 select NO_IOPORT 745 select NO_IOPORT
746 select VIRT_TO_BUS
746 help 747 help
747 On the Acorn Risc-PC, Linux can support the internal IDE disk and 748 On the Acorn Risc-PC, Linux can support the internal IDE disk and
748 CD-ROM interface, serial and parallel port, and the floppy drive. 749 CD-ROM interface, serial and parallel port, and the floppy drive.
@@ -878,6 +879,7 @@ config ARCH_SHARK
878 select ISA_DMA 879 select ISA_DMA
879 select NEED_MACH_MEMORY_H 880 select NEED_MACH_MEMORY_H
880 select PCI 881 select PCI
882 select VIRT_TO_BUS
881 select ZONE_DMA 883 select ZONE_DMA
882 help 884 help
883 Support for the StrongARM based Digital DNARD machine, also known 885 Support for the StrongARM based Digital DNARD machine, also known
@@ -1005,12 +1007,12 @@ config ARCH_MULTI_V4_V5
1005 bool 1007 bool
1006 1008
1007config ARCH_MULTI_V6 1009config ARCH_MULTI_V6
1008 bool "ARMv6 based platforms (ARM11, Scorpion, ...)" 1010 bool "ARMv6 based platforms (ARM11)"
1009 select ARCH_MULTI_V6_V7 1011 select ARCH_MULTI_V6_V7
1010 select CPU_V6 1012 select CPU_V6
1011 1013
1012config ARCH_MULTI_V7 1014config ARCH_MULTI_V7
1013 bool "ARMv7 based platforms (Cortex-A, PJ4, Krait)" 1015 bool "ARMv7 based platforms (Cortex-A, PJ4, Scorpion, Krait)"
1014 default y 1016 default y
1015 select ARCH_MULTI_V6_V7 1017 select ARCH_MULTI_V6_V7
1016 select ARCH_VEXPRESS 1018 select ARCH_VEXPRESS
@@ -1182,9 +1184,9 @@ config ARM_NR_BANKS
1182 default 8 1184 default 8
1183 1185
1184config IWMMXT 1186config IWMMXT
1185 bool "Enable iWMMXt support" 1187 bool "Enable iWMMXt support" if !CPU_PJ4
1186 depends on CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK || CPU_PJ4 1188 depends on CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK || CPU_PJ4
1187 default y if PXA27x || PXA3xx || ARCH_MMP 1189 default y if PXA27x || PXA3xx || ARCH_MMP || CPU_PJ4
1188 help 1190 help
1189 Enable support for iWMMXt context switching at run time if 1191 Enable support for iWMMXt context switching at run time if
1190 running on a CPU that supports it. 1192 running on a CPU that supports it.
@@ -1438,6 +1440,16 @@ config ARM_ERRATA_775420
1438 to deadlock. This workaround puts DSB before executing ISB if 1440 to deadlock. This workaround puts DSB before executing ISB if
1439 an abort may occur on cache maintenance. 1441 an abort may occur on cache maintenance.
1440 1442
1443config ARM_ERRATA_798181
1444 bool "ARM errata: TLBI/DSB failure on Cortex-A15"
1445 depends on CPU_V7 && SMP
1446 help
1447 On Cortex-A15 (r0p0..r3p2) the TLBI*IS/DSB operations are not
1448 adequately shooting down all use of the old entries. This
1449 option enables the Linux kernel workaround for this erratum
1450 which sends an IPI to the CPUs that are running the same ASID
1451 as the one being invalidated.
1452
1441endmenu 1453endmenu
1442 1454
1443source "arch/arm/common/Kconfig" 1455source "arch/arm/common/Kconfig"
@@ -1461,10 +1473,6 @@ config ISA_DMA
1461 bool 1473 bool
1462 select ISA_DMA_API 1474 select ISA_DMA_API
1463 1475
1464config ARCH_NO_VIRT_TO_BUS
1465 def_bool y
1466 depends on !ARCH_RPC && !ARCH_NETWINDER && !ARCH_SHARK
1467
1468# Select ISA DMA interface 1476# Select ISA DMA interface
1469config ISA_DMA_API 1477config ISA_DMA_API
1470 bool 1478 bool
diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
index ecfcdba2d17c..791fbeba40c6 100644
--- a/arch/arm/Kconfig.debug
+++ b/arch/arm/Kconfig.debug
@@ -495,6 +495,7 @@ config DEBUG_IMX_UART_PORT
495 DEBUG_IMX53_UART || \ 495 DEBUG_IMX53_UART || \
496 DEBUG_IMX6Q_UART 496 DEBUG_IMX6Q_UART
497 default 1 497 default 1
498 depends on ARCH_MXC
498 help 499 help
499 Choose UART port on which kernel low-level debug messages 500 Choose UART port on which kernel low-level debug messages
500 should be output. 501 should be output.
@@ -601,6 +602,17 @@ config DEBUG_LL_INCLUDE
601 default "debug/zynq.S" if DEBUG_ZYNQ_UART0 || DEBUG_ZYNQ_UART1 602 default "debug/zynq.S" if DEBUG_ZYNQ_UART0 || DEBUG_ZYNQ_UART1
602 default "mach/debug-macro.S" 603 default "mach/debug-macro.S"
603 604
605config DEBUG_UNCOMPRESS
606 bool
607 default y if ARCH_MULTIPLATFORM && DEBUG_LL && \
608 !DEBUG_OMAP2PLUS_UART && \
609 !DEBUG_TEGRA_UART
610
611config UNCOMPRESS_INCLUDE
612 string
613 default "debug/uncompress.h" if ARCH_MULTIPLATFORM
614 default "mach/uncompress.h"
615
604config EARLY_PRINTK 616config EARLY_PRINTK
605 bool "Early printk" 617 bool "Early printk"
606 depends on DEBUG_LL 618 depends on DEBUG_LL
diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile
index afed28e37ea5..3580d57ea218 100644
--- a/arch/arm/boot/compressed/Makefile
+++ b/arch/arm/boot/compressed/Makefile
@@ -24,6 +24,9 @@ endif
24AFLAGS_head.o += -DTEXT_OFFSET=$(TEXT_OFFSET) 24AFLAGS_head.o += -DTEXT_OFFSET=$(TEXT_OFFSET)
25HEAD = head.o 25HEAD = head.o
26OBJS += misc.o decompress.o 26OBJS += misc.o decompress.o
27ifeq ($(CONFIG_DEBUG_UNCOMPRESS),y)
28OBJS += debug.o
29endif
27FONTC = $(srctree)/drivers/video/console/font_acorn_8x8.c 30FONTC = $(srctree)/drivers/video/console/font_acorn_8x8.c
28 31
29# string library code (-Os is enforced to keep it much smaller) 32# string library code (-Os is enforced to keep it much smaller)
diff --git a/arch/arm/boot/compressed/debug.S b/arch/arm/boot/compressed/debug.S
new file mode 100644
index 000000000000..6e8382d5b7a4
--- /dev/null
+++ b/arch/arm/boot/compressed/debug.S
@@ -0,0 +1,12 @@
1#include <linux/linkage.h>
2#include <asm/assembler.h>
3
4#include CONFIG_DEBUG_LL_INCLUDE
5
6ENTRY(putc)
7 addruart r1, r2, r3
8 waituart r3, r1
9 senduart r0, r1
10 busyuart r3, r1
11 mov pc, lr
12ENDPROC(putc)
diff --git a/arch/arm/boot/compressed/misc.c b/arch/arm/boot/compressed/misc.c
index df899834d84e..31bd43b82095 100644
--- a/arch/arm/boot/compressed/misc.c
+++ b/arch/arm/boot/compressed/misc.c
@@ -25,13 +25,7 @@ unsigned int __machine_arch_type;
25static void putstr(const char *ptr); 25static void putstr(const char *ptr);
26extern void error(char *x); 26extern void error(char *x);
27 27
28#ifdef CONFIG_ARCH_MULTIPLATFORM 28#include CONFIG_UNCOMPRESS_INCLUDE
29static inline void putc(int c) {}
30static inline void flush(void) {}
31static inline void arch_decomp_setup(void) {}
32#else
33#include <mach/uncompress.h>
34#endif
35 29
36#ifdef CONFIG_DEBUG_ICEDCC 30#ifdef CONFIG_DEBUG_ICEDCC
37 31
diff --git a/arch/arm/boot/dts/armada-370-mirabox.dts b/arch/arm/boot/dts/armada-370-mirabox.dts
index dd0c57dd9f30..3234875824dc 100644
--- a/arch/arm/boot/dts/armada-370-mirabox.dts
+++ b/arch/arm/boot/dts/armada-370-mirabox.dts
@@ -54,7 +54,7 @@
54 }; 54 };
55 55
56 mvsdio@d00d4000 { 56 mvsdio@d00d4000 {
57 pinctrl-0 = <&sdio_pins2>; 57 pinctrl-0 = <&sdio_pins3>;
58 pinctrl-names = "default"; 58 pinctrl-names = "default";
59 status = "okay"; 59 status = "okay";
60 /* 60 /*
diff --git a/arch/arm/boot/dts/armada-370.dtsi b/arch/arm/boot/dts/armada-370.dtsi
index 8188d138020e..a195debb67d3 100644
--- a/arch/arm/boot/dts/armada-370.dtsi
+++ b/arch/arm/boot/dts/armada-370.dtsi
@@ -59,6 +59,12 @@
59 "mpp50", "mpp51", "mpp52"; 59 "mpp50", "mpp51", "mpp52";
60 marvell,function = "sd0"; 60 marvell,function = "sd0";
61 }; 61 };
62
63 sdio_pins3: sdio-pins3 {
64 marvell,pins = "mpp48", "mpp49", "mpp50",
65 "mpp51", "mpp52", "mpp53";
66 marvell,function = "sd0";
67 };
62 }; 68 };
63 69
64 gpio0: gpio@d0018100 { 70 gpio0: gpio@d0018100 {
diff --git a/arch/arm/boot/dts/at91sam9x5.dtsi b/arch/arm/boot/dts/at91sam9x5.dtsi
index aa98e641931f..a98c0d50fbbe 100644
--- a/arch/arm/boot/dts/at91sam9x5.dtsi
+++ b/arch/arm/boot/dts/at91sam9x5.dtsi
@@ -238,8 +238,32 @@
238 nand { 238 nand {
239 pinctrl_nand: nand-0 { 239 pinctrl_nand: nand-0 {
240 atmel,pins = 240 atmel,pins =
241 <3 4 0x0 0x1 /* PD5 gpio RDY pin pull_up */ 241 <3 0 0x1 0x0 /* PD0 periph A Read Enable */
242 3 5 0x0 0x1>; /* PD4 gpio enable pin pull_up */ 242 3 1 0x1 0x0 /* PD1 periph A Write Enable */
243 3 2 0x1 0x0 /* PD2 periph A Address Latch Enable */
244 3 3 0x1 0x0 /* PD3 periph A Command Latch Enable */
245 3 4 0x0 0x1 /* PD4 gpio Chip Enable pin pull_up */
246 3 5 0x0 0x1 /* PD5 gpio RDY/BUSY pin pull_up */
247 3 6 0x1 0x0 /* PD6 periph A Data bit 0 */
248 3 7 0x1 0x0 /* PD7 periph A Data bit 1 */
249 3 8 0x1 0x0 /* PD8 periph A Data bit 2 */
250 3 9 0x1 0x0 /* PD9 periph A Data bit 3 */
251 3 10 0x1 0x0 /* PD10 periph A Data bit 4 */
252 3 11 0x1 0x0 /* PD11 periph A Data bit 5 */
253 3 12 0x1 0x0 /* PD12 periph A Data bit 6 */
254 3 13 0x1 0x0>; /* PD13 periph A Data bit 7 */
255 };
256
257 pinctrl_nand_16bits: nand_16bits-0 {
258 atmel,pins =
259 <3 14 0x1 0x0 /* PD14 periph A Data bit 8 */
260 3 15 0x1 0x0 /* PD15 periph A Data bit 9 */
261 3 16 0x1 0x0 /* PD16 periph A Data bit 10 */
262 3 17 0x1 0x0 /* PD17 periph A Data bit 11 */
263 3 18 0x1 0x0 /* PD18 periph A Data bit 12 */
264 3 19 0x1 0x0 /* PD19 periph A Data bit 13 */
265 3 20 0x1 0x0 /* PD20 periph A Data bit 14 */
266 3 21 0x1 0x0>; /* PD21 periph A Data bit 15 */
243 }; 267 };
244 }; 268 };
245 269
diff --git a/arch/arm/boot/dts/dbx5x0.dtsi b/arch/arm/boot/dts/dbx5x0.dtsi
index 9de93096601a..aaa63d0a8096 100644
--- a/arch/arm/boot/dts/dbx5x0.dtsi
+++ b/arch/arm/boot/dts/dbx5x0.dtsi
@@ -191,8 +191,8 @@
191 191
192 prcmu: prcmu@80157000 { 192 prcmu: prcmu@80157000 {
193 compatible = "stericsson,db8500-prcmu"; 193 compatible = "stericsson,db8500-prcmu";
194 reg = <0x80157000 0x1000>; 194 reg = <0x80157000 0x1000>, <0x801b0000 0x8000>, <0x801b8000 0x1000>;
195 reg-names = "prcmu"; 195 reg-names = "prcmu", "prcmu-tcpm", "prcmu-tcdm";
196 interrupts = <0 47 0x4>; 196 interrupts = <0 47 0x4>;
197 #address-cells = <1>; 197 #address-cells = <1>;
198 #size-cells = <1>; 198 #size-cells = <1>;
diff --git a/arch/arm/boot/dts/exynos4.dtsi b/arch/arm/boot/dts/exynos4.dtsi
index e1347fceb5bc..1a62bcf18aa3 100644
--- a/arch/arm/boot/dts/exynos4.dtsi
+++ b/arch/arm/boot/dts/exynos4.dtsi
@@ -275,18 +275,27 @@
275 compatible = "arm,pl330", "arm,primecell"; 275 compatible = "arm,pl330", "arm,primecell";
276 reg = <0x12680000 0x1000>; 276 reg = <0x12680000 0x1000>;
277 interrupts = <0 35 0>; 277 interrupts = <0 35 0>;
278 #dma-cells = <1>;
279 #dma-channels = <8>;
280 #dma-requests = <32>;
278 }; 281 };
279 282
280 pdma1: pdma@12690000 { 283 pdma1: pdma@12690000 {
281 compatible = "arm,pl330", "arm,primecell"; 284 compatible = "arm,pl330", "arm,primecell";
282 reg = <0x12690000 0x1000>; 285 reg = <0x12690000 0x1000>;
283 interrupts = <0 36 0>; 286 interrupts = <0 36 0>;
287 #dma-cells = <1>;
288 #dma-channels = <8>;
289 #dma-requests = <32>;
284 }; 290 };
285 291
286 mdma1: mdma@12850000 { 292 mdma1: mdma@12850000 {
287 compatible = "arm,pl330", "arm,primecell"; 293 compatible = "arm,pl330", "arm,primecell";
288 reg = <0x12850000 0x1000>; 294 reg = <0x12850000 0x1000>;
289 interrupts = <0 34 0>; 295 interrupts = <0 34 0>;
296 #dma-cells = <1>;
297 #dma-channels = <8>;
298 #dma-requests = <1>;
290 }; 299 };
291 }; 300 };
292}; 301};
diff --git a/arch/arm/boot/dts/exynos5440.dtsi b/arch/arm/boot/dts/exynos5440.dtsi
index 5f3562ad6746..9a99755920c0 100644
--- a/arch/arm/boot/dts/exynos5440.dtsi
+++ b/arch/arm/boot/dts/exynos5440.dtsi
@@ -142,12 +142,18 @@
142 compatible = "arm,pl330", "arm,primecell"; 142 compatible = "arm,pl330", "arm,primecell";
143 reg = <0x120000 0x1000>; 143 reg = <0x120000 0x1000>;
144 interrupts = <0 34 0>; 144 interrupts = <0 34 0>;
145 #dma-cells = <1>;
146 #dma-channels = <8>;
147 #dma-requests = <32>;
145 }; 148 };
146 149
147 pdma1: pdma@121B0000 { 150 pdma1: pdma@121B0000 {
148 compatible = "arm,pl330", "arm,primecell"; 151 compatible = "arm,pl330", "arm,primecell";
149 reg = <0x121000 0x1000>; 152 reg = <0x121000 0x1000>;
150 interrupts = <0 35 0>; 153 interrupts = <0 35 0>;
154 #dma-cells = <1>;
155 #dma-channels = <8>;
156 #dma-requests = <32>;
151 }; 157 };
152 }; 158 };
153 159
diff --git a/arch/arm/boot/dts/imx28-m28evk.dts b/arch/arm/boot/dts/imx28-m28evk.dts
index 6ce3d17c3a29..fd36e1cca104 100644
--- a/arch/arm/boot/dts/imx28-m28evk.dts
+++ b/arch/arm/boot/dts/imx28-m28evk.dts
@@ -152,7 +152,6 @@
152 i2c0: i2c@80058000 { 152 i2c0: i2c@80058000 {
153 pinctrl-names = "default"; 153 pinctrl-names = "default";
154 pinctrl-0 = <&i2c0_pins_a>; 154 pinctrl-0 = <&i2c0_pins_a>;
155 clock-frequency = <400000>;
156 status = "okay"; 155 status = "okay";
157 156
158 sgtl5000: codec@0a { 157 sgtl5000: codec@0a {
diff --git a/arch/arm/boot/dts/imx28-sps1.dts b/arch/arm/boot/dts/imx28-sps1.dts
index e6cde8aa7fff..6c6a5442800a 100644
--- a/arch/arm/boot/dts/imx28-sps1.dts
+++ b/arch/arm/boot/dts/imx28-sps1.dts
@@ -70,7 +70,6 @@
70 i2c0: i2c@80058000 { 70 i2c0: i2c@80058000 {
71 pinctrl-names = "default"; 71 pinctrl-names = "default";
72 pinctrl-0 = <&i2c0_pins_a>; 72 pinctrl-0 = <&i2c0_pins_a>;
73 clock-frequency = <400000>;
74 status = "okay"; 73 status = "okay";
75 74
76 rtc: rtc@51 { 75 rtc: rtc@51 {
diff --git a/arch/arm/boot/dts/imx6qdl.dtsi b/arch/arm/boot/dts/imx6qdl.dtsi
index 06ec460b4581..281a223591ff 100644
--- a/arch/arm/boot/dts/imx6qdl.dtsi
+++ b/arch/arm/boot/dts/imx6qdl.dtsi
@@ -91,6 +91,7 @@
91 compatible = "arm,cortex-a9-twd-timer"; 91 compatible = "arm,cortex-a9-twd-timer";
92 reg = <0x00a00600 0x20>; 92 reg = <0x00a00600 0x20>;
93 interrupts = <1 13 0xf01>; 93 interrupts = <1 13 0xf01>;
94 clocks = <&clks 15>;
94 }; 95 };
95 96
96 L2: l2-cache@00a02000 { 97 L2: l2-cache@00a02000 {
diff --git a/arch/arm/boot/dts/kirkwood-goflexnet.dts b/arch/arm/boot/dts/kirkwood-goflexnet.dts
index bd83b8fc7c83..c3573be7b92c 100644
--- a/arch/arm/boot/dts/kirkwood-goflexnet.dts
+++ b/arch/arm/boot/dts/kirkwood-goflexnet.dts
@@ -77,6 +77,7 @@
77 }; 77 };
78 78
79 nand@3000000 { 79 nand@3000000 {
80 chip-delay = <40>;
80 status = "okay"; 81 status = "okay";
81 82
82 partition@0 { 83 partition@0 {
diff --git a/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts b/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts
index 93c3afbef9ee..3694e94f6e99 100644
--- a/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts
+++ b/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts
@@ -96,11 +96,11 @@
96 marvell,function = "gpio"; 96 marvell,function = "gpio";
97 }; 97 };
98 pmx_led_rebuild_brt_ctrl_1: pmx-led-rebuild-brt-ctrl-1 { 98 pmx_led_rebuild_brt_ctrl_1: pmx-led-rebuild-brt-ctrl-1 {
99 marvell,pins = "mpp44"; 99 marvell,pins = "mpp46";
100 marvell,function = "gpio"; 100 marvell,function = "gpio";
101 }; 101 };
102 pmx_led_rebuild_brt_ctrl_2: pmx-led-rebuild-brt-ctrl-2 { 102 pmx_led_rebuild_brt_ctrl_2: pmx-led-rebuild-brt-ctrl-2 {
103 marvell,pins = "mpp45"; 103 marvell,pins = "mpp47";
104 marvell,function = "gpio"; 104 marvell,function = "gpio";
105 }; 105 };
106 106
@@ -157,14 +157,14 @@
157 gpios = <&gpio0 16 0>; 157 gpios = <&gpio0 16 0>;
158 linux,default-trigger = "default-on"; 158 linux,default-trigger = "default-on";
159 }; 159 };
160 health_led1 { 160 rebuild_led {
161 label = "status:white:rebuild_led";
162 gpios = <&gpio1 4 0>;
163 };
164 health_led {
161 label = "status:red:health_led"; 165 label = "status:red:health_led";
162 gpios = <&gpio1 5 0>; 166 gpios = <&gpio1 5 0>;
163 }; 167 };
164 health_led2 {
165 label = "status:white:health_led";
166 gpios = <&gpio1 4 0>;
167 };
168 backup_led { 168 backup_led {
169 label = "status:blue:backup_led"; 169 label = "status:blue:backup_led";
170 gpios = <&gpio0 15 0>; 170 gpios = <&gpio0 15 0>;
diff --git a/arch/arm/boot/dts/orion5x.dtsi b/arch/arm/boot/dts/orion5x.dtsi
index 8aad00f81ed9..f7bec3b1ba32 100644
--- a/arch/arm/boot/dts/orion5x.dtsi
+++ b/arch/arm/boot/dts/orion5x.dtsi
@@ -13,6 +13,9 @@
13 compatible = "marvell,orion5x"; 13 compatible = "marvell,orion5x";
14 interrupt-parent = <&intc>; 14 interrupt-parent = <&intc>;
15 15
16 aliases {
17 gpio0 = &gpio0;
18 };
16 intc: interrupt-controller { 19 intc: interrupt-controller {
17 compatible = "marvell,orion-intc", "marvell,intc"; 20 compatible = "marvell,orion-intc", "marvell,intc";
18 interrupt-controller; 21 interrupt-controller;
@@ -32,7 +35,9 @@
32 #gpio-cells = <2>; 35 #gpio-cells = <2>;
33 gpio-controller; 36 gpio-controller;
34 reg = <0x10100 0x40>; 37 reg = <0x10100 0x40>;
35 ngpio = <32>; 38 ngpios = <32>;
39 interrupt-controller;
40 #interrupt-cells = <2>;
36 interrupts = <6>, <7>, <8>, <9>; 41 interrupts = <6>, <7>, <8>, <9>;
37 }; 42 };
38 43
@@ -91,7 +96,7 @@
91 reg = <0x90000 0x10000>, 96 reg = <0x90000 0x10000>,
92 <0xf2200000 0x800>; 97 <0xf2200000 0x800>;
93 reg-names = "regs", "sram"; 98 reg-names = "regs", "sram";
94 interrupts = <22>; 99 interrupts = <28>;
95 status = "okay"; 100 status = "okay";
96 }; 101 };
97 }; 102 };
diff --git a/arch/arm/boot/dts/tegra20.dtsi b/arch/arm/boot/dts/tegra20.dtsi
index 48d00a099ce3..3d3f64d2111a 100644
--- a/arch/arm/boot/dts/tegra20.dtsi
+++ b/arch/arm/boot/dts/tegra20.dtsi
@@ -385,7 +385,7 @@
385 385
386 spi@7000d800 { 386 spi@7000d800 {
387 compatible = "nvidia,tegra20-slink"; 387 compatible = "nvidia,tegra20-slink";
388 reg = <0x7000d480 0x200>; 388 reg = <0x7000d800 0x200>;
389 interrupts = <0 83 0x04>; 389 interrupts = <0 83 0x04>;
390 nvidia,dma-request-selector = <&apbdma 17>; 390 nvidia,dma-request-selector = <&apbdma 17>;
391 #address-cells = <1>; 391 #address-cells = <1>;
diff --git a/arch/arm/boot/dts/tegra30.dtsi b/arch/arm/boot/dts/tegra30.dtsi
index 9d87a3ffe998..dbf46c272562 100644
--- a/arch/arm/boot/dts/tegra30.dtsi
+++ b/arch/arm/boot/dts/tegra30.dtsi
@@ -372,7 +372,7 @@
372 372
373 spi@7000d800 { 373 spi@7000d800 {
374 compatible = "nvidia,tegra30-slink", "nvidia,tegra20-slink"; 374 compatible = "nvidia,tegra30-slink", "nvidia,tegra20-slink";
375 reg = <0x7000d480 0x200>; 375 reg = <0x7000d800 0x200>;
376 interrupts = <0 83 0x04>; 376 interrupts = <0 83 0x04>;
377 nvidia,dma-request-selector = <&apbdma 17>; 377 nvidia,dma-request-selector = <&apbdma 17>;
378 #address-cells = <1>; 378 #address-cells = <1>;
diff --git a/arch/arm/include/asm/atomic.h b/arch/arm/include/asm/atomic.h
index c79f61faa3a5..da1c77d39327 100644
--- a/arch/arm/include/asm/atomic.h
+++ b/arch/arm/include/asm/atomic.h
@@ -243,6 +243,29 @@ typedef struct {
243 243
244#define ATOMIC64_INIT(i) { (i) } 244#define ATOMIC64_INIT(i) { (i) }
245 245
246#ifdef CONFIG_ARM_LPAE
247static inline u64 atomic64_read(const atomic64_t *v)
248{
249 u64 result;
250
251 __asm__ __volatile__("@ atomic64_read\n"
252" ldrd %0, %H0, [%1]"
253 : "=&r" (result)
254 : "r" (&v->counter), "Qo" (v->counter)
255 );
256
257 return result;
258}
259
260static inline void atomic64_set(atomic64_t *v, u64 i)
261{
262 __asm__ __volatile__("@ atomic64_set\n"
263" strd %2, %H2, [%1]"
264 : "=Qo" (v->counter)
265 : "r" (&v->counter), "r" (i)
266 );
267}
268#else
246static inline u64 atomic64_read(const atomic64_t *v) 269static inline u64 atomic64_read(const atomic64_t *v)
247{ 270{
248 u64 result; 271 u64 result;
@@ -269,6 +292,7 @@ static inline void atomic64_set(atomic64_t *v, u64 i)
269 : "r" (&v->counter), "r" (i) 292 : "r" (&v->counter), "r" (i)
270 : "cc"); 293 : "cc");
271} 294}
295#endif
272 296
273static inline void atomic64_add(u64 i, atomic64_t *v) 297static inline void atomic64_add(u64 i, atomic64_t *v)
274{ 298{
diff --git a/arch/arm/include/asm/delay.h b/arch/arm/include/asm/delay.h
index 720799fd3a81..dff714d886d5 100644
--- a/arch/arm/include/asm/delay.h
+++ b/arch/arm/include/asm/delay.h
@@ -24,7 +24,7 @@ extern struct arm_delay_ops {
24 void (*delay)(unsigned long); 24 void (*delay)(unsigned long);
25 void (*const_udelay)(unsigned long); 25 void (*const_udelay)(unsigned long);
26 void (*udelay)(unsigned long); 26 void (*udelay)(unsigned long);
27 bool const_clock; 27 unsigned long ticks_per_jiffy;
28} arm_delay_ops; 28} arm_delay_ops;
29 29
30#define __delay(n) arm_delay_ops.delay(n) 30#define __delay(n) arm_delay_ops.delay(n)
diff --git a/arch/arm/include/asm/glue-cache.h b/arch/arm/include/asm/glue-cache.h
index cca9f15704ed..ea289e1435e7 100644
--- a/arch/arm/include/asm/glue-cache.h
+++ b/arch/arm/include/asm/glue-cache.h
@@ -19,14 +19,6 @@
19#undef _CACHE 19#undef _CACHE
20#undef MULTI_CACHE 20#undef MULTI_CACHE
21 21
22#if defined(CONFIG_CPU_CACHE_V3)
23# ifdef _CACHE
24# define MULTI_CACHE 1
25# else
26# define _CACHE v3
27# endif
28#endif
29
30#if defined(CONFIG_CPU_CACHE_V4) 22#if defined(CONFIG_CPU_CACHE_V4)
31# ifdef _CACHE 23# ifdef _CACHE
32# define MULTI_CACHE 1 24# define MULTI_CACHE 1
diff --git a/arch/arm/include/asm/hardware/iop3xx.h b/arch/arm/include/asm/hardware/iop3xx.h
index 02fe2fbe2477..ed94b1a366ae 100644
--- a/arch/arm/include/asm/hardware/iop3xx.h
+++ b/arch/arm/include/asm/hardware/iop3xx.h
@@ -37,7 +37,7 @@ extern int iop3xx_get_init_atu(void);
37 * IOP3XX processor registers 37 * IOP3XX processor registers
38 */ 38 */
39#define IOP3XX_PERIPHERAL_PHYS_BASE 0xffffe000 39#define IOP3XX_PERIPHERAL_PHYS_BASE 0xffffe000
40#define IOP3XX_PERIPHERAL_VIRT_BASE 0xfeffe000 40#define IOP3XX_PERIPHERAL_VIRT_BASE 0xfedfe000
41#define IOP3XX_PERIPHERAL_SIZE 0x00002000 41#define IOP3XX_PERIPHERAL_SIZE 0x00002000
42#define IOP3XX_PERIPHERAL_UPPER_PA (IOP3XX_PERIPHERAL_PHYS_BASE +\ 42#define IOP3XX_PERIPHERAL_UPPER_PA (IOP3XX_PERIPHERAL_PHYS_BASE +\
43 IOP3XX_PERIPHERAL_SIZE - 1) 43 IOP3XX_PERIPHERAL_SIZE - 1)
diff --git a/arch/arm/include/asm/highmem.h b/arch/arm/include/asm/highmem.h
index 8c5e828f484d..91b99abe7a95 100644
--- a/arch/arm/include/asm/highmem.h
+++ b/arch/arm/include/asm/highmem.h
@@ -41,6 +41,13 @@ extern void kunmap_high(struct page *page);
41#endif 41#endif
42#endif 42#endif
43 43
44/*
45 * Needed to be able to broadcast the TLB invalidation for kmap.
46 */
47#ifdef CONFIG_ARM_ERRATA_798181
48#undef ARCH_NEEDS_KMAP_HIGH_GET
49#endif
50
44#ifdef ARCH_NEEDS_KMAP_HIGH_GET 51#ifdef ARCH_NEEDS_KMAP_HIGH_GET
45extern void *kmap_high_get(struct page *page); 52extern void *kmap_high_get(struct page *page);
46#else 53#else
diff --git a/arch/arm/include/asm/mach/pci.h b/arch/arm/include/asm/mach/pci.h
index 5cf2e979b4be..7d2c3c843801 100644
--- a/arch/arm/include/asm/mach/pci.h
+++ b/arch/arm/include/asm/mach/pci.h
@@ -30,6 +30,11 @@ struct hw_pci {
30 void (*postinit)(void); 30 void (*postinit)(void);
31 u8 (*swizzle)(struct pci_dev *dev, u8 *pin); 31 u8 (*swizzle)(struct pci_dev *dev, u8 *pin);
32 int (*map_irq)(const struct pci_dev *dev, u8 slot, u8 pin); 32 int (*map_irq)(const struct pci_dev *dev, u8 slot, u8 pin);
33 resource_size_t (*align_resource)(struct pci_dev *dev,
34 const struct resource *res,
35 resource_size_t start,
36 resource_size_t size,
37 resource_size_t align);
33}; 38};
34 39
35/* 40/*
@@ -51,6 +56,12 @@ struct pci_sys_data {
51 u8 (*swizzle)(struct pci_dev *, u8 *); 56 u8 (*swizzle)(struct pci_dev *, u8 *);
52 /* IRQ mapping */ 57 /* IRQ mapping */
53 int (*map_irq)(const struct pci_dev *, u8, u8); 58 int (*map_irq)(const struct pci_dev *, u8, u8);
59 /* Resource alignement requirements */
60 resource_size_t (*align_resource)(struct pci_dev *dev,
61 const struct resource *res,
62 resource_size_t start,
63 resource_size_t size,
64 resource_size_t align);
54 void *private_data; /* platform controller private data */ 65 void *private_data; /* platform controller private data */
55}; 66};
56 67
diff --git a/arch/arm/include/asm/mmu_context.h b/arch/arm/include/asm/mmu_context.h
index 863a6611323c..a7b85e0d0cc1 100644
--- a/arch/arm/include/asm/mmu_context.h
+++ b/arch/arm/include/asm/mmu_context.h
@@ -27,6 +27,8 @@ void __check_vmalloc_seq(struct mm_struct *mm);
27void check_and_switch_context(struct mm_struct *mm, struct task_struct *tsk); 27void check_and_switch_context(struct mm_struct *mm, struct task_struct *tsk);
28#define init_new_context(tsk,mm) ({ atomic64_set(&mm->context.id, 0); 0; }) 28#define init_new_context(tsk,mm) ({ atomic64_set(&mm->context.id, 0); 0; })
29 29
30DECLARE_PER_CPU(atomic64_t, active_asids);
31
30#else /* !CONFIG_CPU_HAS_ASID */ 32#else /* !CONFIG_CPU_HAS_ASID */
31 33
32#ifdef CONFIG_MMU 34#ifdef CONFIG_MMU
diff --git a/arch/arm/include/asm/pgtable-3level.h b/arch/arm/include/asm/pgtable-3level.h
index 6ef8afd1b64c..86b8fe398b95 100644
--- a/arch/arm/include/asm/pgtable-3level.h
+++ b/arch/arm/include/asm/pgtable-3level.h
@@ -111,7 +111,7 @@
111#define L_PTE_S2_MT_WRITETHROUGH (_AT(pteval_t, 0xa) << 2) /* MemAttr[3:0] */ 111#define L_PTE_S2_MT_WRITETHROUGH (_AT(pteval_t, 0xa) << 2) /* MemAttr[3:0] */
112#define L_PTE_S2_MT_WRITEBACK (_AT(pteval_t, 0xf) << 2) /* MemAttr[3:0] */ 112#define L_PTE_S2_MT_WRITEBACK (_AT(pteval_t, 0xf) << 2) /* MemAttr[3:0] */
113#define L_PTE_S2_RDONLY (_AT(pteval_t, 1) << 6) /* HAP[1] */ 113#define L_PTE_S2_RDONLY (_AT(pteval_t, 1) << 6) /* HAP[1] */
114#define L_PTE_S2_RDWR (_AT(pteval_t, 2) << 6) /* HAP[2:1] */ 114#define L_PTE_S2_RDWR (_AT(pteval_t, 3) << 6) /* HAP[2:1] */
115 115
116/* 116/*
117 * Hyp-mode PL2 PTE definitions for LPAE. 117 * Hyp-mode PL2 PTE definitions for LPAE.
diff --git a/arch/arm/include/asm/pgtable.h b/arch/arm/include/asm/pgtable.h
index 80d6fc4dbe4a..9bcd262a9008 100644
--- a/arch/arm/include/asm/pgtable.h
+++ b/arch/arm/include/asm/pgtable.h
@@ -61,6 +61,15 @@ extern void __pgd_error(const char *file, int line, pgd_t);
61#define FIRST_USER_ADDRESS PAGE_SIZE 61#define FIRST_USER_ADDRESS PAGE_SIZE
62 62
63/* 63/*
64 * Use TASK_SIZE as the ceiling argument for free_pgtables() and
65 * free_pgd_range() to avoid freeing the modules pmd when LPAE is enabled (pmd
66 * page shared between user and kernel).
67 */
68#ifdef CONFIG_ARM_LPAE
69#define USER_PGTABLES_CEILING TASK_SIZE
70#endif
71
72/*
64 * The pgprot_* and protection_map entries will be fixed up in runtime 73 * The pgprot_* and protection_map entries will be fixed up in runtime
65 * to include the cachable and bufferable bits based on memory policy, 74 * to include the cachable and bufferable bits based on memory policy,
66 * as well as any architecture dependent bits like global/ASID and SMP 75 * as well as any architecture dependent bits like global/ASID and SMP
diff --git a/arch/arm/include/asm/thread_info.h b/arch/arm/include/asm/thread_info.h
index cddda1f41f0f..1995d1a84060 100644
--- a/arch/arm/include/asm/thread_info.h
+++ b/arch/arm/include/asm/thread_info.h
@@ -152,6 +152,7 @@ extern int vfp_restore_user_hwstate(struct user_vfp __user *,
152#define TIF_SYSCALL_AUDIT 9 152#define TIF_SYSCALL_AUDIT 9
153#define TIF_SYSCALL_TRACEPOINT 10 153#define TIF_SYSCALL_TRACEPOINT 10
154#define TIF_SECCOMP 11 /* seccomp syscall filtering active */ 154#define TIF_SECCOMP 11 /* seccomp syscall filtering active */
155#define TIF_NOHZ 12 /* in adaptive nohz mode */
155#define TIF_USING_IWMMXT 17 156#define TIF_USING_IWMMXT 17
156#define TIF_MEMDIE 18 /* is terminating due to OOM killer */ 157#define TIF_MEMDIE 18 /* is terminating due to OOM killer */
157#define TIF_RESTORE_SIGMASK 20 158#define TIF_RESTORE_SIGMASK 20
diff --git a/arch/arm/include/asm/tlbflush.h b/arch/arm/include/asm/tlbflush.h
index 4db8c8820f0d..a3625d141c1d 100644
--- a/arch/arm/include/asm/tlbflush.h
+++ b/arch/arm/include/asm/tlbflush.h
@@ -14,7 +14,6 @@
14 14
15#include <asm/glue.h> 15#include <asm/glue.h>
16 16
17#define TLB_V3_PAGE (1 << 0)
18#define TLB_V4_U_PAGE (1 << 1) 17#define TLB_V4_U_PAGE (1 << 1)
19#define TLB_V4_D_PAGE (1 << 2) 18#define TLB_V4_D_PAGE (1 << 2)
20#define TLB_V4_I_PAGE (1 << 3) 19#define TLB_V4_I_PAGE (1 << 3)
@@ -22,7 +21,6 @@
22#define TLB_V6_D_PAGE (1 << 5) 21#define TLB_V6_D_PAGE (1 << 5)
23#define TLB_V6_I_PAGE (1 << 6) 22#define TLB_V6_I_PAGE (1 << 6)
24 23
25#define TLB_V3_FULL (1 << 8)
26#define TLB_V4_U_FULL (1 << 9) 24#define TLB_V4_U_FULL (1 << 9)
27#define TLB_V4_D_FULL (1 << 10) 25#define TLB_V4_D_FULL (1 << 10)
28#define TLB_V4_I_FULL (1 << 11) 26#define TLB_V4_I_FULL (1 << 11)
@@ -52,7 +50,6 @@
52 * ============= 50 * =============
53 * 51 *
54 * We have the following to choose from: 52 * We have the following to choose from:
55 * v3 - ARMv3
56 * v4 - ARMv4 without write buffer 53 * v4 - ARMv4 without write buffer
57 * v4wb - ARMv4 with write buffer without I TLB flush entry instruction 54 * v4wb - ARMv4 with write buffer without I TLB flush entry instruction
58 * v4wbi - ARMv4 with write buffer with I TLB flush entry instruction 55 * v4wbi - ARMv4 with write buffer with I TLB flush entry instruction
@@ -169,7 +166,7 @@
169# define v6wbi_always_flags (-1UL) 166# define v6wbi_always_flags (-1UL)
170#endif 167#endif
171 168
172#define v7wbi_tlb_flags_smp (TLB_WB | TLB_DCLEAN | TLB_BARRIER | \ 169#define v7wbi_tlb_flags_smp (TLB_WB | TLB_BARRIER | \
173 TLB_V7_UIS_FULL | TLB_V7_UIS_PAGE | \ 170 TLB_V7_UIS_FULL | TLB_V7_UIS_PAGE | \
174 TLB_V7_UIS_ASID | TLB_V7_UIS_BP) 171 TLB_V7_UIS_ASID | TLB_V7_UIS_BP)
175#define v7wbi_tlb_flags_up (TLB_WB | TLB_DCLEAN | TLB_BARRIER | \ 172#define v7wbi_tlb_flags_up (TLB_WB | TLB_DCLEAN | TLB_BARRIER | \
@@ -330,7 +327,6 @@ static inline void local_flush_tlb_all(void)
330 if (tlb_flag(TLB_WB)) 327 if (tlb_flag(TLB_WB))
331 dsb(); 328 dsb();
332 329
333 tlb_op(TLB_V3_FULL, "c6, c0, 0", zero);
334 tlb_op(TLB_V4_U_FULL | TLB_V6_U_FULL, "c8, c7, 0", zero); 330 tlb_op(TLB_V4_U_FULL | TLB_V6_U_FULL, "c8, c7, 0", zero);
335 tlb_op(TLB_V4_D_FULL | TLB_V6_D_FULL, "c8, c6, 0", zero); 331 tlb_op(TLB_V4_D_FULL | TLB_V6_D_FULL, "c8, c6, 0", zero);
336 tlb_op(TLB_V4_I_FULL | TLB_V6_I_FULL, "c8, c5, 0", zero); 332 tlb_op(TLB_V4_I_FULL | TLB_V6_I_FULL, "c8, c5, 0", zero);
@@ -351,9 +347,8 @@ static inline void local_flush_tlb_mm(struct mm_struct *mm)
351 if (tlb_flag(TLB_WB)) 347 if (tlb_flag(TLB_WB))
352 dsb(); 348 dsb();
353 349
354 if (possible_tlb_flags & (TLB_V3_FULL|TLB_V4_U_FULL|TLB_V4_D_FULL|TLB_V4_I_FULL)) { 350 if (possible_tlb_flags & (TLB_V4_U_FULL|TLB_V4_D_FULL|TLB_V4_I_FULL)) {
355 if (cpumask_test_cpu(get_cpu(), mm_cpumask(mm))) { 351 if (cpumask_test_cpu(get_cpu(), mm_cpumask(mm))) {
356 tlb_op(TLB_V3_FULL, "c6, c0, 0", zero);
357 tlb_op(TLB_V4_U_FULL, "c8, c7, 0", zero); 352 tlb_op(TLB_V4_U_FULL, "c8, c7, 0", zero);
358 tlb_op(TLB_V4_D_FULL, "c8, c6, 0", zero); 353 tlb_op(TLB_V4_D_FULL, "c8, c6, 0", zero);
359 tlb_op(TLB_V4_I_FULL, "c8, c5, 0", zero); 354 tlb_op(TLB_V4_I_FULL, "c8, c5, 0", zero);
@@ -385,9 +380,8 @@ local_flush_tlb_page(struct vm_area_struct *vma, unsigned long uaddr)
385 if (tlb_flag(TLB_WB)) 380 if (tlb_flag(TLB_WB))
386 dsb(); 381 dsb();
387 382
388 if (possible_tlb_flags & (TLB_V3_PAGE|TLB_V4_U_PAGE|TLB_V4_D_PAGE|TLB_V4_I_PAGE|TLB_V4_I_FULL) && 383 if (possible_tlb_flags & (TLB_V4_U_PAGE|TLB_V4_D_PAGE|TLB_V4_I_PAGE|TLB_V4_I_FULL) &&
389 cpumask_test_cpu(smp_processor_id(), mm_cpumask(vma->vm_mm))) { 384 cpumask_test_cpu(smp_processor_id(), mm_cpumask(vma->vm_mm))) {
390 tlb_op(TLB_V3_PAGE, "c6, c0, 0", uaddr);
391 tlb_op(TLB_V4_U_PAGE, "c8, c7, 1", uaddr); 385 tlb_op(TLB_V4_U_PAGE, "c8, c7, 1", uaddr);
392 tlb_op(TLB_V4_D_PAGE, "c8, c6, 1", uaddr); 386 tlb_op(TLB_V4_D_PAGE, "c8, c6, 1", uaddr);
393 tlb_op(TLB_V4_I_PAGE, "c8, c5, 1", uaddr); 387 tlb_op(TLB_V4_I_PAGE, "c8, c5, 1", uaddr);
@@ -418,7 +412,6 @@ static inline void local_flush_tlb_kernel_page(unsigned long kaddr)
418 if (tlb_flag(TLB_WB)) 412 if (tlb_flag(TLB_WB))
419 dsb(); 413 dsb();
420 414
421 tlb_op(TLB_V3_PAGE, "c6, c0, 0", kaddr);
422 tlb_op(TLB_V4_U_PAGE, "c8, c7, 1", kaddr); 415 tlb_op(TLB_V4_U_PAGE, "c8, c7, 1", kaddr);
423 tlb_op(TLB_V4_D_PAGE, "c8, c6, 1", kaddr); 416 tlb_op(TLB_V4_D_PAGE, "c8, c6, 1", kaddr);
424 tlb_op(TLB_V4_I_PAGE, "c8, c5, 1", kaddr); 417 tlb_op(TLB_V4_I_PAGE, "c8, c5, 1", kaddr);
@@ -450,6 +443,21 @@ static inline void local_flush_bp_all(void)
450 isb(); 443 isb();
451} 444}
452 445
446#ifdef CONFIG_ARM_ERRATA_798181
447static inline void dummy_flush_tlb_a15_erratum(void)
448{
449 /*
450 * Dummy TLBIMVAIS. Using the unmapped address 0 and ASID 0.
451 */
452 asm("mcr p15, 0, %0, c8, c3, 1" : : "r" (0));
453 dsb();
454}
455#else
456static inline void dummy_flush_tlb_a15_erratum(void)
457{
458}
459#endif
460
453/* 461/*
454 * flush_pmd_entry 462 * flush_pmd_entry
455 * 463 *
diff --git a/arch/arm/include/debug/uncompress.h b/arch/arm/include/debug/uncompress.h
new file mode 100644
index 000000000000..0e2949b0fae9
--- /dev/null
+++ b/arch/arm/include/debug/uncompress.h
@@ -0,0 +1,7 @@
1#ifdef CONFIG_DEBUG_UNCOMPRESS
2extern void putc(int c);
3#else
4static inline void putc(int c) {}
5#endif
6static inline void flush(void) {}
7static inline void arch_decomp_setup(void) {}
diff --git a/arch/arm/kernel/bios32.c b/arch/arm/kernel/bios32.c
index a1f73b502ef0..b2ed73c45489 100644
--- a/arch/arm/kernel/bios32.c
+++ b/arch/arm/kernel/bios32.c
@@ -462,6 +462,7 @@ static void pcibios_init_hw(struct hw_pci *hw, struct list_head *head)
462 sys->busnr = busnr; 462 sys->busnr = busnr;
463 sys->swizzle = hw->swizzle; 463 sys->swizzle = hw->swizzle;
464 sys->map_irq = hw->map_irq; 464 sys->map_irq = hw->map_irq;
465 sys->align_resource = hw->align_resource;
465 INIT_LIST_HEAD(&sys->resources); 466 INIT_LIST_HEAD(&sys->resources);
466 467
467 if (hw->private_data) 468 if (hw->private_data)
@@ -574,6 +575,8 @@ char * __init pcibios_setup(char *str)
574resource_size_t pcibios_align_resource(void *data, const struct resource *res, 575resource_size_t pcibios_align_resource(void *data, const struct resource *res,
575 resource_size_t size, resource_size_t align) 576 resource_size_t size, resource_size_t align)
576{ 577{
578 struct pci_dev *dev = data;
579 struct pci_sys_data *sys = dev->sysdata;
577 resource_size_t start = res->start; 580 resource_size_t start = res->start;
578 581
579 if (res->flags & IORESOURCE_IO && start & 0x300) 582 if (res->flags & IORESOURCE_IO && start & 0x300)
@@ -581,6 +584,9 @@ resource_size_t pcibios_align_resource(void *data, const struct resource *res,
581 584
582 start = (start + align - 1) & ~(align - 1); 585 start = (start + align - 1) & ~(align - 1);
583 586
587 if (sys->align_resource)
588 return sys->align_resource(dev, res, start, size, align);
589
584 return start; 590 return start;
585} 591}
586 592
diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S
index 0f82098c9bfe..c66ca7e4ee91 100644
--- a/arch/arm/kernel/entry-armv.S
+++ b/arch/arm/kernel/entry-armv.S
@@ -192,18 +192,6 @@ __dabt_svc:
192 svc_entry 192 svc_entry
193 mov r2, sp 193 mov r2, sp
194 dabt_helper 194 dabt_helper
195
196 @
197 @ IRQs off again before pulling preserved data off the stack
198 @
199 disable_irq_notrace
200
201#ifdef CONFIG_TRACE_IRQFLAGS
202 tst r5, #PSR_I_BIT
203 bleq trace_hardirqs_on
204 tst r5, #PSR_I_BIT
205 blne trace_hardirqs_off
206#endif
207 svc_exit r5 @ return from exception 195 svc_exit r5 @ return from exception
208 UNWIND(.fnend ) 196 UNWIND(.fnend )
209ENDPROC(__dabt_svc) 197ENDPROC(__dabt_svc)
@@ -223,12 +211,7 @@ __irq_svc:
223 blne svc_preempt 211 blne svc_preempt
224#endif 212#endif
225 213
226#ifdef CONFIG_TRACE_IRQFLAGS 214 svc_exit r5, irq = 1 @ return from exception
227 @ The parent context IRQs must have been enabled to get here in
228 @ the first place, so there's no point checking the PSR I bit.
229 bl trace_hardirqs_on
230#endif
231 svc_exit r5 @ return from exception
232 UNWIND(.fnend ) 215 UNWIND(.fnend )
233ENDPROC(__irq_svc) 216ENDPROC(__irq_svc)
234 217
@@ -295,22 +278,8 @@ __und_svc_fault:
295 mov r0, sp @ struct pt_regs *regs 278 mov r0, sp @ struct pt_regs *regs
296 bl __und_fault 279 bl __und_fault
297 280
298 @
299 @ IRQs off again before pulling preserved data off the stack
300 @
301__und_svc_finish: 281__und_svc_finish:
302 disable_irq_notrace
303
304 @
305 @ restore SPSR and restart the instruction
306 @
307 ldr r5, [sp, #S_PSR] @ Get SVC cpsr 282 ldr r5, [sp, #S_PSR] @ Get SVC cpsr
308#ifdef CONFIG_TRACE_IRQFLAGS
309 tst r5, #PSR_I_BIT
310 bleq trace_hardirqs_on
311 tst r5, #PSR_I_BIT
312 blne trace_hardirqs_off
313#endif
314 svc_exit r5 @ return from exception 283 svc_exit r5 @ return from exception
315 UNWIND(.fnend ) 284 UNWIND(.fnend )
316ENDPROC(__und_svc) 285ENDPROC(__und_svc)
@@ -320,18 +289,6 @@ __pabt_svc:
320 svc_entry 289 svc_entry
321 mov r2, sp @ regs 290 mov r2, sp @ regs
322 pabt_helper 291 pabt_helper
323
324 @
325 @ IRQs off again before pulling preserved data off the stack
326 @
327 disable_irq_notrace
328
329#ifdef CONFIG_TRACE_IRQFLAGS
330 tst r5, #PSR_I_BIT
331 bleq trace_hardirqs_on
332 tst r5, #PSR_I_BIT
333 blne trace_hardirqs_off
334#endif
335 svc_exit r5 @ return from exception 292 svc_exit r5 @ return from exception
336 UNWIND(.fnend ) 293 UNWIND(.fnend )
337ENDPROC(__pabt_svc) 294ENDPROC(__pabt_svc)
@@ -396,6 +353,7 @@ ENDPROC(__pabt_svc)
396#ifdef CONFIG_IRQSOFF_TRACER 353#ifdef CONFIG_IRQSOFF_TRACER
397 bl trace_hardirqs_off 354 bl trace_hardirqs_off
398#endif 355#endif
356 ct_user_exit save = 0
399 .endm 357 .endm
400 358
401 .macro kuser_cmpxchg_check 359 .macro kuser_cmpxchg_check
diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S
index 3248cde504ed..bc5bc0a97131 100644
--- a/arch/arm/kernel/entry-common.S
+++ b/arch/arm/kernel/entry-common.S
@@ -35,12 +35,11 @@ ret_fast_syscall:
35 ldr r1, [tsk, #TI_FLAGS] 35 ldr r1, [tsk, #TI_FLAGS]
36 tst r1, #_TIF_WORK_MASK 36 tst r1, #_TIF_WORK_MASK
37 bne fast_work_pending 37 bne fast_work_pending
38#if defined(CONFIG_IRQSOFF_TRACER)
39 asm_trace_hardirqs_on 38 asm_trace_hardirqs_on
40#endif
41 39
42 /* perform architecture specific actions before user return */ 40 /* perform architecture specific actions before user return */
43 arch_ret_to_user r1, lr 41 arch_ret_to_user r1, lr
42 ct_user_enter
44 43
45 restore_user_regs fast = 1, offset = S_OFF 44 restore_user_regs fast = 1, offset = S_OFF
46 UNWIND(.fnend ) 45 UNWIND(.fnend )
@@ -71,11 +70,11 @@ ENTRY(ret_to_user_from_irq)
71 tst r1, #_TIF_WORK_MASK 70 tst r1, #_TIF_WORK_MASK
72 bne work_pending 71 bne work_pending
73no_work_pending: 72no_work_pending:
74#if defined(CONFIG_IRQSOFF_TRACER)
75 asm_trace_hardirqs_on 73 asm_trace_hardirqs_on
76#endif 74
77 /* perform architecture specific actions before user return */ 75 /* perform architecture specific actions before user return */
78 arch_ret_to_user r1, lr 76 arch_ret_to_user r1, lr
77 ct_user_enter save = 0
79 78
80 restore_user_regs fast = 0, offset = 0 79 restore_user_regs fast = 0, offset = 0
81ENDPROC(ret_to_user_from_irq) 80ENDPROC(ret_to_user_from_irq)
@@ -276,7 +275,13 @@ ENDPROC(ftrace_graph_caller_old)
276 */ 275 */
277 276
278.macro mcount_enter 277.macro mcount_enter
278/*
279 * This pad compensates for the push {lr} at the call site. Note that we are
280 * unable to unwind through a function which does not otherwise save its lr.
281 */
282 UNWIND(.pad #4)
279 stmdb sp!, {r0-r3, lr} 283 stmdb sp!, {r0-r3, lr}
284 UNWIND(.save {r0-r3, lr})
280.endm 285.endm
281 286
282.macro mcount_get_lr reg 287.macro mcount_get_lr reg
@@ -289,6 +294,7 @@ ENDPROC(ftrace_graph_caller_old)
289.endm 294.endm
290 295
291ENTRY(__gnu_mcount_nc) 296ENTRY(__gnu_mcount_nc)
297UNWIND(.fnstart)
292#ifdef CONFIG_DYNAMIC_FTRACE 298#ifdef CONFIG_DYNAMIC_FTRACE
293 mov ip, lr 299 mov ip, lr
294 ldmia sp!, {lr} 300 ldmia sp!, {lr}
@@ -296,17 +302,22 @@ ENTRY(__gnu_mcount_nc)
296#else 302#else
297 __mcount 303 __mcount
298#endif 304#endif
305UNWIND(.fnend)
299ENDPROC(__gnu_mcount_nc) 306ENDPROC(__gnu_mcount_nc)
300 307
301#ifdef CONFIG_DYNAMIC_FTRACE 308#ifdef CONFIG_DYNAMIC_FTRACE
302ENTRY(ftrace_caller) 309ENTRY(ftrace_caller)
310UNWIND(.fnstart)
303 __ftrace_caller 311 __ftrace_caller
312UNWIND(.fnend)
304ENDPROC(ftrace_caller) 313ENDPROC(ftrace_caller)
305#endif 314#endif
306 315
307#ifdef CONFIG_FUNCTION_GRAPH_TRACER 316#ifdef CONFIG_FUNCTION_GRAPH_TRACER
308ENTRY(ftrace_graph_caller) 317ENTRY(ftrace_graph_caller)
318UNWIND(.fnstart)
309 __ftrace_graph_caller 319 __ftrace_graph_caller
320UNWIND(.fnend)
310ENDPROC(ftrace_graph_caller) 321ENDPROC(ftrace_graph_caller)
311#endif 322#endif
312 323
@@ -394,6 +405,7 @@ ENTRY(vector_swi)
394 mcr p15, 0, ip, c1, c0 @ update control register 405 mcr p15, 0, ip, c1, c0 @ update control register
395#endif 406#endif
396 enable_irq 407 enable_irq
408 ct_user_exit
397 409
398 get_thread_info tsk 410 get_thread_info tsk
399 adr tbl, sys_call_table @ load syscall table pointer 411 adr tbl, sys_call_table @ load syscall table pointer
diff --git a/arch/arm/kernel/entry-header.S b/arch/arm/kernel/entry-header.S
index 9a8531eadd3d..160f3376ba6d 100644
--- a/arch/arm/kernel/entry-header.S
+++ b/arch/arm/kernel/entry-header.S
@@ -74,7 +74,24 @@
74 .endm 74 .endm
75 75
76#ifndef CONFIG_THUMB2_KERNEL 76#ifndef CONFIG_THUMB2_KERNEL
77 .macro svc_exit, rpsr 77 .macro svc_exit, rpsr, irq = 0
78 .if \irq != 0
79 @ IRQs already off
80#ifdef CONFIG_TRACE_IRQFLAGS
81 @ The parent context IRQs must have been enabled to get here in
82 @ the first place, so there's no point checking the PSR I bit.
83 bl trace_hardirqs_on
84#endif
85 .else
86 @ IRQs off again before pulling preserved data off the stack
87 disable_irq_notrace
88#ifdef CONFIG_TRACE_IRQFLAGS
89 tst \rpsr, #PSR_I_BIT
90 bleq trace_hardirqs_on
91 tst \rpsr, #PSR_I_BIT
92 blne trace_hardirqs_off
93#endif
94 .endif
78 msr spsr_cxsf, \rpsr 95 msr spsr_cxsf, \rpsr
79#if defined(CONFIG_CPU_V6) 96#if defined(CONFIG_CPU_V6)
80 ldr r0, [sp] 97 ldr r0, [sp]
@@ -120,7 +137,24 @@
120 mov pc, \reg 137 mov pc, \reg
121 .endm 138 .endm
122#else /* CONFIG_THUMB2_KERNEL */ 139#else /* CONFIG_THUMB2_KERNEL */
123 .macro svc_exit, rpsr 140 .macro svc_exit, rpsr, irq = 0
141 .if \irq != 0
142 @ IRQs already off
143#ifdef CONFIG_TRACE_IRQFLAGS
144 @ The parent context IRQs must have been enabled to get here in
145 @ the first place, so there's no point checking the PSR I bit.
146 bl trace_hardirqs_on
147#endif
148 .else
149 @ IRQs off again before pulling preserved data off the stack
150 disable_irq_notrace
151#ifdef CONFIG_TRACE_IRQFLAGS
152 tst \rpsr, #PSR_I_BIT
153 bleq trace_hardirqs_on
154 tst \rpsr, #PSR_I_BIT
155 blne trace_hardirqs_off
156#endif
157 .endif
124 ldr lr, [sp, #S_SP] @ top of the stack 158 ldr lr, [sp, #S_SP] @ top of the stack
125 ldrd r0, r1, [sp, #S_LR] @ calling lr and pc 159 ldrd r0, r1, [sp, #S_LR] @ calling lr and pc
126 clrex @ clear the exclusive monitor 160 clrex @ clear the exclusive monitor
@@ -164,6 +198,34 @@
164#endif /* !CONFIG_THUMB2_KERNEL */ 198#endif /* !CONFIG_THUMB2_KERNEL */
165 199
166/* 200/*
201 * Context tracking subsystem. Used to instrument transitions
202 * between user and kernel mode.
203 */
204 .macro ct_user_exit, save = 1
205#ifdef CONFIG_CONTEXT_TRACKING
206 .if \save
207 stmdb sp!, {r0-r3, ip, lr}
208 bl user_exit
209 ldmia sp!, {r0-r3, ip, lr}
210 .else
211 bl user_exit
212 .endif
213#endif
214 .endm
215
216 .macro ct_user_enter, save = 1
217#ifdef CONFIG_CONTEXT_TRACKING
218 .if \save
219 stmdb sp!, {r0-r3, ip, lr}
220 bl user_enter
221 ldmia sp!, {r0-r3, ip, lr}
222 .else
223 bl user_enter
224 .endif
225#endif
226 .endm
227
228/*
167 * These are the registers used in the syscall handler, and allow us to 229 * These are the registers used in the syscall handler, and allow us to
168 * have in theory up to 7 arguments to a function - r0 to r6. 230 * have in theory up to 7 arguments to a function - r0 to r6.
169 * 231 *
diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S
index e0eb9a1cae77..8bac553fe213 100644
--- a/arch/arm/kernel/head.S
+++ b/arch/arm/kernel/head.S
@@ -267,7 +267,7 @@ __create_page_tables:
267 addne r6, r6, #1 << SECTION_SHIFT 267 addne r6, r6, #1 << SECTION_SHIFT
268 strne r6, [r3] 268 strne r6, [r3]
269 269
270#if defined(CONFIG_LPAE) && defined(CONFIG_CPU_ENDIAN_BE8) 270#if defined(CONFIG_ARM_LPAE) && defined(CONFIG_CPU_ENDIAN_BE8)
271 sub r4, r4, #4 @ Fixup page table pointer 271 sub r4, r4, #4 @ Fixup page table pointer
272 @ for 64-bit descriptors 272 @ for 64-bit descriptors
273#endif 273#endif
diff --git a/arch/arm/kernel/hw_breakpoint.c b/arch/arm/kernel/hw_breakpoint.c
index 96093b75ab90..1fd749ee4a1b 100644
--- a/arch/arm/kernel/hw_breakpoint.c
+++ b/arch/arm/kernel/hw_breakpoint.c
@@ -966,7 +966,7 @@ static void reset_ctrl_regs(void *unused)
966 } 966 }
967 967
968 if (err) { 968 if (err) {
969 pr_warning("CPU %d debug is powered down!\n", cpu); 969 pr_warn_once("CPU %d debug is powered down!\n", cpu);
970 cpumask_or(&debug_err_mask, &debug_err_mask, cpumask_of(cpu)); 970 cpumask_or(&debug_err_mask, &debug_err_mask, cpumask_of(cpu));
971 return; 971 return;
972 } 972 }
@@ -987,7 +987,7 @@ clear_vcr:
987 isb(); 987 isb();
988 988
989 if (cpumask_intersects(&debug_err_mask, cpumask_of(cpu))) { 989 if (cpumask_intersects(&debug_err_mask, cpumask_of(cpu))) {
990 pr_warning("CPU %d failed to disable vector catch\n", cpu); 990 pr_warn_once("CPU %d failed to disable vector catch\n", cpu);
991 return; 991 return;
992 } 992 }
993 993
@@ -1007,7 +1007,7 @@ clear_vcr:
1007 } 1007 }
1008 1008
1009 if (cpumask_intersects(&debug_err_mask, cpumask_of(cpu))) { 1009 if (cpumask_intersects(&debug_err_mask, cpumask_of(cpu))) {
1010 pr_warning("CPU %d failed to clear debug register pairs\n", cpu); 1010 pr_warn_once("CPU %d failed to clear debug register pairs\n", cpu);
1011 return; 1011 return;
1012 } 1012 }
1013 1013
@@ -1043,7 +1043,7 @@ static int dbg_cpu_pm_notify(struct notifier_block *self, unsigned long action,
1043 return NOTIFY_OK; 1043 return NOTIFY_OK;
1044} 1044}
1045 1045
1046static struct notifier_block __cpuinitdata dbg_cpu_pm_nb = { 1046static struct notifier_block dbg_cpu_pm_nb = {
1047 .notifier_call = dbg_cpu_pm_notify, 1047 .notifier_call = dbg_cpu_pm_notify,
1048}; 1048};
1049 1049
diff --git a/arch/arm/kernel/perf_event.c b/arch/arm/kernel/perf_event.c
index 146157dfe27c..8c3094d0f7b7 100644
--- a/arch/arm/kernel/perf_event.c
+++ b/arch/arm/kernel/perf_event.c
@@ -253,7 +253,10 @@ validate_event(struct pmu_hw_events *hw_events,
253 struct arm_pmu *armpmu = to_arm_pmu(event->pmu); 253 struct arm_pmu *armpmu = to_arm_pmu(event->pmu);
254 struct pmu *leader_pmu = event->group_leader->pmu; 254 struct pmu *leader_pmu = event->group_leader->pmu;
255 255
256 if (event->pmu != leader_pmu || event->state <= PERF_EVENT_STATE_OFF) 256 if (event->pmu != leader_pmu || event->state < PERF_EVENT_STATE_OFF)
257 return 1;
258
259 if (event->state == PERF_EVENT_STATE_OFF && !event->attr.enable_on_exec)
257 return 1; 260 return 1;
258 261
259 return armpmu->get_event_idx(hw_events, event) >= 0; 262 return armpmu->get_event_idx(hw_events, event) >= 0;
diff --git a/arch/arm/kernel/return_address.c b/arch/arm/kernel/return_address.c
index 8085417555dd..fafedd86885d 100644
--- a/arch/arm/kernel/return_address.c
+++ b/arch/arm/kernel/return_address.c
@@ -26,7 +26,7 @@ static int save_return_addr(struct stackframe *frame, void *d)
26 struct return_address_data *data = d; 26 struct return_address_data *data = d;
27 27
28 if (!data->level) { 28 if (!data->level) {
29 data->addr = (void *)frame->lr; 29 data->addr = (void *)frame->pc;
30 30
31 return 1; 31 return 1;
32 } else { 32 } else {
@@ -41,7 +41,8 @@ void *return_address(unsigned int level)
41 struct stackframe frame; 41 struct stackframe frame;
42 register unsigned long current_sp asm ("sp"); 42 register unsigned long current_sp asm ("sp");
43 43
44 data.level = level + 1; 44 data.level = level + 2;
45 data.addr = NULL;
45 46
46 frame.fp = (unsigned long)__builtin_frame_address(0); 47 frame.fp = (unsigned long)__builtin_frame_address(0);
47 frame.sp = current_sp; 48 frame.sp = current_sp;
diff --git a/arch/arm/kernel/sched_clock.c b/arch/arm/kernel/sched_clock.c
index bd6f56b9ec21..59d2adb764a9 100644
--- a/arch/arm/kernel/sched_clock.c
+++ b/arch/arm/kernel/sched_clock.c
@@ -45,12 +45,12 @@ static u32 notrace jiffy_sched_clock_read(void)
45 45
46static u32 __read_mostly (*read_sched_clock)(void) = jiffy_sched_clock_read; 46static u32 __read_mostly (*read_sched_clock)(void) = jiffy_sched_clock_read;
47 47
48static inline u64 cyc_to_ns(u64 cyc, u32 mult, u32 shift) 48static inline u64 notrace cyc_to_ns(u64 cyc, u32 mult, u32 shift)
49{ 49{
50 return (cyc * mult) >> shift; 50 return (cyc * mult) >> shift;
51} 51}
52 52
53static unsigned long long cyc_to_sched_clock(u32 cyc, u32 mask) 53static unsigned long long notrace cyc_to_sched_clock(u32 cyc, u32 mask)
54{ 54{
55 u64 epoch_ns; 55 u64 epoch_ns;
56 u32 epoch_cyc; 56 u32 epoch_cyc;
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
index 1cc9e1796415..728007c4a2b7 100644
--- a/arch/arm/kernel/setup.c
+++ b/arch/arm/kernel/setup.c
@@ -56,7 +56,6 @@
56#include <asm/virt.h> 56#include <asm/virt.h>
57 57
58#include "atags.h" 58#include "atags.h"
59#include "tcm.h"
60 59
61 60
62#if defined(CONFIG_FPE_NWFPE) || defined(CONFIG_FPE_FASTFPE) 61#if defined(CONFIG_FPE_NWFPE) || defined(CONFIG_FPE_FASTFPE)
@@ -353,6 +352,23 @@ void __init early_print(const char *str, ...)
353 printk("%s", buf); 352 printk("%s", buf);
354} 353}
355 354
355static void __init cpuid_init_hwcaps(void)
356{
357 unsigned int divide_instrs;
358
359 if (cpu_architecture() < CPU_ARCH_ARMv7)
360 return;
361
362 divide_instrs = (read_cpuid_ext(CPUID_EXT_ISAR0) & 0x0f000000) >> 24;
363
364 switch (divide_instrs) {
365 case 2:
366 elf_hwcap |= HWCAP_IDIVA;
367 case 1:
368 elf_hwcap |= HWCAP_IDIVT;
369 }
370}
371
356static void __init feat_v6_fixup(void) 372static void __init feat_v6_fixup(void)
357{ 373{
358 int id = read_cpuid_id(); 374 int id = read_cpuid_id();
@@ -373,7 +389,7 @@ static void __init feat_v6_fixup(void)
373 * 389 *
374 * cpu_init sets up the per-CPU stacks. 390 * cpu_init sets up the per-CPU stacks.
375 */ 391 */
376void cpu_init(void) 392void notrace cpu_init(void)
377{ 393{
378 unsigned int cpu = smp_processor_id(); 394 unsigned int cpu = smp_processor_id();
379 struct stack *stk = &stacks[cpu]; 395 struct stack *stk = &stacks[cpu];
@@ -483,8 +499,11 @@ static void __init setup_processor(void)
483 snprintf(elf_platform, ELF_PLATFORM_SIZE, "%s%c", 499 snprintf(elf_platform, ELF_PLATFORM_SIZE, "%s%c",
484 list->elf_name, ENDIANNESS); 500 list->elf_name, ENDIANNESS);
485 elf_hwcap = list->elf_hwcap; 501 elf_hwcap = list->elf_hwcap;
502
503 cpuid_init_hwcaps();
504
486#ifndef CONFIG_ARM_THUMB 505#ifndef CONFIG_ARM_THUMB
487 elf_hwcap &= ~HWCAP_THUMB; 506 elf_hwcap &= ~(HWCAP_THUMB | HWCAP_IDIVT);
488#endif 507#endif
489 508
490 feat_v6_fixup(); 509 feat_v6_fixup();
@@ -524,7 +543,7 @@ int __init arm_add_memory(phys_addr_t start, phys_addr_t size)
524 size -= start & ~PAGE_MASK; 543 size -= start & ~PAGE_MASK;
525 bank->start = PAGE_ALIGN(start); 544 bank->start = PAGE_ALIGN(start);
526 545
527#ifndef CONFIG_LPAE 546#ifndef CONFIG_ARM_LPAE
528 if (bank->start + size < bank->start) { 547 if (bank->start + size < bank->start) {
529 printk(KERN_CRIT "Truncating memory at 0x%08llx to fit in " 548 printk(KERN_CRIT "Truncating memory at 0x%08llx to fit in "
530 "32-bit physical address space\n", (long long)start); 549 "32-bit physical address space\n", (long long)start);
@@ -778,8 +797,6 @@ void __init setup_arch(char **cmdline_p)
778 797
779 reserve_crashkernel(); 798 reserve_crashkernel();
780 799
781 tcm_init();
782
783#ifdef CONFIG_MULTI_IRQ_HANDLER 800#ifdef CONFIG_MULTI_IRQ_HANDLER
784 handle_arch_irq = mdesc->handle_irq; 801 handle_arch_irq = mdesc->handle_irq;
785#endif 802#endif
diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c
index 79078edbb9bc..4231034b8128 100644
--- a/arch/arm/kernel/smp.c
+++ b/arch/arm/kernel/smp.c
@@ -211,6 +211,13 @@ void __cpuinit __cpu_die(unsigned int cpu)
211 } 211 }
212 printk(KERN_NOTICE "CPU%u: shutdown\n", cpu); 212 printk(KERN_NOTICE "CPU%u: shutdown\n", cpu);
213 213
214 /*
215 * platform_cpu_kill() is generally expected to do the powering off
216 * and/or cutting of clocks to the dying CPU. Optionally, this may
217 * be done by the CPU which is dying in preference to supporting
218 * this call, but that means there is _no_ synchronisation between
219 * the requesting CPU and the dying CPU actually losing power.
220 */
214 if (!platform_cpu_kill(cpu)) 221 if (!platform_cpu_kill(cpu))
215 printk("CPU%u: unable to kill\n", cpu); 222 printk("CPU%u: unable to kill\n", cpu);
216} 223}
@@ -230,14 +237,41 @@ void __ref cpu_die(void)
230 idle_task_exit(); 237 idle_task_exit();
231 238
232 local_irq_disable(); 239 local_irq_disable();
233 mb();
234 240
235 /* Tell __cpu_die() that this CPU is now safe to dispose of */ 241 /*
242 * Flush the data out of the L1 cache for this CPU. This must be
243 * before the completion to ensure that data is safely written out
244 * before platform_cpu_kill() gets called - which may disable
245 * *this* CPU and power down its cache.
246 */
247 flush_cache_louis();
248
249 /*
250 * Tell __cpu_die() that this CPU is now safe to dispose of. Once
251 * this returns, power and/or clocks can be removed at any point
252 * from this CPU and its cache by platform_cpu_kill().
253 */
236 RCU_NONIDLE(complete(&cpu_died)); 254 RCU_NONIDLE(complete(&cpu_died));
237 255
238 /* 256 /*
239 * actual CPU shutdown procedure is at least platform (if not 257 * Ensure that the cache lines associated with that completion are
240 * CPU) specific. 258 * written out. This covers the case where _this_ CPU is doing the
259 * powering down, to ensure that the completion is visible to the
260 * CPU waiting for this one.
261 */
262 flush_cache_louis();
263
264 /*
265 * The actual CPU shutdown procedure is at least platform (if not
266 * CPU) specific. This may remove power, or it may simply spin.
267 *
268 * Platforms are generally expected *NOT* to return from this call,
269 * although there are some which do because they have no way to
270 * power down the CPU. These platforms are the _only_ reason we
271 * have a return path which uses the fragment of assembly below.
272 *
273 * The return path should not be used for platforms which can
274 * power off the CPU.
241 */ 275 */
242 if (smp_ops.cpu_die) 276 if (smp_ops.cpu_die)
243 smp_ops.cpu_die(cpu); 277 smp_ops.cpu_die(cpu);
@@ -673,9 +707,6 @@ static int cpufreq_callback(struct notifier_block *nb,
673 if (freq->flags & CPUFREQ_CONST_LOOPS) 707 if (freq->flags & CPUFREQ_CONST_LOOPS)
674 return NOTIFY_OK; 708 return NOTIFY_OK;
675 709
676 if (arm_delay_ops.const_clock)
677 return NOTIFY_OK;
678
679 if (!per_cpu(l_p_j_ref, cpu)) { 710 if (!per_cpu(l_p_j_ref, cpu)) {
680 per_cpu(l_p_j_ref, cpu) = 711 per_cpu(l_p_j_ref, cpu) =
681 per_cpu(cpu_data, cpu).loops_per_jiffy; 712 per_cpu(cpu_data, cpu).loops_per_jiffy;
diff --git a/arch/arm/kernel/smp_tlb.c b/arch/arm/kernel/smp_tlb.c
index bd0300531399..9a52a07aa40e 100644
--- a/arch/arm/kernel/smp_tlb.c
+++ b/arch/arm/kernel/smp_tlb.c
@@ -12,6 +12,7 @@
12 12
13#include <asm/smp_plat.h> 13#include <asm/smp_plat.h>
14#include <asm/tlbflush.h> 14#include <asm/tlbflush.h>
15#include <asm/mmu_context.h>
15 16
16/**********************************************************************/ 17/**********************************************************************/
17 18
@@ -69,12 +70,73 @@ static inline void ipi_flush_bp_all(void *ignored)
69 local_flush_bp_all(); 70 local_flush_bp_all();
70} 71}
71 72
73#ifdef CONFIG_ARM_ERRATA_798181
74static int erratum_a15_798181(void)
75{
76 unsigned int midr = read_cpuid_id();
77
78 /* Cortex-A15 r0p0..r3p2 affected */
79 if ((midr & 0xff0ffff0) != 0x410fc0f0 || midr > 0x413fc0f2)
80 return 0;
81 return 1;
82}
83#else
84static int erratum_a15_798181(void)
85{
86 return 0;
87}
88#endif
89
90static void ipi_flush_tlb_a15_erratum(void *arg)
91{
92 dmb();
93}
94
95static void broadcast_tlb_a15_erratum(void)
96{
97 if (!erratum_a15_798181())
98 return;
99
100 dummy_flush_tlb_a15_erratum();
101 smp_call_function(ipi_flush_tlb_a15_erratum, NULL, 1);
102}
103
104static void broadcast_tlb_mm_a15_erratum(struct mm_struct *mm)
105{
106 int cpu, this_cpu;
107 cpumask_t mask = { CPU_BITS_NONE };
108
109 if (!erratum_a15_798181())
110 return;
111
112 dummy_flush_tlb_a15_erratum();
113 this_cpu = get_cpu();
114 for_each_online_cpu(cpu) {
115 if (cpu == this_cpu)
116 continue;
117 /*
118 * We only need to send an IPI if the other CPUs are running
119 * the same ASID as the one being invalidated. There is no
120 * need for locking around the active_asids check since the
121 * switch_mm() function has at least one dmb() (as required by
122 * this workaround) in case a context switch happens on
123 * another CPU after the condition below.
124 */
125 if (atomic64_read(&mm->context.id) ==
126 atomic64_read(&per_cpu(active_asids, cpu)))
127 cpumask_set_cpu(cpu, &mask);
128 }
129 smp_call_function_many(&mask, ipi_flush_tlb_a15_erratum, NULL, 1);
130 put_cpu();
131}
132
72void flush_tlb_all(void) 133void flush_tlb_all(void)
73{ 134{
74 if (tlb_ops_need_broadcast()) 135 if (tlb_ops_need_broadcast())
75 on_each_cpu(ipi_flush_tlb_all, NULL, 1); 136 on_each_cpu(ipi_flush_tlb_all, NULL, 1);
76 else 137 else
77 local_flush_tlb_all(); 138 local_flush_tlb_all();
139 broadcast_tlb_a15_erratum();
78} 140}
79 141
80void flush_tlb_mm(struct mm_struct *mm) 142void flush_tlb_mm(struct mm_struct *mm)
@@ -83,6 +145,7 @@ void flush_tlb_mm(struct mm_struct *mm)
83 on_each_cpu_mask(mm_cpumask(mm), ipi_flush_tlb_mm, mm, 1); 145 on_each_cpu_mask(mm_cpumask(mm), ipi_flush_tlb_mm, mm, 1);
84 else 146 else
85 local_flush_tlb_mm(mm); 147 local_flush_tlb_mm(mm);
148 broadcast_tlb_mm_a15_erratum(mm);
86} 149}
87 150
88void flush_tlb_page(struct vm_area_struct *vma, unsigned long uaddr) 151void flush_tlb_page(struct vm_area_struct *vma, unsigned long uaddr)
@@ -95,6 +158,7 @@ void flush_tlb_page(struct vm_area_struct *vma, unsigned long uaddr)
95 &ta, 1); 158 &ta, 1);
96 } else 159 } else
97 local_flush_tlb_page(vma, uaddr); 160 local_flush_tlb_page(vma, uaddr);
161 broadcast_tlb_mm_a15_erratum(vma->vm_mm);
98} 162}
99 163
100void flush_tlb_kernel_page(unsigned long kaddr) 164void flush_tlb_kernel_page(unsigned long kaddr)
@@ -105,6 +169,7 @@ void flush_tlb_kernel_page(unsigned long kaddr)
105 on_each_cpu(ipi_flush_tlb_kernel_page, &ta, 1); 169 on_each_cpu(ipi_flush_tlb_kernel_page, &ta, 1);
106 } else 170 } else
107 local_flush_tlb_kernel_page(kaddr); 171 local_flush_tlb_kernel_page(kaddr);
172 broadcast_tlb_a15_erratum();
108} 173}
109 174
110void flush_tlb_range(struct vm_area_struct *vma, 175void flush_tlb_range(struct vm_area_struct *vma,
@@ -119,6 +184,7 @@ void flush_tlb_range(struct vm_area_struct *vma,
119 &ta, 1); 184 &ta, 1);
120 } else 185 } else
121 local_flush_tlb_range(vma, start, end); 186 local_flush_tlb_range(vma, start, end);
187 broadcast_tlb_mm_a15_erratum(vma->vm_mm);
122} 188}
123 189
124void flush_tlb_kernel_range(unsigned long start, unsigned long end) 190void flush_tlb_kernel_range(unsigned long start, unsigned long end)
@@ -130,6 +196,7 @@ void flush_tlb_kernel_range(unsigned long start, unsigned long end)
130 on_each_cpu(ipi_flush_tlb_kernel_range, &ta, 1); 196 on_each_cpu(ipi_flush_tlb_kernel_range, &ta, 1);
131 } else 197 } else
132 local_flush_tlb_kernel_range(start, end); 198 local_flush_tlb_kernel_range(start, end);
199 broadcast_tlb_a15_erratum();
133} 200}
134 201
135void flush_bp_all(void) 202void flush_bp_all(void)
diff --git a/arch/arm/kernel/tcm.c b/arch/arm/kernel/tcm.c
index 30ae6bb4a310..f50f19e5c138 100644
--- a/arch/arm/kernel/tcm.c
+++ b/arch/arm/kernel/tcm.c
@@ -17,7 +17,6 @@
17#include <asm/mach/map.h> 17#include <asm/mach/map.h>
18#include <asm/memory.h> 18#include <asm/memory.h>
19#include <asm/system_info.h> 19#include <asm/system_info.h>
20#include "tcm.h"
21 20
22static struct gen_pool *tcm_pool; 21static struct gen_pool *tcm_pool;
23static bool dtcm_present; 22static bool dtcm_present;
diff --git a/arch/arm/kvm/arm.c b/arch/arm/kvm/arm.c
index c10a45fa73f7..a0dfc2a53f91 100644
--- a/arch/arm/kvm/arm.c
+++ b/arch/arm/kvm/arm.c
@@ -198,6 +198,7 @@ int kvm_dev_ioctl_check_extension(long ext)
198 break; 198 break;
199 case KVM_CAP_ARM_SET_DEVICE_ADDR: 199 case KVM_CAP_ARM_SET_DEVICE_ADDR:
200 r = 1; 200 r = 1;
201 break;
201 case KVM_CAP_NR_VCPUS: 202 case KVM_CAP_NR_VCPUS:
202 r = num_online_cpus(); 203 r = num_online_cpus();
203 break; 204 break;
diff --git a/arch/arm/kvm/coproc.c b/arch/arm/kvm/coproc.c
index 94eee8befc83..8eea97be1ed5 100644
--- a/arch/arm/kvm/coproc.c
+++ b/arch/arm/kvm/coproc.c
@@ -79,11 +79,11 @@ static bool access_dcsw(struct kvm_vcpu *vcpu,
79 unsigned long val; 79 unsigned long val;
80 int cpu; 80 int cpu;
81 81
82 cpu = get_cpu();
83
84 if (!p->is_write) 82 if (!p->is_write)
85 return read_from_write_only(vcpu, p); 83 return read_from_write_only(vcpu, p);
86 84
85 cpu = get_cpu();
86
87 cpumask_setall(&vcpu->arch.require_dcache_flush); 87 cpumask_setall(&vcpu->arch.require_dcache_flush);
88 cpumask_clear_cpu(cpu, &vcpu->arch.require_dcache_flush); 88 cpumask_clear_cpu(cpu, &vcpu->arch.require_dcache_flush);
89 89
diff --git a/arch/arm/kvm/vgic.c b/arch/arm/kvm/vgic.c
index 161d5c15f0f0..17c5ac7d10ed 100644
--- a/arch/arm/kvm/vgic.c
+++ b/arch/arm/kvm/vgic.c
@@ -883,8 +883,7 @@ static bool vgic_queue_irq(struct kvm_vcpu *vcpu, u8 sgi_source_id, int irq)
883 lr, irq, vgic_cpu->vgic_lr[lr]); 883 lr, irq, vgic_cpu->vgic_lr[lr]);
884 BUG_ON(!test_bit(lr, vgic_cpu->lr_used)); 884 BUG_ON(!test_bit(lr, vgic_cpu->lr_used));
885 vgic_cpu->vgic_lr[lr] |= GICH_LR_PENDING_BIT; 885 vgic_cpu->vgic_lr[lr] |= GICH_LR_PENDING_BIT;
886 886 return true;
887 goto out;
888 } 887 }
889 888
890 /* Try to use another LR for this interrupt */ 889 /* Try to use another LR for this interrupt */
@@ -898,7 +897,6 @@ static bool vgic_queue_irq(struct kvm_vcpu *vcpu, u8 sgi_source_id, int irq)
898 vgic_cpu->vgic_irq_lr_map[irq] = lr; 897 vgic_cpu->vgic_irq_lr_map[irq] = lr;
899 set_bit(lr, vgic_cpu->lr_used); 898 set_bit(lr, vgic_cpu->lr_used);
900 899
901out:
902 if (!vgic_irq_is_edge(vcpu, irq)) 900 if (!vgic_irq_is_edge(vcpu, irq))
903 vgic_cpu->vgic_lr[lr] |= GICH_LR_EOI; 901 vgic_cpu->vgic_lr[lr] |= GICH_LR_EOI;
904 902
@@ -1018,21 +1016,6 @@ static bool vgic_process_maintenance(struct kvm_vcpu *vcpu)
1018 1016
1019 kvm_debug("MISR = %08x\n", vgic_cpu->vgic_misr); 1017 kvm_debug("MISR = %08x\n", vgic_cpu->vgic_misr);
1020 1018
1021 /*
1022 * We do not need to take the distributor lock here, since the only
1023 * action we perform is clearing the irq_active_bit for an EOIed
1024 * level interrupt. There is a potential race with
1025 * the queuing of an interrupt in __kvm_vgic_flush_hwstate(), where we
1026 * check if the interrupt is already active. Two possibilities:
1027 *
1028 * - The queuing is occurring on the same vcpu: cannot happen,
1029 * as we're already in the context of this vcpu, and
1030 * executing the handler
1031 * - The interrupt has been migrated to another vcpu, and we
1032 * ignore this interrupt for this run. Big deal. It is still
1033 * pending though, and will get considered when this vcpu
1034 * exits.
1035 */
1036 if (vgic_cpu->vgic_misr & GICH_MISR_EOI) { 1019 if (vgic_cpu->vgic_misr & GICH_MISR_EOI) {
1037 /* 1020 /*
1038 * Some level interrupts have been EOIed. Clear their 1021 * Some level interrupts have been EOIed. Clear their
@@ -1054,6 +1037,13 @@ static bool vgic_process_maintenance(struct kvm_vcpu *vcpu)
1054 } else { 1037 } else {
1055 vgic_cpu_irq_clear(vcpu, irq); 1038 vgic_cpu_irq_clear(vcpu, irq);
1056 } 1039 }
1040
1041 /*
1042 * Despite being EOIed, the LR may not have
1043 * been marked as empty.
1044 */
1045 set_bit(lr, (unsigned long *)vgic_cpu->vgic_elrsr);
1046 vgic_cpu->vgic_lr[lr] &= ~GICH_LR_ACTIVE_BIT;
1057 } 1047 }
1058 } 1048 }
1059 1049
@@ -1064,9 +1054,8 @@ static bool vgic_process_maintenance(struct kvm_vcpu *vcpu)
1064} 1054}
1065 1055
1066/* 1056/*
1067 * Sync back the VGIC state after a guest run. We do not really touch 1057 * Sync back the VGIC state after a guest run. The distributor lock is
1068 * the distributor here (the irq_pending_on_cpu bit is safe to set), 1058 * needed so we don't get preempted in the middle of the state processing.
1069 * so there is no need for taking its lock.
1070 */ 1059 */
1071static void __kvm_vgic_sync_hwstate(struct kvm_vcpu *vcpu) 1060static void __kvm_vgic_sync_hwstate(struct kvm_vcpu *vcpu)
1072{ 1061{
@@ -1112,10 +1101,14 @@ void kvm_vgic_flush_hwstate(struct kvm_vcpu *vcpu)
1112 1101
1113void kvm_vgic_sync_hwstate(struct kvm_vcpu *vcpu) 1102void kvm_vgic_sync_hwstate(struct kvm_vcpu *vcpu)
1114{ 1103{
1104 struct vgic_dist *dist = &vcpu->kvm->arch.vgic;
1105
1115 if (!irqchip_in_kernel(vcpu->kvm)) 1106 if (!irqchip_in_kernel(vcpu->kvm))
1116 return; 1107 return;
1117 1108
1109 spin_lock(&dist->lock);
1118 __kvm_vgic_sync_hwstate(vcpu); 1110 __kvm_vgic_sync_hwstate(vcpu);
1111 spin_unlock(&dist->lock);
1119} 1112}
1120 1113
1121int kvm_vgic_vcpu_pending_irq(struct kvm_vcpu *vcpu) 1114int kvm_vgic_vcpu_pending_irq(struct kvm_vcpu *vcpu)
diff --git a/arch/arm/lib/delay.c b/arch/arm/lib/delay.c
index 6b93f6a1a3c7..64dbfa57204a 100644
--- a/arch/arm/lib/delay.c
+++ b/arch/arm/lib/delay.c
@@ -58,7 +58,7 @@ static void __timer_delay(unsigned long cycles)
58static void __timer_const_udelay(unsigned long xloops) 58static void __timer_const_udelay(unsigned long xloops)
59{ 59{
60 unsigned long long loops = xloops; 60 unsigned long long loops = xloops;
61 loops *= loops_per_jiffy; 61 loops *= arm_delay_ops.ticks_per_jiffy;
62 __timer_delay(loops >> UDELAY_SHIFT); 62 __timer_delay(loops >> UDELAY_SHIFT);
63} 63}
64 64
@@ -73,11 +73,13 @@ void __init register_current_timer_delay(const struct delay_timer *timer)
73 pr_info("Switching to timer-based delay loop\n"); 73 pr_info("Switching to timer-based delay loop\n");
74 delay_timer = timer; 74 delay_timer = timer;
75 lpj_fine = timer->freq / HZ; 75 lpj_fine = timer->freq / HZ;
76 loops_per_jiffy = lpj_fine; 76
77 /* cpufreq may scale loops_per_jiffy, so keep a private copy */
78 arm_delay_ops.ticks_per_jiffy = lpj_fine;
77 arm_delay_ops.delay = __timer_delay; 79 arm_delay_ops.delay = __timer_delay;
78 arm_delay_ops.const_udelay = __timer_const_udelay; 80 arm_delay_ops.const_udelay = __timer_const_udelay;
79 arm_delay_ops.udelay = __timer_udelay; 81 arm_delay_ops.udelay = __timer_udelay;
80 arm_delay_ops.const_clock = true; 82
81 delay_calibrated = true; 83 delay_calibrated = true;
82 } else { 84 } else {
83 pr_info("Ignoring duplicate/late registration of read_current_timer delay\n"); 85 pr_info("Ignoring duplicate/late registration of read_current_timer delay\n");
diff --git a/arch/arm/mach-at91/include/mach/gpio.h b/arch/arm/mach-at91/include/mach/gpio.h
index eed465ab0dd7..5fc23771c154 100644
--- a/arch/arm/mach-at91/include/mach/gpio.h
+++ b/arch/arm/mach-at91/include/mach/gpio.h
@@ -209,6 +209,14 @@ extern int at91_get_gpio_value(unsigned pin);
209extern void at91_gpio_suspend(void); 209extern void at91_gpio_suspend(void);
210extern void at91_gpio_resume(void); 210extern void at91_gpio_resume(void);
211 211
212#ifdef CONFIG_PINCTRL_AT91
213extern void at91_pinctrl_gpio_suspend(void);
214extern void at91_pinctrl_gpio_resume(void);
215#else
216static inline void at91_pinctrl_gpio_suspend(void) {}
217static inline void at91_pinctrl_gpio_resume(void) {}
218#endif
219
212#endif /* __ASSEMBLY__ */ 220#endif /* __ASSEMBLY__ */
213 221
214#endif 222#endif
diff --git a/arch/arm/mach-at91/irq.c b/arch/arm/mach-at91/irq.c
index 8e210262aeee..e0ca59171022 100644
--- a/arch/arm/mach-at91/irq.c
+++ b/arch/arm/mach-at91/irq.c
@@ -92,23 +92,21 @@ static int at91_aic_set_wake(struct irq_data *d, unsigned value)
92 92
93void at91_irq_suspend(void) 93void at91_irq_suspend(void)
94{ 94{
95 int i = 0, bit; 95 int bit = -1;
96 96
97 if (has_aic5()) { 97 if (has_aic5()) {
98 /* disable enabled irqs */ 98 /* disable enabled irqs */
99 while ((bit = find_next_bit(backups, n_irqs, i)) < n_irqs) { 99 while ((bit = find_next_bit(backups, n_irqs, bit + 1)) < n_irqs) {
100 at91_aic_write(AT91_AIC5_SSR, 100 at91_aic_write(AT91_AIC5_SSR,
101 bit & AT91_AIC5_INTSEL_MSK); 101 bit & AT91_AIC5_INTSEL_MSK);
102 at91_aic_write(AT91_AIC5_IDCR, 1); 102 at91_aic_write(AT91_AIC5_IDCR, 1);
103 i = bit;
104 } 103 }
105 /* enable wakeup irqs */ 104 /* enable wakeup irqs */
106 i = 0; 105 bit = -1;
107 while ((bit = find_next_bit(wakeups, n_irqs, i)) < n_irqs) { 106 while ((bit = find_next_bit(wakeups, n_irqs, bit + 1)) < n_irqs) {
108 at91_aic_write(AT91_AIC5_SSR, 107 at91_aic_write(AT91_AIC5_SSR,
109 bit & AT91_AIC5_INTSEL_MSK); 108 bit & AT91_AIC5_INTSEL_MSK);
110 at91_aic_write(AT91_AIC5_IECR, 1); 109 at91_aic_write(AT91_AIC5_IECR, 1);
111 i = bit;
112 } 110 }
113 } else { 111 } else {
114 at91_aic_write(AT91_AIC_IDCR, *backups); 112 at91_aic_write(AT91_AIC_IDCR, *backups);
@@ -118,23 +116,21 @@ void at91_irq_suspend(void)
118 116
119void at91_irq_resume(void) 117void at91_irq_resume(void)
120{ 118{
121 int i = 0, bit; 119 int bit = -1;
122 120
123 if (has_aic5()) { 121 if (has_aic5()) {
124 /* disable wakeup irqs */ 122 /* disable wakeup irqs */
125 while ((bit = find_next_bit(wakeups, n_irqs, i)) < n_irqs) { 123 while ((bit = find_next_bit(wakeups, n_irqs, bit + 1)) < n_irqs) {
126 at91_aic_write(AT91_AIC5_SSR, 124 at91_aic_write(AT91_AIC5_SSR,
127 bit & AT91_AIC5_INTSEL_MSK); 125 bit & AT91_AIC5_INTSEL_MSK);
128 at91_aic_write(AT91_AIC5_IDCR, 1); 126 at91_aic_write(AT91_AIC5_IDCR, 1);
129 i = bit;
130 } 127 }
131 /* enable irqs disabled for suspend */ 128 /* enable irqs disabled for suspend */
132 i = 0; 129 bit = -1;
133 while ((bit = find_next_bit(backups, n_irqs, i)) < n_irqs) { 130 while ((bit = find_next_bit(backups, n_irqs, bit + 1)) < n_irqs) {
134 at91_aic_write(AT91_AIC5_SSR, 131 at91_aic_write(AT91_AIC5_SSR,
135 bit & AT91_AIC5_INTSEL_MSK); 132 bit & AT91_AIC5_INTSEL_MSK);
136 at91_aic_write(AT91_AIC5_IECR, 1); 133 at91_aic_write(AT91_AIC5_IECR, 1);
137 i = bit;
138 } 134 }
139 } else { 135 } else {
140 at91_aic_write(AT91_AIC_IDCR, *wakeups); 136 at91_aic_write(AT91_AIC_IDCR, *wakeups);
diff --git a/arch/arm/mach-at91/pm.c b/arch/arm/mach-at91/pm.c
index adb6db888a1f..73f1f250403a 100644
--- a/arch/arm/mach-at91/pm.c
+++ b/arch/arm/mach-at91/pm.c
@@ -201,7 +201,10 @@ extern u32 at91_slow_clock_sz;
201 201
202static int at91_pm_enter(suspend_state_t state) 202static int at91_pm_enter(suspend_state_t state)
203{ 203{
204 at91_gpio_suspend(); 204 if (of_have_populated_dt())
205 at91_pinctrl_gpio_suspend();
206 else
207 at91_gpio_suspend();
205 at91_irq_suspend(); 208 at91_irq_suspend();
206 209
207 pr_debug("AT91: PM - wake mask %08x, pm state %d\n", 210 pr_debug("AT91: PM - wake mask %08x, pm state %d\n",
@@ -286,7 +289,10 @@ static int at91_pm_enter(suspend_state_t state)
286error: 289error:
287 target_state = PM_SUSPEND_ON; 290 target_state = PM_SUSPEND_ON;
288 at91_irq_resume(); 291 at91_irq_resume();
289 at91_gpio_resume(); 292 if (of_have_populated_dt())
293 at91_pinctrl_gpio_resume();
294 else
295 at91_gpio_resume();
290 return 0; 296 return 0;
291} 297}
292 298
diff --git a/arch/arm/mach-cns3xxx/core.c b/arch/arm/mach-cns3xxx/core.c
index e698f26cc0cb..52e4bb5cf12d 100644
--- a/arch/arm/mach-cns3xxx/core.c
+++ b/arch/arm/mach-cns3xxx/core.c
@@ -22,19 +22,9 @@
22 22
23static struct map_desc cns3xxx_io_desc[] __initdata = { 23static struct map_desc cns3xxx_io_desc[] __initdata = {
24 { 24 {
25 .virtual = CNS3XXX_TC11MP_TWD_BASE_VIRT, 25 .virtual = CNS3XXX_TC11MP_SCU_BASE_VIRT,
26 .pfn = __phys_to_pfn(CNS3XXX_TC11MP_TWD_BASE), 26 .pfn = __phys_to_pfn(CNS3XXX_TC11MP_SCU_BASE),
27 .length = SZ_4K, 27 .length = SZ_8K,
28 .type = MT_DEVICE,
29 }, {
30 .virtual = CNS3XXX_TC11MP_GIC_CPU_BASE_VIRT,
31 .pfn = __phys_to_pfn(CNS3XXX_TC11MP_GIC_CPU_BASE),
32 .length = SZ_4K,
33 .type = MT_DEVICE,
34 }, {
35 .virtual = CNS3XXX_TC11MP_GIC_DIST_BASE_VIRT,
36 .pfn = __phys_to_pfn(CNS3XXX_TC11MP_GIC_DIST_BASE),
37 .length = SZ_4K,
38 .type = MT_DEVICE, 28 .type = MT_DEVICE,
39 }, { 29 }, {
40 .virtual = CNS3XXX_TIMER1_2_3_BASE_VIRT, 30 .virtual = CNS3XXX_TIMER1_2_3_BASE_VIRT,
diff --git a/arch/arm/mach-cns3xxx/include/mach/cns3xxx.h b/arch/arm/mach-cns3xxx/include/mach/cns3xxx.h
index 191c8e57f289..b1021aafa481 100644
--- a/arch/arm/mach-cns3xxx/include/mach/cns3xxx.h
+++ b/arch/arm/mach-cns3xxx/include/mach/cns3xxx.h
@@ -94,10 +94,10 @@
94#define RTC_INTR_STS_OFFSET 0x34 94#define RTC_INTR_STS_OFFSET 0x34
95 95
96#define CNS3XXX_MISC_BASE 0x76000000 /* Misc Control */ 96#define CNS3XXX_MISC_BASE 0x76000000 /* Misc Control */
97#define CNS3XXX_MISC_BASE_VIRT 0xFFF07000 /* Misc Control */ 97#define CNS3XXX_MISC_BASE_VIRT 0xFB000000 /* Misc Control */
98 98
99#define CNS3XXX_PM_BASE 0x77000000 /* Power Management Control */ 99#define CNS3XXX_PM_BASE 0x77000000 /* Power Management Control */
100#define CNS3XXX_PM_BASE_VIRT 0xFFF08000 100#define CNS3XXX_PM_BASE_VIRT 0xFB001000
101 101
102#define PM_CLK_GATE_OFFSET 0x00 102#define PM_CLK_GATE_OFFSET 0x00
103#define PM_SOFT_RST_OFFSET 0x04 103#define PM_SOFT_RST_OFFSET 0x04
@@ -109,7 +109,7 @@
109#define PM_PLL_HM_PD_OFFSET 0x1C 109#define PM_PLL_HM_PD_OFFSET 0x1C
110 110
111#define CNS3XXX_UART0_BASE 0x78000000 /* UART 0 */ 111#define CNS3XXX_UART0_BASE 0x78000000 /* UART 0 */
112#define CNS3XXX_UART0_BASE_VIRT 0xFFF09000 112#define CNS3XXX_UART0_BASE_VIRT 0xFB002000
113 113
114#define CNS3XXX_UART1_BASE 0x78400000 /* UART 1 */ 114#define CNS3XXX_UART1_BASE 0x78400000 /* UART 1 */
115#define CNS3XXX_UART1_BASE_VIRT 0xFFF0A000 115#define CNS3XXX_UART1_BASE_VIRT 0xFFF0A000
@@ -130,7 +130,7 @@
130#define CNS3XXX_I2S_BASE_VIRT 0xFFF10000 130#define CNS3XXX_I2S_BASE_VIRT 0xFFF10000
131 131
132#define CNS3XXX_TIMER1_2_3_BASE 0x7C800000 /* Timer */ 132#define CNS3XXX_TIMER1_2_3_BASE 0x7C800000 /* Timer */
133#define CNS3XXX_TIMER1_2_3_BASE_VIRT 0xFFF10800 133#define CNS3XXX_TIMER1_2_3_BASE_VIRT 0xFB003000
134 134
135#define TIMER1_COUNTER_OFFSET 0x00 135#define TIMER1_COUNTER_OFFSET 0x00
136#define TIMER1_AUTO_RELOAD_OFFSET 0x04 136#define TIMER1_AUTO_RELOAD_OFFSET 0x04
@@ -227,16 +227,16 @@
227 * Testchip peripheral and fpga gic regions 227 * Testchip peripheral and fpga gic regions
228 */ 228 */
229#define CNS3XXX_TC11MP_SCU_BASE 0x90000000 /* IRQ, Test chip */ 229#define CNS3XXX_TC11MP_SCU_BASE 0x90000000 /* IRQ, Test chip */
230#define CNS3XXX_TC11MP_SCU_BASE_VIRT 0xFF000000 230#define CNS3XXX_TC11MP_SCU_BASE_VIRT 0xFB004000
231 231
232#define CNS3XXX_TC11MP_GIC_CPU_BASE 0x90000100 /* Test chip interrupt controller CPU interface */ 232#define CNS3XXX_TC11MP_GIC_CPU_BASE 0x90000100 /* Test chip interrupt controller CPU interface */
233#define CNS3XXX_TC11MP_GIC_CPU_BASE_VIRT 0xFF000100 233#define CNS3XXX_TC11MP_GIC_CPU_BASE_VIRT (CNS3XXX_TC11MP_SCU_BASE_VIRT + 0x100)
234 234
235#define CNS3XXX_TC11MP_TWD_BASE 0x90000600 235#define CNS3XXX_TC11MP_TWD_BASE 0x90000600
236#define CNS3XXX_TC11MP_TWD_BASE_VIRT 0xFF000600 236#define CNS3XXX_TC11MP_TWD_BASE_VIRT (CNS3XXX_TC11MP_SCU_BASE_VIRT + 0x600)
237 237
238#define CNS3XXX_TC11MP_GIC_DIST_BASE 0x90001000 /* Test chip interrupt controller distributor */ 238#define CNS3XXX_TC11MP_GIC_DIST_BASE 0x90001000 /* Test chip interrupt controller distributor */
239#define CNS3XXX_TC11MP_GIC_DIST_BASE_VIRT 0xFF001000 239#define CNS3XXX_TC11MP_GIC_DIST_BASE_VIRT (CNS3XXX_TC11MP_SCU_BASE_VIRT + 0x1000)
240 240
241#define CNS3XXX_TC11MP_L220_BASE 0x92002000 /* L220 registers */ 241#define CNS3XXX_TC11MP_L220_BASE 0x92002000 /* L220 registers */
242#define CNS3XXX_TC11MP_L220_BASE_VIRT 0xFF002000 242#define CNS3XXX_TC11MP_L220_BASE_VIRT 0xFF002000
diff --git a/arch/arm/mach-davinci/dma.c b/arch/arm/mach-davinci/dma.c
index a685e9706b7b..45b7c71d9cc1 100644
--- a/arch/arm/mach-davinci/dma.c
+++ b/arch/arm/mach-davinci/dma.c
@@ -743,6 +743,9 @@ EXPORT_SYMBOL(edma_free_channel);
743 */ 743 */
744int edma_alloc_slot(unsigned ctlr, int slot) 744int edma_alloc_slot(unsigned ctlr, int slot)
745{ 745{
746 if (!edma_cc[ctlr])
747 return -EINVAL;
748
746 if (slot >= 0) 749 if (slot >= 0)
747 slot = EDMA_CHAN_SLOT(slot); 750 slot = EDMA_CHAN_SLOT(slot);
748 751
diff --git a/arch/arm/mach-ep93xx/include/mach/uncompress.h b/arch/arm/mach-ep93xx/include/mach/uncompress.h
index d2afb4dd82ab..b5cc77d2380b 100644
--- a/arch/arm/mach-ep93xx/include/mach/uncompress.h
+++ b/arch/arm/mach-ep93xx/include/mach/uncompress.h
@@ -47,9 +47,13 @@ static void __raw_writel(unsigned int value, unsigned int ptr)
47 47
48static inline void putc(int c) 48static inline void putc(int c)
49{ 49{
50 /* Transmit fifo not full? */ 50 int i;
51 while (__raw_readb(PHYS_UART_FLAG) & UART_FLAG_TXFF) 51
52 ; 52 for (i = 0; i < 10000; i++) {
53 /* Transmit fifo not full? */
54 if (!(__raw_readb(PHYS_UART_FLAG) & UART_FLAG_TXFF))
55 break;
56 }
53 57
54 __raw_writeb(c, PHYS_UART_DATA); 58 __raw_writeb(c, PHYS_UART_DATA);
55} 59}
diff --git a/arch/arm/mach-exynos/hotplug.c b/arch/arm/mach-exynos/hotplug.c
index c3f825b27947..af90cfa2f826 100644
--- a/arch/arm/mach-exynos/hotplug.c
+++ b/arch/arm/mach-exynos/hotplug.c
@@ -28,7 +28,6 @@ static inline void cpu_enter_lowpower_a9(void)
28{ 28{
29 unsigned int v; 29 unsigned int v;
30 30
31 flush_cache_all();
32 asm volatile( 31 asm volatile(
33 " mcr p15, 0, %1, c7, c5, 0\n" 32 " mcr p15, 0, %1, c7, c5, 0\n"
34 " mcr p15, 0, %1, c7, c10, 4\n" 33 " mcr p15, 0, %1, c7, c10, 4\n"
diff --git a/arch/arm/mach-footbridge/Kconfig b/arch/arm/mach-footbridge/Kconfig
index abda5a18a664..0f2111a11315 100644
--- a/arch/arm/mach-footbridge/Kconfig
+++ b/arch/arm/mach-footbridge/Kconfig
@@ -67,6 +67,7 @@ config ARCH_NETWINDER
67 select ISA 67 select ISA
68 select ISA_DMA 68 select ISA_DMA
69 select PCI 69 select PCI
70 select VIRT_TO_BUS
70 help 71 help
71 Say Y here if you intend to run this kernel on the Rebel.COM 72 Say Y here if you intend to run this kernel on the Rebel.COM
72 NetWinder. Information about this machine can be found at: 73 NetWinder. Information about this machine can be found at:
diff --git a/arch/arm/mach-highbank/hotplug.c b/arch/arm/mach-highbank/hotplug.c
index f30c52843396..a019e4e86e51 100644
--- a/arch/arm/mach-highbank/hotplug.c
+++ b/arch/arm/mach-highbank/hotplug.c
@@ -14,7 +14,6 @@
14 * this program. If not, see <http://www.gnu.org/licenses/>. 14 * this program. If not, see <http://www.gnu.org/licenses/>.
15 */ 15 */
16#include <linux/kernel.h> 16#include <linux/kernel.h>
17
18#include <asm/cacheflush.h> 17#include <asm/cacheflush.h>
19 18
20#include "core.h" 19#include "core.h"
@@ -28,13 +27,11 @@ extern void secondary_startup(void);
28 */ 27 */
29void __ref highbank_cpu_die(unsigned int cpu) 28void __ref highbank_cpu_die(unsigned int cpu)
30{ 29{
31 flush_cache_all();
32
33 highbank_set_cpu_jump(cpu, phys_to_virt(0)); 30 highbank_set_cpu_jump(cpu, phys_to_virt(0));
34 highbank_set_core_pwr();
35 31
36 cpu_do_idle(); 32 flush_cache_louis();
33 highbank_set_core_pwr();
37 34
38 /* We should never return from idle */ 35 while (1)
39 panic("highbank: cpu %d unexpectedly exit from shutdown\n", cpu); 36 cpu_do_idle();
40} 37}
diff --git a/arch/arm/mach-imx/clk-imx35.c b/arch/arm/mach-imx/clk-imx35.c
index 74e3a34d78b8..2193c834f55c 100644
--- a/arch/arm/mach-imx/clk-imx35.c
+++ b/arch/arm/mach-imx/clk-imx35.c
@@ -257,6 +257,7 @@ int __init mx35_clocks_init(void)
257 clk_register_clkdev(clk[wdog_gate], NULL, "imx2-wdt.0"); 257 clk_register_clkdev(clk[wdog_gate], NULL, "imx2-wdt.0");
258 clk_register_clkdev(clk[nfc_div], NULL, "imx25-nand.0"); 258 clk_register_clkdev(clk[nfc_div], NULL, "imx25-nand.0");
259 clk_register_clkdev(clk[csi_gate], NULL, "mx3-camera.0"); 259 clk_register_clkdev(clk[csi_gate], NULL, "mx3-camera.0");
260 clk_register_clkdev(clk[admux_gate], "audmux", NULL);
260 261
261 clk_prepare_enable(clk[spba_gate]); 262 clk_prepare_enable(clk[spba_gate]);
262 clk_prepare_enable(clk[gpio1_gate]); 263 clk_prepare_enable(clk[gpio1_gate]);
@@ -264,6 +265,8 @@ int __init mx35_clocks_init(void)
264 clk_prepare_enable(clk[gpio3_gate]); 265 clk_prepare_enable(clk[gpio3_gate]);
265 clk_prepare_enable(clk[iim_gate]); 266 clk_prepare_enable(clk[iim_gate]);
266 clk_prepare_enable(clk[emi_gate]); 267 clk_prepare_enable(clk[emi_gate]);
268 clk_prepare_enable(clk[max_gate]);
269 clk_prepare_enable(clk[iomuxc_gate]);
267 270
268 /* 271 /*
269 * SCC is needed to boot via mmc after a watchdog reset. The clock code 272 * SCC is needed to boot via mmc after a watchdog reset. The clock code
diff --git a/arch/arm/mach-imx/clk-imx6q.c b/arch/arm/mach-imx/clk-imx6q.c
index 2f9ff93a4e61..d38e54f5b6d7 100644
--- a/arch/arm/mach-imx/clk-imx6q.c
+++ b/arch/arm/mach-imx/clk-imx6q.c
@@ -115,7 +115,7 @@ static const char *gpu2d_core_sels[] = { "axi", "pll3_usb_otg", "pll2_pfd0_352m"
115static const char *gpu3d_core_sels[] = { "mmdc_ch0_axi", "pll3_usb_otg", "pll2_pfd1_594m", "pll2_pfd2_396m", }; 115static const char *gpu3d_core_sels[] = { "mmdc_ch0_axi", "pll3_usb_otg", "pll2_pfd1_594m", "pll2_pfd2_396m", };
116static const char *gpu3d_shader_sels[] = { "mmdc_ch0_axi", "pll3_usb_otg", "pll2_pfd1_594m", "pll2_pfd9_720m", }; 116static const char *gpu3d_shader_sels[] = { "mmdc_ch0_axi", "pll3_usb_otg", "pll2_pfd1_594m", "pll2_pfd9_720m", };
117static const char *ipu_sels[] = { "mmdc_ch0_axi", "pll2_pfd2_396m", "pll3_120m", "pll3_pfd1_540m", }; 117static const char *ipu_sels[] = { "mmdc_ch0_axi", "pll2_pfd2_396m", "pll3_120m", "pll3_pfd1_540m", };
118static const char *ldb_di_sels[] = { "pll5_video", "pll2_pfd0_352m", "pll2_pfd2_396m", "mmdc_ch1_axi", "pll3_pfd1_540m", }; 118static const char *ldb_di_sels[] = { "pll5_video", "pll2_pfd0_352m", "pll2_pfd2_396m", "mmdc_ch1_axi", "pll3_usb_otg", };
119static const char *ipu_di_pre_sels[] = { "mmdc_ch0_axi", "pll3_usb_otg", "pll5_video", "pll2_pfd0_352m", "pll2_pfd2_396m", "pll3_pfd1_540m", }; 119static const char *ipu_di_pre_sels[] = { "mmdc_ch0_axi", "pll3_usb_otg", "pll5_video", "pll2_pfd0_352m", "pll2_pfd2_396m", "pll3_pfd1_540m", };
120static const char *ipu1_di0_sels[] = { "ipu1_di0_pre", "dummy", "dummy", "ldb_di0", "ldb_di1", }; 120static const char *ipu1_di0_sels[] = { "ipu1_di0_pre", "dummy", "dummy", "ldb_di0", "ldb_di1", };
121static const char *ipu1_di1_sels[] = { "ipu1_di1_pre", "dummy", "dummy", "ldb_di0", "ldb_di1", }; 121static const char *ipu1_di1_sels[] = { "ipu1_di1_pre", "dummy", "dummy", "ldb_di0", "ldb_di1", };
@@ -443,7 +443,6 @@ int __init mx6q_clocks_init(void)
443 443
444 clk_register_clkdev(clk[gpt_ipg], "ipg", "imx-gpt.0"); 444 clk_register_clkdev(clk[gpt_ipg], "ipg", "imx-gpt.0");
445 clk_register_clkdev(clk[gpt_ipg_per], "per", "imx-gpt.0"); 445 clk_register_clkdev(clk[gpt_ipg_per], "per", "imx-gpt.0");
446 clk_register_clkdev(clk[twd], NULL, "smp_twd");
447 clk_register_clkdev(clk[cko1_sel], "cko1_sel", NULL); 446 clk_register_clkdev(clk[cko1_sel], "cko1_sel", NULL);
448 clk_register_clkdev(clk[ahb], "ahb", NULL); 447 clk_register_clkdev(clk[ahb], "ahb", NULL);
449 clk_register_clkdev(clk[cko1], "cko1", NULL); 448 clk_register_clkdev(clk[cko1], "cko1", NULL);
diff --git a/arch/arm/mach-imx/common.h b/arch/arm/mach-imx/common.h
index 5a800bfcec5b..5bf4a97ab241 100644
--- a/arch/arm/mach-imx/common.h
+++ b/arch/arm/mach-imx/common.h
@@ -110,6 +110,8 @@ void tzic_handle_irq(struct pt_regs *);
110 110
111extern void imx_enable_cpu(int cpu, bool enable); 111extern void imx_enable_cpu(int cpu, bool enable);
112extern void imx_set_cpu_jump(int cpu, void *jump_addr); 112extern void imx_set_cpu_jump(int cpu, void *jump_addr);
113extern u32 imx_get_cpu_arg(int cpu);
114extern void imx_set_cpu_arg(int cpu, u32 arg);
113extern void v7_cpu_resume(void); 115extern void v7_cpu_resume(void);
114extern u32 *pl310_get_save_ptr(void); 116extern u32 *pl310_get_save_ptr(void);
115#ifdef CONFIG_SMP 117#ifdef CONFIG_SMP
diff --git a/arch/arm/mach-imx/hotplug.c b/arch/arm/mach-imx/hotplug.c
index 7bc5fe15dda2..5e91112dcbee 100644
--- a/arch/arm/mach-imx/hotplug.c
+++ b/arch/arm/mach-imx/hotplug.c
@@ -11,7 +11,6 @@
11 */ 11 */
12 12
13#include <linux/errno.h> 13#include <linux/errno.h>
14#include <asm/cacheflush.h>
15#include <asm/cp15.h> 14#include <asm/cp15.h>
16 15
17#include "common.h" 16#include "common.h"
@@ -20,7 +19,6 @@ static inline void cpu_enter_lowpower(void)
20{ 19{
21 unsigned int v; 20 unsigned int v;
22 21
23 flush_cache_all();
24 asm volatile( 22 asm volatile(
25 "mcr p15, 0, %1, c7, c5, 0\n" 23 "mcr p15, 0, %1, c7, c5, 0\n"
26 " mcr p15, 0, %1, c7, c10, 4\n" 24 " mcr p15, 0, %1, c7, c10, 4\n"
@@ -46,11 +44,23 @@ static inline void cpu_enter_lowpower(void)
46void imx_cpu_die(unsigned int cpu) 44void imx_cpu_die(unsigned int cpu)
47{ 45{
48 cpu_enter_lowpower(); 46 cpu_enter_lowpower();
47 /*
48 * We use the cpu jumping argument register to sync with
49 * imx_cpu_kill() which is running on cpu0 and waiting for
50 * the register being cleared to kill the cpu.
51 */
52 imx_set_cpu_arg(cpu, ~0);
49 cpu_do_idle(); 53 cpu_do_idle();
50} 54}
51 55
52int imx_cpu_kill(unsigned int cpu) 56int imx_cpu_kill(unsigned int cpu)
53{ 57{
58 unsigned long timeout = jiffies + msecs_to_jiffies(50);
59
60 while (imx_get_cpu_arg(cpu) == 0)
61 if (time_after(jiffies, timeout))
62 return 0;
54 imx_enable_cpu(cpu, false); 63 imx_enable_cpu(cpu, false);
64 imx_set_cpu_arg(cpu, 0);
55 return 1; 65 return 1;
56} 66}
diff --git a/arch/arm/mach-imx/imx25-dt.c b/arch/arm/mach-imx/imx25-dt.c
index 03b65e5ea541..82348391582a 100644
--- a/arch/arm/mach-imx/imx25-dt.c
+++ b/arch/arm/mach-imx/imx25-dt.c
@@ -27,6 +27,11 @@ static const char * const imx25_dt_board_compat[] __initconst = {
27 NULL 27 NULL
28}; 28};
29 29
30static void __init imx25_timer_init(void)
31{
32 mx25_clocks_init_dt();
33}
34
30DT_MACHINE_START(IMX25_DT, "Freescale i.MX25 (Device Tree Support)") 35DT_MACHINE_START(IMX25_DT, "Freescale i.MX25 (Device Tree Support)")
31 .map_io = mx25_map_io, 36 .map_io = mx25_map_io,
32 .init_early = imx25_init_early, 37 .init_early = imx25_init_early,
diff --git a/arch/arm/mach-imx/src.c b/arch/arm/mach-imx/src.c
index e15f1555c59b..09a742f8c7ab 100644
--- a/arch/arm/mach-imx/src.c
+++ b/arch/arm/mach-imx/src.c
@@ -43,6 +43,18 @@ void imx_set_cpu_jump(int cpu, void *jump_addr)
43 src_base + SRC_GPR1 + cpu * 8); 43 src_base + SRC_GPR1 + cpu * 8);
44} 44}
45 45
46u32 imx_get_cpu_arg(int cpu)
47{
48 cpu = cpu_logical_map(cpu);
49 return readl_relaxed(src_base + SRC_GPR1 + cpu * 8 + 4);
50}
51
52void imx_set_cpu_arg(int cpu, u32 arg)
53{
54 cpu = cpu_logical_map(cpu);
55 writel_relaxed(arg, src_base + SRC_GPR1 + cpu * 8 + 4);
56}
57
46void imx_src_prepare_restart(void) 58void imx_src_prepare_restart(void)
47{ 59{
48 u32 val; 60 u32 val;
diff --git a/arch/arm/mach-kirkwood/board-iomega_ix2_200.c b/arch/arm/mach-kirkwood/board-iomega_ix2_200.c
index f655b2637b0e..e5f70415905a 100644
--- a/arch/arm/mach-kirkwood/board-iomega_ix2_200.c
+++ b/arch/arm/mach-kirkwood/board-iomega_ix2_200.c
@@ -20,10 +20,15 @@ static struct mv643xx_eth_platform_data iomega_ix2_200_ge00_data = {
20 .duplex = DUPLEX_FULL, 20 .duplex = DUPLEX_FULL,
21}; 21};
22 22
23static struct mv643xx_eth_platform_data iomega_ix2_200_ge01_data = {
24 .phy_addr = MV643XX_ETH_PHY_ADDR(11),
25};
26
23void __init iomega_ix2_200_init(void) 27void __init iomega_ix2_200_init(void)
24{ 28{
25 /* 29 /*
26 * Basic setup. Needs to be called early. 30 * Basic setup. Needs to be called early.
27 */ 31 */
28 kirkwood_ge01_init(&iomega_ix2_200_ge00_data); 32 kirkwood_ge00_init(&iomega_ix2_200_ge00_data);
33 kirkwood_ge01_init(&iomega_ix2_200_ge01_data);
29} 34}
diff --git a/arch/arm/mach-kirkwood/guruplug-setup.c b/arch/arm/mach-kirkwood/guruplug-setup.c
index 1c6e736cbbf8..08dd739aa709 100644
--- a/arch/arm/mach-kirkwood/guruplug-setup.c
+++ b/arch/arm/mach-kirkwood/guruplug-setup.c
@@ -53,6 +53,8 @@ static struct mv_sata_platform_data guruplug_sata_data = {
53 53
54static struct mvsdio_platform_data guruplug_mvsdio_data = { 54static struct mvsdio_platform_data guruplug_mvsdio_data = {
55 /* unfortunately the CD signal has not been connected */ 55 /* unfortunately the CD signal has not been connected */
56 .gpio_card_detect = -1,
57 .gpio_write_protect = -1,
56}; 58};
57 59
58static struct gpio_led guruplug_led_pins[] = { 60static struct gpio_led guruplug_led_pins[] = {
diff --git a/arch/arm/mach-kirkwood/openrd-setup.c b/arch/arm/mach-kirkwood/openrd-setup.c
index 8ddd69fdc937..6a6eb548307d 100644
--- a/arch/arm/mach-kirkwood/openrd-setup.c
+++ b/arch/arm/mach-kirkwood/openrd-setup.c
@@ -55,6 +55,7 @@ static struct mv_sata_platform_data openrd_sata_data = {
55 55
56static struct mvsdio_platform_data openrd_mvsdio_data = { 56static struct mvsdio_platform_data openrd_mvsdio_data = {
57 .gpio_card_detect = 29, /* MPP29 used as SD card detect */ 57 .gpio_card_detect = 29, /* MPP29 used as SD card detect */
58 .gpio_write_protect = -1,
58}; 59};
59 60
60static unsigned int openrd_mpp_config[] __initdata = { 61static unsigned int openrd_mpp_config[] __initdata = {
diff --git a/arch/arm/mach-kirkwood/rd88f6281-setup.c b/arch/arm/mach-kirkwood/rd88f6281-setup.c
index c7d93b48926b..d24223166e06 100644
--- a/arch/arm/mach-kirkwood/rd88f6281-setup.c
+++ b/arch/arm/mach-kirkwood/rd88f6281-setup.c
@@ -69,6 +69,7 @@ static struct mv_sata_platform_data rd88f6281_sata_data = {
69 69
70static struct mvsdio_platform_data rd88f6281_mvsdio_data = { 70static struct mvsdio_platform_data rd88f6281_mvsdio_data = {
71 .gpio_card_detect = 28, 71 .gpio_card_detect = 28,
72 .gpio_write_protect = -1,
72}; 73};
73 74
74static unsigned int rd88f6281_mpp_config[] __initdata = { 75static unsigned int rd88f6281_mpp_config[] __initdata = {
diff --git a/arch/arm/mach-mmp/gplugd.c b/arch/arm/mach-mmp/gplugd.c
index d1e2d595e79c..f62b68d926f4 100644
--- a/arch/arm/mach-mmp/gplugd.c
+++ b/arch/arm/mach-mmp/gplugd.c
@@ -9,6 +9,7 @@
9 */ 9 */
10 10
11#include <linux/init.h> 11#include <linux/init.h>
12#include <linux/platform_device.h>
12#include <linux/gpio.h> 13#include <linux/gpio.h>
13 14
14#include <asm/mach/arch.h> 15#include <asm/mach/arch.h>
diff --git a/arch/arm/mach-msm/hotplug.c b/arch/arm/mach-msm/hotplug.c
index 750446feb444..326a87261f9a 100644
--- a/arch/arm/mach-msm/hotplug.c
+++ b/arch/arm/mach-msm/hotplug.c
@@ -10,16 +10,12 @@
10#include <linux/errno.h> 10#include <linux/errno.h>
11#include <linux/smp.h> 11#include <linux/smp.h>
12 12
13#include <asm/cacheflush.h>
14#include <asm/smp_plat.h> 13#include <asm/smp_plat.h>
15 14
16#include "common.h" 15#include "common.h"
17 16
18static inline void cpu_enter_lowpower(void) 17static inline void cpu_enter_lowpower(void)
19{ 18{
20 /* Just flush the cache. Changing the coherency is not yet
21 * available on msm. */
22 flush_cache_all();
23} 19}
24 20
25static inline void cpu_leave_lowpower(void) 21static inline void cpu_leave_lowpower(void)
diff --git a/arch/arm/mach-msm/timer.c b/arch/arm/mach-msm/timer.c
index 2969027f02fa..f9fd77e8f1f5 100644
--- a/arch/arm/mach-msm/timer.c
+++ b/arch/arm/mach-msm/timer.c
@@ -62,7 +62,10 @@ static int msm_timer_set_next_event(unsigned long cycles,
62{ 62{
63 u32 ctrl = readl_relaxed(event_base + TIMER_ENABLE); 63 u32 ctrl = readl_relaxed(event_base + TIMER_ENABLE);
64 64
65 writel_relaxed(0, event_base + TIMER_CLEAR); 65 ctrl &= ~TIMER_ENABLE_EN;
66 writel_relaxed(ctrl, event_base + TIMER_ENABLE);
67
68 writel_relaxed(ctrl, event_base + TIMER_CLEAR);
66 writel_relaxed(cycles, event_base + TIMER_MATCH_VAL); 69 writel_relaxed(cycles, event_base + TIMER_MATCH_VAL);
67 writel_relaxed(ctrl | TIMER_ENABLE_EN, event_base + TIMER_ENABLE); 70 writel_relaxed(ctrl | TIMER_ENABLE_EN, event_base + TIMER_ENABLE);
68 return 0; 71 return 0;
diff --git a/arch/arm/mach-mvebu/irq-armada-370-xp.c b/arch/arm/mach-mvebu/irq-armada-370-xp.c
index 274ff58271de..d5970f5a1e8d 100644
--- a/arch/arm/mach-mvebu/irq-armada-370-xp.c
+++ b/arch/arm/mach-mvebu/irq-armada-370-xp.c
@@ -44,6 +44,8 @@
44 44
45#define ARMADA_370_XP_MAX_PER_CPU_IRQS (28) 45#define ARMADA_370_XP_MAX_PER_CPU_IRQS (28)
46 46
47#define ARMADA_370_XP_TIMER0_PER_CPU_IRQ (5)
48
47#define ACTIVE_DOORBELLS (8) 49#define ACTIVE_DOORBELLS (8)
48 50
49static DEFINE_RAW_SPINLOCK(irq_controller_lock); 51static DEFINE_RAW_SPINLOCK(irq_controller_lock);
@@ -59,36 +61,26 @@ static struct irq_domain *armada_370_xp_mpic_domain;
59 */ 61 */
60static void armada_370_xp_irq_mask(struct irq_data *d) 62static void armada_370_xp_irq_mask(struct irq_data *d)
61{ 63{
62#ifdef CONFIG_SMP
63 irq_hw_number_t hwirq = irqd_to_hwirq(d); 64 irq_hw_number_t hwirq = irqd_to_hwirq(d);
64 65
65 if (hwirq > ARMADA_370_XP_MAX_PER_CPU_IRQS) 66 if (hwirq != ARMADA_370_XP_TIMER0_PER_CPU_IRQ)
66 writel(hwirq, main_int_base + 67 writel(hwirq, main_int_base +
67 ARMADA_370_XP_INT_CLEAR_ENABLE_OFFS); 68 ARMADA_370_XP_INT_CLEAR_ENABLE_OFFS);
68 else 69 else
69 writel(hwirq, per_cpu_int_base + 70 writel(hwirq, per_cpu_int_base +
70 ARMADA_370_XP_INT_SET_MASK_OFFS); 71 ARMADA_370_XP_INT_SET_MASK_OFFS);
71#else
72 writel(irqd_to_hwirq(d),
73 per_cpu_int_base + ARMADA_370_XP_INT_SET_MASK_OFFS);
74#endif
75} 72}
76 73
77static void armada_370_xp_irq_unmask(struct irq_data *d) 74static void armada_370_xp_irq_unmask(struct irq_data *d)
78{ 75{
79#ifdef CONFIG_SMP
80 irq_hw_number_t hwirq = irqd_to_hwirq(d); 76 irq_hw_number_t hwirq = irqd_to_hwirq(d);
81 77
82 if (hwirq > ARMADA_370_XP_MAX_PER_CPU_IRQS) 78 if (hwirq != ARMADA_370_XP_TIMER0_PER_CPU_IRQ)
83 writel(hwirq, main_int_base + 79 writel(hwirq, main_int_base +
84 ARMADA_370_XP_INT_SET_ENABLE_OFFS); 80 ARMADA_370_XP_INT_SET_ENABLE_OFFS);
85 else 81 else
86 writel(hwirq, per_cpu_int_base + 82 writel(hwirq, per_cpu_int_base +
87 ARMADA_370_XP_INT_CLEAR_MASK_OFFS); 83 ARMADA_370_XP_INT_CLEAR_MASK_OFFS);
88#else
89 writel(irqd_to_hwirq(d),
90 per_cpu_int_base + ARMADA_370_XP_INT_CLEAR_MASK_OFFS);
91#endif
92} 84}
93 85
94#ifdef CONFIG_SMP 86#ifdef CONFIG_SMP
@@ -144,10 +136,14 @@ static int armada_370_xp_mpic_irq_map(struct irq_domain *h,
144 unsigned int virq, irq_hw_number_t hw) 136 unsigned int virq, irq_hw_number_t hw)
145{ 137{
146 armada_370_xp_irq_mask(irq_get_irq_data(virq)); 138 armada_370_xp_irq_mask(irq_get_irq_data(virq));
147 writel(hw, main_int_base + ARMADA_370_XP_INT_SET_ENABLE_OFFS); 139 if (hw != ARMADA_370_XP_TIMER0_PER_CPU_IRQ)
140 writel(hw, per_cpu_int_base +
141 ARMADA_370_XP_INT_CLEAR_MASK_OFFS);
142 else
143 writel(hw, main_int_base + ARMADA_370_XP_INT_SET_ENABLE_OFFS);
148 irq_set_status_flags(virq, IRQ_LEVEL); 144 irq_set_status_flags(virq, IRQ_LEVEL);
149 145
150 if (hw < ARMADA_370_XP_MAX_PER_CPU_IRQS) { 146 if (hw == ARMADA_370_XP_TIMER0_PER_CPU_IRQ) {
151 irq_set_percpu_devid(virq); 147 irq_set_percpu_devid(virq);
152 irq_set_chip_and_handler(virq, &armada_370_xp_irq_chip, 148 irq_set_chip_and_handler(virq, &armada_370_xp_irq_chip,
153 handle_percpu_devid_irq); 149 handle_percpu_devid_irq);
diff --git a/arch/arm/mach-mxs/mach-mxs.c b/arch/arm/mach-mxs/mach-mxs.c
index 3218f1f2c0e0..e7b781d3788f 100644
--- a/arch/arm/mach-mxs/mach-mxs.c
+++ b/arch/arm/mach-mxs/mach-mxs.c
@@ -41,8 +41,6 @@ static struct fb_videomode mx23evk_video_modes[] = {
41 .lower_margin = 4, 41 .lower_margin = 4,
42 .hsync_len = 1, 42 .hsync_len = 1,
43 .vsync_len = 1, 43 .vsync_len = 1,
44 .sync = FB_SYNC_DATA_ENABLE_HIGH_ACT |
45 FB_SYNC_DOTCLK_FAILING_ACT,
46 }, 44 },
47}; 45};
48 46
@@ -59,8 +57,6 @@ static struct fb_videomode mx28evk_video_modes[] = {
59 .lower_margin = 10, 57 .lower_margin = 10,
60 .hsync_len = 10, 58 .hsync_len = 10,
61 .vsync_len = 10, 59 .vsync_len = 10,
62 .sync = FB_SYNC_DATA_ENABLE_HIGH_ACT |
63 FB_SYNC_DOTCLK_FAILING_ACT,
64 }, 60 },
65}; 61};
66 62
@@ -77,7 +73,6 @@ static struct fb_videomode m28evk_video_modes[] = {
77 .lower_margin = 45, 73 .lower_margin = 45,
78 .hsync_len = 1, 74 .hsync_len = 1,
79 .vsync_len = 1, 75 .vsync_len = 1,
80 .sync = FB_SYNC_DATA_ENABLE_HIGH_ACT,
81 }, 76 },
82}; 77};
83 78
@@ -94,9 +89,7 @@ static struct fb_videomode apx4devkit_video_modes[] = {
94 .lower_margin = 13, 89 .lower_margin = 13,
95 .hsync_len = 48, 90 .hsync_len = 48,
96 .vsync_len = 3, 91 .vsync_len = 3,
97 .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT | 92 .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
98 FB_SYNC_DATA_ENABLE_HIGH_ACT |
99 FB_SYNC_DOTCLK_FAILING_ACT,
100 }, 93 },
101}; 94};
102 95
@@ -113,9 +106,7 @@ static struct fb_videomode apf28dev_video_modes[] = {
113 .lower_margin = 0x15, 106 .lower_margin = 0x15,
114 .hsync_len = 64, 107 .hsync_len = 64,
115 .vsync_len = 4, 108 .vsync_len = 4,
116 .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT | 109 .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
117 FB_SYNC_DATA_ENABLE_HIGH_ACT |
118 FB_SYNC_DOTCLK_FAILING_ACT,
119 }, 110 },
120}; 111};
121 112
@@ -132,7 +123,6 @@ static struct fb_videomode cfa10049_video_modes[] = {
132 .lower_margin = 2, 123 .lower_margin = 2,
133 .hsync_len = 15, 124 .hsync_len = 15,
134 .vsync_len = 15, 125 .vsync_len = 15,
135 .sync = FB_SYNC_DATA_ENABLE_HIGH_ACT
136 }, 126 },
137}; 127};
138 128
@@ -259,6 +249,8 @@ static void __init imx23_evk_init(void)
259 mxsfb_pdata.mode_count = ARRAY_SIZE(mx23evk_video_modes); 249 mxsfb_pdata.mode_count = ARRAY_SIZE(mx23evk_video_modes);
260 mxsfb_pdata.default_bpp = 32; 250 mxsfb_pdata.default_bpp = 32;
261 mxsfb_pdata.ld_intf_width = STMLCDIF_24BIT; 251 mxsfb_pdata.ld_intf_width = STMLCDIF_24BIT;
252 mxsfb_pdata.sync = MXSFB_SYNC_DATA_ENABLE_HIGH_ACT |
253 MXSFB_SYNC_DOTCLK_FAILING_ACT;
262} 254}
263 255
264static inline void enable_clk_enet_out(void) 256static inline void enable_clk_enet_out(void)
@@ -278,6 +270,8 @@ static void __init imx28_evk_init(void)
278 mxsfb_pdata.mode_count = ARRAY_SIZE(mx28evk_video_modes); 270 mxsfb_pdata.mode_count = ARRAY_SIZE(mx28evk_video_modes);
279 mxsfb_pdata.default_bpp = 32; 271 mxsfb_pdata.default_bpp = 32;
280 mxsfb_pdata.ld_intf_width = STMLCDIF_24BIT; 272 mxsfb_pdata.ld_intf_width = STMLCDIF_24BIT;
273 mxsfb_pdata.sync = MXSFB_SYNC_DATA_ENABLE_HIGH_ACT |
274 MXSFB_SYNC_DOTCLK_FAILING_ACT;
281 275
282 mxs_saif_clkmux_select(MXS_DIGCTL_SAIF_CLKMUX_EXTMSTR0); 276 mxs_saif_clkmux_select(MXS_DIGCTL_SAIF_CLKMUX_EXTMSTR0);
283} 277}
@@ -297,6 +291,7 @@ static void __init m28evk_init(void)
297 mxsfb_pdata.mode_count = ARRAY_SIZE(m28evk_video_modes); 291 mxsfb_pdata.mode_count = ARRAY_SIZE(m28evk_video_modes);
298 mxsfb_pdata.default_bpp = 16; 292 mxsfb_pdata.default_bpp = 16;
299 mxsfb_pdata.ld_intf_width = STMLCDIF_18BIT; 293 mxsfb_pdata.ld_intf_width = STMLCDIF_18BIT;
294 mxsfb_pdata.sync = MXSFB_SYNC_DATA_ENABLE_HIGH_ACT;
300} 295}
301 296
302static void __init sc_sps1_init(void) 297static void __init sc_sps1_init(void)
@@ -322,6 +317,8 @@ static void __init apx4devkit_init(void)
322 mxsfb_pdata.mode_count = ARRAY_SIZE(apx4devkit_video_modes); 317 mxsfb_pdata.mode_count = ARRAY_SIZE(apx4devkit_video_modes);
323 mxsfb_pdata.default_bpp = 32; 318 mxsfb_pdata.default_bpp = 32;
324 mxsfb_pdata.ld_intf_width = STMLCDIF_24BIT; 319 mxsfb_pdata.ld_intf_width = STMLCDIF_24BIT;
320 mxsfb_pdata.sync = MXSFB_SYNC_DATA_ENABLE_HIGH_ACT |
321 MXSFB_SYNC_DOTCLK_FAILING_ACT;
325} 322}
326 323
327#define ENET0_MDC__GPIO_4_0 MXS_GPIO_NR(4, 0) 324#define ENET0_MDC__GPIO_4_0 MXS_GPIO_NR(4, 0)
@@ -407,6 +404,7 @@ static void __init cfa10049_init(void)
407 mxsfb_pdata.mode_count = ARRAY_SIZE(cfa10049_video_modes); 404 mxsfb_pdata.mode_count = ARRAY_SIZE(cfa10049_video_modes);
408 mxsfb_pdata.default_bpp = 32; 405 mxsfb_pdata.default_bpp = 32;
409 mxsfb_pdata.ld_intf_width = STMLCDIF_18BIT; 406 mxsfb_pdata.ld_intf_width = STMLCDIF_18BIT;
407 mxsfb_pdata.sync = MXSFB_SYNC_DATA_ENABLE_HIGH_ACT;
410} 408}
411 409
412static void __init cfa10037_init(void) 410static void __init cfa10037_init(void)
@@ -423,6 +421,8 @@ static void __init apf28_init(void)
423 mxsfb_pdata.mode_count = ARRAY_SIZE(apf28dev_video_modes); 421 mxsfb_pdata.mode_count = ARRAY_SIZE(apf28dev_video_modes);
424 mxsfb_pdata.default_bpp = 16; 422 mxsfb_pdata.default_bpp = 16;
425 mxsfb_pdata.ld_intf_width = STMLCDIF_16BIT; 423 mxsfb_pdata.ld_intf_width = STMLCDIF_16BIT;
424 mxsfb_pdata.sync = MXSFB_SYNC_DATA_ENABLE_HIGH_ACT |
425 MXSFB_SYNC_DOTCLK_FAILING_ACT;
426} 426}
427 427
428static void __init mxs_machine_init(void) 428static void __init mxs_machine_init(void)
diff --git a/arch/arm/mach-omap1/clock_data.c b/arch/arm/mach-omap1/clock_data.c
index cb7c6ae2e3fc..6c4f766365a2 100644
--- a/arch/arm/mach-omap1/clock_data.c
+++ b/arch/arm/mach-omap1/clock_data.c
@@ -543,15 +543,6 @@ static struct clk usb_dc_ck = {
543 /* Direct from ULPD, no parent */ 543 /* Direct from ULPD, no parent */
544 .rate = 48000000, 544 .rate = 48000000,
545 .enable_reg = OMAP1_IO_ADDRESS(SOFT_REQ_REG), 545 .enable_reg = OMAP1_IO_ADDRESS(SOFT_REQ_REG),
546 .enable_bit = USB_REQ_EN_SHIFT,
547};
548
549static struct clk usb_dc_ck7xx = {
550 .name = "usb_dc_ck",
551 .ops = &clkops_generic,
552 /* Direct from ULPD, no parent */
553 .rate = 48000000,
554 .enable_reg = OMAP1_IO_ADDRESS(SOFT_REQ_REG),
555 .enable_bit = SOFT_USB_OTG_DPLL_REQ_SHIFT, 546 .enable_bit = SOFT_USB_OTG_DPLL_REQ_SHIFT,
556}; 547};
557 548
@@ -727,8 +718,7 @@ static struct omap_clk omap_clks[] = {
727 CLK(NULL, "usb_clko", &usb_clko, CK_16XX | CK_1510 | CK_310), 718 CLK(NULL, "usb_clko", &usb_clko, CK_16XX | CK_1510 | CK_310),
728 CLK(NULL, "usb_hhc_ck", &usb_hhc_ck1510, CK_1510 | CK_310), 719 CLK(NULL, "usb_hhc_ck", &usb_hhc_ck1510, CK_1510 | CK_310),
729 CLK(NULL, "usb_hhc_ck", &usb_hhc_ck16xx, CK_16XX), 720 CLK(NULL, "usb_hhc_ck", &usb_hhc_ck16xx, CK_16XX),
730 CLK(NULL, "usb_dc_ck", &usb_dc_ck, CK_16XX), 721 CLK(NULL, "usb_dc_ck", &usb_dc_ck, CK_16XX | CK_7XX),
731 CLK(NULL, "usb_dc_ck", &usb_dc_ck7xx, CK_7XX),
732 CLK(NULL, "mclk", &mclk_1510, CK_1510 | CK_310), 722 CLK(NULL, "mclk", &mclk_1510, CK_1510 | CK_310),
733 CLK(NULL, "mclk", &mclk_16xx, CK_16XX), 723 CLK(NULL, "mclk", &mclk_16xx, CK_16XX),
734 CLK(NULL, "bclk", &bclk_1510, CK_1510 | CK_310), 724 CLK(NULL, "bclk", &bclk_1510, CK_1510 | CK_310),
diff --git a/arch/arm/mach-omap2/cclock44xx_data.c b/arch/arm/mach-omap2/cclock44xx_data.c
index 3d58f335f173..0c6834ae1fc4 100644
--- a/arch/arm/mach-omap2/cclock44xx_data.c
+++ b/arch/arm/mach-omap2/cclock44xx_data.c
@@ -52,6 +52,13 @@
52 */ 52 */
53#define OMAP4_DPLL_ABE_DEFFREQ 98304000 53#define OMAP4_DPLL_ABE_DEFFREQ 98304000
54 54
55/*
56 * OMAP4 USB DPLL default frequency. In OMAP4430 TRM version V, section
57 * "3.6.3.9.5 DPLL_USB Preferred Settings" shows that the preferred
58 * locked frequency for the USB DPLL is 960MHz.
59 */
60#define OMAP4_DPLL_USB_DEFFREQ 960000000
61
55/* Root clocks */ 62/* Root clocks */
56 63
57DEFINE_CLK_FIXED_RATE(extalt_clkin_ck, CLK_IS_ROOT, 59000000, 0x0); 64DEFINE_CLK_FIXED_RATE(extalt_clkin_ck, CLK_IS_ROOT, 59000000, 0x0);
@@ -1011,6 +1018,10 @@ DEFINE_CLK_OMAP_MUX(hsmmc2_fclk, "l3_init_clkdm", hsmmc1_fclk_sel,
1011 OMAP4430_CM_L3INIT_MMC2_CLKCTRL, OMAP4430_CLKSEL_MASK, 1018 OMAP4430_CM_L3INIT_MMC2_CLKCTRL, OMAP4430_CLKSEL_MASK,
1012 hsmmc1_fclk_parents, func_dmic_abe_gfclk_ops); 1019 hsmmc1_fclk_parents, func_dmic_abe_gfclk_ops);
1013 1020
1021DEFINE_CLK_GATE(ocp2scp_usb_phy_phy_48m, "func_48m_fclk", &func_48m_fclk, 0x0,
1022 OMAP4430_CM_L3INIT_USBPHYOCP2SCP_CLKCTRL,
1023 OMAP4430_OPTFCLKEN_PHY_48M_SHIFT, 0x0, NULL);
1024
1014DEFINE_CLK_GATE(sha2md5_fck, "l3_div_ck", &l3_div_ck, 0x0, 1025DEFINE_CLK_GATE(sha2md5_fck, "l3_div_ck", &l3_div_ck, 0x0,
1015 OMAP4430_CM_L4SEC_SHA2MD51_CLKCTRL, 1026 OMAP4430_CM_L4SEC_SHA2MD51_CLKCTRL,
1016 OMAP4430_MODULEMODE_SWCTRL_SHIFT, 0x0, NULL); 1027 OMAP4430_MODULEMODE_SWCTRL_SHIFT, 0x0, NULL);
@@ -1538,6 +1549,7 @@ static struct omap_clk omap44xx_clks[] = {
1538 CLK(NULL, "per_mcbsp4_gfclk", &per_mcbsp4_gfclk, CK_443X), 1549 CLK(NULL, "per_mcbsp4_gfclk", &per_mcbsp4_gfclk, CK_443X),
1539 CLK(NULL, "hsmmc1_fclk", &hsmmc1_fclk, CK_443X), 1550 CLK(NULL, "hsmmc1_fclk", &hsmmc1_fclk, CK_443X),
1540 CLK(NULL, "hsmmc2_fclk", &hsmmc2_fclk, CK_443X), 1551 CLK(NULL, "hsmmc2_fclk", &hsmmc2_fclk, CK_443X),
1552 CLK(NULL, "ocp2scp_usb_phy_phy_48m", &ocp2scp_usb_phy_phy_48m, CK_443X),
1541 CLK(NULL, "sha2md5_fck", &sha2md5_fck, CK_443X), 1553 CLK(NULL, "sha2md5_fck", &sha2md5_fck, CK_443X),
1542 CLK(NULL, "slimbus1_fclk_1", &slimbus1_fclk_1, CK_443X), 1554 CLK(NULL, "slimbus1_fclk_1", &slimbus1_fclk_1, CK_443X),
1543 CLK(NULL, "slimbus1_fclk_0", &slimbus1_fclk_0, CK_443X), 1555 CLK(NULL, "slimbus1_fclk_0", &slimbus1_fclk_0, CK_443X),
@@ -1705,5 +1717,13 @@ int __init omap4xxx_clk_init(void)
1705 if (rc) 1717 if (rc)
1706 pr_err("%s: failed to configure ABE DPLL!\n", __func__); 1718 pr_err("%s: failed to configure ABE DPLL!\n", __func__);
1707 1719
1720 /*
1721 * Lock USB DPLL on OMAP4 devices so that the L3INIT power
1722 * domain can transition to retention state when not in use.
1723 */
1724 rc = clk_set_rate(&dpll_usb_ck, OMAP4_DPLL_USB_DEFFREQ);
1725 if (rc)
1726 pr_err("%s: failed to configure USB DPLL!\n", __func__);
1727
1708 return 0; 1728 return 0;
1709} 1729}
diff --git a/arch/arm/mach-omap2/common.h b/arch/arm/mach-omap2/common.h
index 40f4a03d728f..d6ba13e1c540 100644
--- a/arch/arm/mach-omap2/common.h
+++ b/arch/arm/mach-omap2/common.h
@@ -293,5 +293,8 @@ extern void omap_reserve(void);
293struct omap_hwmod; 293struct omap_hwmod;
294extern int omap_dss_reset(struct omap_hwmod *); 294extern int omap_dss_reset(struct omap_hwmod *);
295 295
296/* SoC specific clock initializer */
297extern int (*omap_clk_init)(void);
298
296#endif /* __ASSEMBLER__ */ 299#endif /* __ASSEMBLER__ */
297#endif /* __ARCH_ARM_MACH_OMAP2PLUS_COMMON_H */ 300#endif /* __ARCH_ARM_MACH_OMAP2PLUS_COMMON_H */
diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c
index 2c3fdd65387b..5c445ca1e271 100644
--- a/arch/arm/mach-omap2/io.c
+++ b/arch/arm/mach-omap2/io.c
@@ -55,6 +55,12 @@
55#include "prm44xx.h" 55#include "prm44xx.h"
56 56
57/* 57/*
58 * omap_clk_init: points to a function that does the SoC-specific
59 * clock initializations
60 */
61int (*omap_clk_init)(void);
62
63/*
58 * The machine specific code may provide the extra mapping besides the 64 * The machine specific code may provide the extra mapping besides the
59 * default mapping provided here. 65 * default mapping provided here.
60 */ 66 */
@@ -397,7 +403,7 @@ void __init omap2420_init_early(void)
397 omap242x_clockdomains_init(); 403 omap242x_clockdomains_init();
398 omap2420_hwmod_init(); 404 omap2420_hwmod_init();
399 omap_hwmod_init_postsetup(); 405 omap_hwmod_init_postsetup();
400 omap2420_clk_init(); 406 omap_clk_init = omap2420_clk_init;
401} 407}
402 408
403void __init omap2420_init_late(void) 409void __init omap2420_init_late(void)
@@ -427,7 +433,7 @@ void __init omap2430_init_early(void)
427 omap243x_clockdomains_init(); 433 omap243x_clockdomains_init();
428 omap2430_hwmod_init(); 434 omap2430_hwmod_init();
429 omap_hwmod_init_postsetup(); 435 omap_hwmod_init_postsetup();
430 omap2430_clk_init(); 436 omap_clk_init = omap2430_clk_init;
431} 437}
432 438
433void __init omap2430_init_late(void) 439void __init omap2430_init_late(void)
@@ -462,7 +468,7 @@ void __init omap3_init_early(void)
462 omap3xxx_clockdomains_init(); 468 omap3xxx_clockdomains_init();
463 omap3xxx_hwmod_init(); 469 omap3xxx_hwmod_init();
464 omap_hwmod_init_postsetup(); 470 omap_hwmod_init_postsetup();
465 omap3xxx_clk_init(); 471 omap_clk_init = omap3xxx_clk_init;
466} 472}
467 473
468void __init omap3430_init_early(void) 474void __init omap3430_init_early(void)
@@ -500,7 +506,7 @@ void __init ti81xx_init_early(void)
500 omap3xxx_clockdomains_init(); 506 omap3xxx_clockdomains_init();
501 omap3xxx_hwmod_init(); 507 omap3xxx_hwmod_init();
502 omap_hwmod_init_postsetup(); 508 omap_hwmod_init_postsetup();
503 omap3xxx_clk_init(); 509 omap_clk_init = omap3xxx_clk_init;
504} 510}
505 511
506void __init omap3_init_late(void) 512void __init omap3_init_late(void)
@@ -568,7 +574,7 @@ void __init am33xx_init_early(void)
568 am33xx_clockdomains_init(); 574 am33xx_clockdomains_init();
569 am33xx_hwmod_init(); 575 am33xx_hwmod_init();
570 omap_hwmod_init_postsetup(); 576 omap_hwmod_init_postsetup();
571 am33xx_clk_init(); 577 omap_clk_init = am33xx_clk_init;
572} 578}
573#endif 579#endif
574 580
@@ -593,7 +599,7 @@ void __init omap4430_init_early(void)
593 omap44xx_clockdomains_init(); 599 omap44xx_clockdomains_init();
594 omap44xx_hwmod_init(); 600 omap44xx_hwmod_init();
595 omap_hwmod_init_postsetup(); 601 omap_hwmod_init_postsetup();
596 omap4xxx_clk_init(); 602 omap_clk_init = omap4xxx_clk_init;
597} 603}
598 604
599void __init omap4430_init_late(void) 605void __init omap4430_init_late(void)
diff --git a/arch/arm/mach-omap2/omap-hotplug.c b/arch/arm/mach-omap2/omap-hotplug.c
index e712d1725a8b..ceb30a59bf28 100644
--- a/arch/arm/mach-omap2/omap-hotplug.c
+++ b/arch/arm/mach-omap2/omap-hotplug.c
@@ -35,9 +35,6 @@ void __ref omap4_cpu_die(unsigned int cpu)
35 unsigned int boot_cpu = 0; 35 unsigned int boot_cpu = 0;
36 void __iomem *base = omap_get_wakeupgen_base(); 36 void __iomem *base = omap_get_wakeupgen_base();
37 37
38 flush_cache_all();
39 dsb();
40
41 /* 38 /*
42 * we're ready for shutdown now, so do it 39 * we're ready for shutdown now, so do it
43 */ 40 */
diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
index c2c798c08c2b..a202a4785104 100644
--- a/arch/arm/mach-omap2/omap_hwmod.c
+++ b/arch/arm/mach-omap2/omap_hwmod.c
@@ -1368,7 +1368,9 @@ static void _enable_sysc(struct omap_hwmod *oh)
1368 } 1368 }
1369 1369
1370 if (sf & SYSC_HAS_MIDLEMODE) { 1370 if (sf & SYSC_HAS_MIDLEMODE) {
1371 if (oh->flags & HWMOD_SWSUP_MSTANDBY) { 1371 if (oh->flags & HWMOD_FORCE_MSTANDBY) {
1372 idlemode = HWMOD_IDLEMODE_FORCE;
1373 } else if (oh->flags & HWMOD_SWSUP_MSTANDBY) {
1372 idlemode = HWMOD_IDLEMODE_NO; 1374 idlemode = HWMOD_IDLEMODE_NO;
1373 } else { 1375 } else {
1374 if (sf & SYSC_HAS_ENAWAKEUP) 1376 if (sf & SYSC_HAS_ENAWAKEUP)
@@ -1440,7 +1442,8 @@ static void _idle_sysc(struct omap_hwmod *oh)
1440 } 1442 }
1441 1443
1442 if (sf & SYSC_HAS_MIDLEMODE) { 1444 if (sf & SYSC_HAS_MIDLEMODE) {
1443 if (oh->flags & HWMOD_SWSUP_MSTANDBY) { 1445 if ((oh->flags & HWMOD_SWSUP_MSTANDBY) ||
1446 (oh->flags & HWMOD_FORCE_MSTANDBY)) {
1444 idlemode = HWMOD_IDLEMODE_FORCE; 1447 idlemode = HWMOD_IDLEMODE_FORCE;
1445 } else { 1448 } else {
1446 if (sf & SYSC_HAS_ENAWAKEUP) 1449 if (sf & SYSC_HAS_ENAWAKEUP)
diff --git a/arch/arm/mach-omap2/omap_hwmod.h b/arch/arm/mach-omap2/omap_hwmod.h
index d43d9b608eda..d5dc935f6060 100644
--- a/arch/arm/mach-omap2/omap_hwmod.h
+++ b/arch/arm/mach-omap2/omap_hwmod.h
@@ -427,8 +427,8 @@ struct omap_hwmod_omap4_prcm {
427 * 427 *
428 * HWMOD_SWSUP_SIDLE: omap_hwmod code should manually bring module in and out 428 * HWMOD_SWSUP_SIDLE: omap_hwmod code should manually bring module in and out
429 * of idle, rather than relying on module smart-idle 429 * of idle, rather than relying on module smart-idle
430 * HWMOD_SWSUP_MSTDBY: omap_hwmod code should manually bring module in and out 430 * HWMOD_SWSUP_MSTANDBY: omap_hwmod code should manually bring module in and
431 * of standby, rather than relying on module smart-standby 431 * out of standby, rather than relying on module smart-standby
432 * HWMOD_INIT_NO_RESET: don't reset this module at boot - important for 432 * HWMOD_INIT_NO_RESET: don't reset this module at boot - important for
433 * SDRAM controller, etc. XXX probably belongs outside the main hwmod file 433 * SDRAM controller, etc. XXX probably belongs outside the main hwmod file
434 * XXX Should be HWMOD_SETUP_NO_RESET 434 * XXX Should be HWMOD_SETUP_NO_RESET
@@ -459,6 +459,10 @@ struct omap_hwmod_omap4_prcm {
459 * correctly, or this is being abused to deal with some PM latency 459 * correctly, or this is being abused to deal with some PM latency
460 * issues -- but we're currently suffering from a shortage of 460 * issues -- but we're currently suffering from a shortage of
461 * folks who are able to track these issues down properly. 461 * folks who are able to track these issues down properly.
462 * HWMOD_FORCE_MSTANDBY: Always keep MIDLEMODE bits cleared so that device
463 * is kept in force-standby mode. Failing to do so causes PM problems
464 * with musb on OMAP3630 at least. Note that musb has a dedicated register
465 * to control MSTANDBY signal when MIDLEMODE is set to force-standby.
462 */ 466 */
463#define HWMOD_SWSUP_SIDLE (1 << 0) 467#define HWMOD_SWSUP_SIDLE (1 << 0)
464#define HWMOD_SWSUP_MSTANDBY (1 << 1) 468#define HWMOD_SWSUP_MSTANDBY (1 << 1)
@@ -471,6 +475,7 @@ struct omap_hwmod_omap4_prcm {
471#define HWMOD_16BIT_REG (1 << 8) 475#define HWMOD_16BIT_REG (1 << 8)
472#define HWMOD_EXT_OPT_MAIN_CLK (1 << 9) 476#define HWMOD_EXT_OPT_MAIN_CLK (1 << 9)
473#define HWMOD_BLOCK_WFI (1 << 10) 477#define HWMOD_BLOCK_WFI (1 << 10)
478#define HWMOD_FORCE_MSTANDBY (1 << 11)
474 479
475/* 480/*
476 * omap_hwmod._int_flags definitions 481 * omap_hwmod._int_flags definitions
diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
index ac7e03ec952f..5112d04e7b79 100644
--- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
@@ -1707,9 +1707,14 @@ static struct omap_hwmod omap3xxx_usbhsotg_hwmod = {
1707 * Erratum ID: i479 idle_req / idle_ack mechanism potentially 1707 * Erratum ID: i479 idle_req / idle_ack mechanism potentially
1708 * broken when autoidle is enabled 1708 * broken when autoidle is enabled
1709 * workaround is to disable the autoidle bit at module level. 1709 * workaround is to disable the autoidle bit at module level.
1710 *
1711 * Enabling the device in any other MIDLEMODE setting but force-idle
1712 * causes core_pwrdm not enter idle states at least on OMAP3630.
1713 * Note that musb has OTG_FORCESTDBY register that controls MSTANDBY
1714 * signal when MIDLEMODE is set to force-idle.
1710 */ 1715 */
1711 .flags = HWMOD_NO_OCP_AUTOIDLE | HWMOD_SWSUP_SIDLE 1716 .flags = HWMOD_NO_OCP_AUTOIDLE | HWMOD_SWSUP_SIDLE
1712 | HWMOD_SWSUP_MSTANDBY, 1717 | HWMOD_FORCE_MSTANDBY,
1713}; 1718};
1714 1719
1715/* usb_otg_hs */ 1720/* usb_otg_hs */
diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
index 0e47d2e1687c..9e0576569e07 100644
--- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
@@ -2714,6 +2714,10 @@ static struct omap_ocp2scp_dev ocp2scp_dev_attr[] = {
2714 { } 2714 { }
2715}; 2715};
2716 2716
2717static struct omap_hwmod_opt_clk ocp2scp_usb_phy_opt_clks[] = {
2718 { .role = "48mhz", .clk = "ocp2scp_usb_phy_phy_48m" },
2719};
2720
2717/* ocp2scp_usb_phy */ 2721/* ocp2scp_usb_phy */
2718static struct omap_hwmod omap44xx_ocp2scp_usb_phy_hwmod = { 2722static struct omap_hwmod omap44xx_ocp2scp_usb_phy_hwmod = {
2719 .name = "ocp2scp_usb_phy", 2723 .name = "ocp2scp_usb_phy",
@@ -2728,6 +2732,8 @@ static struct omap_hwmod omap44xx_ocp2scp_usb_phy_hwmod = {
2728 }, 2732 },
2729 }, 2733 },
2730 .dev_attr = ocp2scp_dev_attr, 2734 .dev_attr = ocp2scp_dev_attr,
2735 .opt_clks = ocp2scp_usb_phy_opt_clks,
2736 .opt_clks_cnt = ARRAY_SIZE(ocp2scp_usb_phy_opt_clks),
2731}; 2737};
2732 2738
2733/* 2739/*
diff --git a/arch/arm/mach-omap2/timer.c b/arch/arm/mach-omap2/timer.c
index 2bdd4cf17a8f..f62b509ed08d 100644
--- a/arch/arm/mach-omap2/timer.c
+++ b/arch/arm/mach-omap2/timer.c
@@ -547,6 +547,8 @@ static inline void __init realtime_counter_init(void)
547 clksrc_nr, clksrc_src) \ 547 clksrc_nr, clksrc_src) \
548void __init omap##name##_gptimer_timer_init(void) \ 548void __init omap##name##_gptimer_timer_init(void) \
549{ \ 549{ \
550 if (omap_clk_init) \
551 omap_clk_init(); \
550 omap_dmtimer_init(); \ 552 omap_dmtimer_init(); \
551 omap2_gp_clockevent_init((clkev_nr), clkev_src, clkev_prop); \ 553 omap2_gp_clockevent_init((clkev_nr), clkev_src, clkev_prop); \
552 omap2_gptimer_clocksource_init((clksrc_nr), clksrc_src); \ 554 omap2_gptimer_clocksource_init((clksrc_nr), clksrc_src); \
@@ -556,6 +558,8 @@ void __init omap##name##_gptimer_timer_init(void) \
556 clksrc_nr, clksrc_src) \ 558 clksrc_nr, clksrc_src) \
557void __init omap##name##_sync32k_timer_init(void) \ 559void __init omap##name##_sync32k_timer_init(void) \
558{ \ 560{ \
561 if (omap_clk_init) \
562 omap_clk_init(); \
559 omap_dmtimer_init(); \ 563 omap_dmtimer_init(); \
560 omap2_gp_clockevent_init((clkev_nr), clkev_src, clkev_prop); \ 564 omap2_gp_clockevent_init((clkev_nr), clkev_src, clkev_prop); \
561 /* Enable the use of clocksource="gp_timer" kernel parameter */ \ 565 /* Enable the use of clocksource="gp_timer" kernel parameter */ \
diff --git a/arch/arm/mach-prima2/hotplug.c b/arch/arm/mach-prima2/hotplug.c
index f4b17cbababd..0ab2f8bae28e 100644
--- a/arch/arm/mach-prima2/hotplug.c
+++ b/arch/arm/mach-prima2/hotplug.c
@@ -10,13 +10,10 @@
10#include <linux/errno.h> 10#include <linux/errno.h>
11#include <linux/smp.h> 11#include <linux/smp.h>
12 12
13#include <asm/cacheflush.h>
14#include <asm/smp_plat.h> 13#include <asm/smp_plat.h>
15 14
16static inline void platform_do_lowpower(unsigned int cpu) 15static inline void platform_do_lowpower(unsigned int cpu)
17{ 16{
18 flush_cache_all();
19
20 /* we put the platform to just WFI */ 17 /* we put the platform to just WFI */
21 for (;;) { 18 for (;;) {
22 __asm__ __volatile__("dsb\n\t" "wfi\n\t" 19 __asm__ __volatile__("dsb\n\t" "wfi\n\t"
diff --git a/arch/arm/mach-realview/hotplug.c b/arch/arm/mach-realview/hotplug.c
index 53818e5cd3ad..ac22dd41b135 100644
--- a/arch/arm/mach-realview/hotplug.c
+++ b/arch/arm/mach-realview/hotplug.c
@@ -12,7 +12,6 @@
12#include <linux/errno.h> 12#include <linux/errno.h>
13#include <linux/smp.h> 13#include <linux/smp.h>
14 14
15#include <asm/cacheflush.h>
16#include <asm/cp15.h> 15#include <asm/cp15.h>
17#include <asm/smp_plat.h> 16#include <asm/smp_plat.h>
18 17
@@ -20,7 +19,6 @@ static inline void cpu_enter_lowpower(void)
20{ 19{
21 unsigned int v; 20 unsigned int v;
22 21
23 flush_cache_all();
24 asm volatile( 22 asm volatile(
25 " mcr p15, 0, %1, c7, c5, 0\n" 23 " mcr p15, 0, %1, c7, c5, 0\n"
26 " mcr p15, 0, %1, c7, c10, 4\n" 24 " mcr p15, 0, %1, c7, c10, 4\n"
diff --git a/arch/arm/mach-s3c24xx/include/mach/irqs.h b/arch/arm/mach-s3c24xx/include/mach/irqs.h
index b7a9f4d469e8..1e73f5fa8659 100644
--- a/arch/arm/mach-s3c24xx/include/mach/irqs.h
+++ b/arch/arm/mach-s3c24xx/include/mach/irqs.h
@@ -188,10 +188,8 @@
188 188
189#if defined(CONFIG_CPU_S3C2416) 189#if defined(CONFIG_CPU_S3C2416)
190#define NR_IRQS (IRQ_S3C2416_I2S1 + 1) 190#define NR_IRQS (IRQ_S3C2416_I2S1 + 1)
191#elif defined(CONFIG_CPU_S3C2443)
192#define NR_IRQS (IRQ_S3C2443_AC97+1)
193#else 191#else
194#define NR_IRQS (IRQ_S3C2440_AC97+1) 192#define NR_IRQS (IRQ_S3C2443_AC97 + 1)
195#endif 193#endif
196 194
197/* compatibility define. */ 195/* compatibility define. */
diff --git a/arch/arm/mach-s3c24xx/irq.c b/arch/arm/mach-s3c24xx/irq.c
index cb9f5e011e73..d8ba9bee4c7e 100644
--- a/arch/arm/mach-s3c24xx/irq.c
+++ b/arch/arm/mach-s3c24xx/irq.c
@@ -500,7 +500,7 @@ struct s3c_irq_intc *s3c24xx_init_intc(struct device_node *np,
500 base = (void *)0xfd000000; 500 base = (void *)0xfd000000;
501 501
502 intc->reg_mask = base + 0xa4; 502 intc->reg_mask = base + 0xa4;
503 intc->reg_pending = base + 0x08; 503 intc->reg_pending = base + 0xa8;
504 irq_num = 20; 504 irq_num = 20;
505 irq_start = S3C2410_IRQ(32); 505 irq_start = S3C2410_IRQ(32);
506 irq_offset = 4; 506 irq_offset = 4;
diff --git a/arch/arm/mach-s5pv210/clock.c b/arch/arm/mach-s5pv210/clock.c
index fcdf52dbcc49..f051f53e35b7 100644
--- a/arch/arm/mach-s5pv210/clock.c
+++ b/arch/arm/mach-s5pv210/clock.c
@@ -214,11 +214,6 @@ static struct clk clk_pcmcdclk2 = {
214 .name = "pcmcdclk", 214 .name = "pcmcdclk",
215}; 215};
216 216
217static struct clk dummy_apb_pclk = {
218 .name = "apb_pclk",
219 .id = -1,
220};
221
222static struct clk *clkset_vpllsrc_list[] = { 217static struct clk *clkset_vpllsrc_list[] = {
223 [0] = &clk_fin_vpll, 218 [0] = &clk_fin_vpll,
224 [1] = &clk_sclk_hdmi27m, 219 [1] = &clk_sclk_hdmi27m,
@@ -305,18 +300,6 @@ static struct clk_ops clk_fout_apll_ops = {
305 300
306static struct clk init_clocks_off[] = { 301static struct clk init_clocks_off[] = {
307 { 302 {
308 .name = "dma",
309 .devname = "dma-pl330.0",
310 .parent = &clk_hclk_psys.clk,
311 .enable = s5pv210_clk_ip0_ctrl,
312 .ctrlbit = (1 << 3),
313 }, {
314 .name = "dma",
315 .devname = "dma-pl330.1",
316 .parent = &clk_hclk_psys.clk,
317 .enable = s5pv210_clk_ip0_ctrl,
318 .ctrlbit = (1 << 4),
319 }, {
320 .name = "rot", 303 .name = "rot",
321 .parent = &clk_hclk_dsys.clk, 304 .parent = &clk_hclk_dsys.clk,
322 .enable = s5pv210_clk_ip0_ctrl, 305 .enable = s5pv210_clk_ip0_ctrl,
@@ -573,6 +556,20 @@ static struct clk clk_hsmmc3 = {
573 .ctrlbit = (1<<19), 556 .ctrlbit = (1<<19),
574}; 557};
575 558
559static struct clk clk_pdma0 = {
560 .name = "pdma0",
561 .parent = &clk_hclk_psys.clk,
562 .enable = s5pv210_clk_ip0_ctrl,
563 .ctrlbit = (1 << 3),
564};
565
566static struct clk clk_pdma1 = {
567 .name = "pdma1",
568 .parent = &clk_hclk_psys.clk,
569 .enable = s5pv210_clk_ip0_ctrl,
570 .ctrlbit = (1 << 4),
571};
572
576static struct clk *clkset_uart_list[] = { 573static struct clk *clkset_uart_list[] = {
577 [6] = &clk_mout_mpll.clk, 574 [6] = &clk_mout_mpll.clk,
578 [7] = &clk_mout_epll.clk, 575 [7] = &clk_mout_epll.clk,
@@ -1075,6 +1072,8 @@ static struct clk *clk_cdev[] = {
1075 &clk_hsmmc1, 1072 &clk_hsmmc1,
1076 &clk_hsmmc2, 1073 &clk_hsmmc2,
1077 &clk_hsmmc3, 1074 &clk_hsmmc3,
1075 &clk_pdma0,
1076 &clk_pdma1,
1078}; 1077};
1079 1078
1080/* Clock initialisation code */ 1079/* Clock initialisation code */
@@ -1333,6 +1332,8 @@ static struct clk_lookup s5pv210_clk_lookup[] = {
1333 CLKDEV_INIT(NULL, "spi_busclk0", &clk_p), 1332 CLKDEV_INIT(NULL, "spi_busclk0", &clk_p),
1334 CLKDEV_INIT("s5pv210-spi.0", "spi_busclk1", &clk_sclk_spi0.clk), 1333 CLKDEV_INIT("s5pv210-spi.0", "spi_busclk1", &clk_sclk_spi0.clk),
1335 CLKDEV_INIT("s5pv210-spi.1", "spi_busclk1", &clk_sclk_spi1.clk), 1334 CLKDEV_INIT("s5pv210-spi.1", "spi_busclk1", &clk_sclk_spi1.clk),
1335 CLKDEV_INIT("dma-pl330.0", "apb_pclk", &clk_pdma0),
1336 CLKDEV_INIT("dma-pl330.1", "apb_pclk", &clk_pdma1),
1336}; 1337};
1337 1338
1338void __init s5pv210_register_clocks(void) 1339void __init s5pv210_register_clocks(void)
@@ -1361,6 +1362,5 @@ void __init s5pv210_register_clocks(void)
1361 for (ptr = 0; ptr < ARRAY_SIZE(clk_cdev); ptr++) 1362 for (ptr = 0; ptr < ARRAY_SIZE(clk_cdev); ptr++)
1362 s3c_disable_clocks(clk_cdev[ptr], 1); 1363 s3c_disable_clocks(clk_cdev[ptr], 1);
1363 1364
1364 s3c24xx_register_clock(&dummy_apb_pclk);
1365 s3c_pwmclk_init(); 1365 s3c_pwmclk_init();
1366} 1366}
diff --git a/arch/arm/mach-s5pv210/mach-goni.c b/arch/arm/mach-s5pv210/mach-goni.c
index 3a38f7b34b94..e373de44a8b6 100644
--- a/arch/arm/mach-s5pv210/mach-goni.c
+++ b/arch/arm/mach-s5pv210/mach-goni.c
@@ -845,7 +845,7 @@ static struct fimc_source_info goni_camera_sensors[] = {
845 .mux_id = 0, 845 .mux_id = 0,
846 .flags = V4L2_MBUS_PCLK_SAMPLE_FALLING | 846 .flags = V4L2_MBUS_PCLK_SAMPLE_FALLING |
847 V4L2_MBUS_VSYNC_ACTIVE_LOW, 847 V4L2_MBUS_VSYNC_ACTIVE_LOW,
848 .bus_type = FIMC_BUS_TYPE_ITU_601, 848 .fimc_bus_type = FIMC_BUS_TYPE_ITU_601,
849 .board_info = &noon010pc30_board_info, 849 .board_info = &noon010pc30_board_info,
850 .i2c_bus_num = 0, 850 .i2c_bus_num = 0,
851 .clk_frequency = 16000000UL, 851 .clk_frequency = 16000000UL,
diff --git a/arch/arm/mach-shmobile/board-marzen.c b/arch/arm/mach-shmobile/board-marzen.c
index cdcb799e802f..fec49ebc359a 100644
--- a/arch/arm/mach-shmobile/board-marzen.c
+++ b/arch/arm/mach-shmobile/board-marzen.c
@@ -32,6 +32,7 @@
32#include <linux/smsc911x.h> 32#include <linux/smsc911x.h>
33#include <linux/spi/spi.h> 33#include <linux/spi/spi.h>
34#include <linux/spi/sh_hspi.h> 34#include <linux/spi/sh_hspi.h>
35#include <linux/mmc/host.h>
35#include <linux/mmc/sh_mobile_sdhi.h> 36#include <linux/mmc/sh_mobile_sdhi.h>
36#include <linux/mfd/tmio.h> 37#include <linux/mfd/tmio.h>
37#include <linux/usb/otg.h> 38#include <linux/usb/otg.h>
diff --git a/arch/arm/mach-shmobile/smp-sh73a0.c b/arch/arm/mach-shmobile/smp-sh73a0.c
index acb46a94ccdf..2f1ef1bc805d 100644
--- a/arch/arm/mach-shmobile/smp-sh73a0.c
+++ b/arch/arm/mach-shmobile/smp-sh73a0.c
@@ -119,14 +119,6 @@ static int sh73a0_cpu_kill(unsigned int cpu)
119 119
120static void sh73a0_cpu_die(unsigned int cpu) 120static void sh73a0_cpu_die(unsigned int cpu)
121{ 121{
122 /*
123 * The ARM MPcore does not issue a cache coherency request for the L1
124 * cache when powering off single CPUs. We must take care of this and
125 * further caches.
126 */
127 dsb();
128 flush_cache_all();
129
130 /* Set power off mode. This takes the CPU out of the MP cluster */ 122 /* Set power off mode. This takes the CPU out of the MP cluster */
131 scu_power_mode(scu_base_addr(), SCU_PM_POWEROFF); 123 scu_power_mode(scu_base_addr(), SCU_PM_POWEROFF);
132 124
diff --git a/arch/arm/mach-spear13xx/hotplug.c b/arch/arm/mach-spear13xx/hotplug.c
index a7d2dd11a4f2..d97749c642ce 100644
--- a/arch/arm/mach-spear13xx/hotplug.c
+++ b/arch/arm/mach-spear13xx/hotplug.c
@@ -13,7 +13,6 @@
13#include <linux/kernel.h> 13#include <linux/kernel.h>
14#include <linux/errno.h> 14#include <linux/errno.h>
15#include <linux/smp.h> 15#include <linux/smp.h>
16#include <asm/cacheflush.h>
17#include <asm/cp15.h> 16#include <asm/cp15.h>
18#include <asm/smp_plat.h> 17#include <asm/smp_plat.h>
19 18
@@ -21,7 +20,6 @@ static inline void cpu_enter_lowpower(void)
21{ 20{
22 unsigned int v; 21 unsigned int v;
23 22
24 flush_cache_all();
25 asm volatile( 23 asm volatile(
26 " mcr p15, 0, %1, c7, c5, 0\n" 24 " mcr p15, 0, %1, c7, c5, 0\n"
27 " dsb\n" 25 " dsb\n"
diff --git a/arch/arm/mach-tegra/common.h b/arch/arm/mach-tegra/common.h
index 32f8eb3fe344..5900cc44f780 100644
--- a/arch/arm/mach-tegra/common.h
+++ b/arch/arm/mach-tegra/common.h
@@ -2,4 +2,3 @@ extern struct smp_operations tegra_smp_ops;
2 2
3extern int tegra_cpu_kill(unsigned int cpu); 3extern int tegra_cpu_kill(unsigned int cpu);
4extern void tegra_cpu_die(unsigned int cpu); 4extern void tegra_cpu_die(unsigned int cpu);
5extern int tegra_cpu_disable(unsigned int cpu);
diff --git a/arch/arm/mach-tegra/hotplug.c b/arch/arm/mach-tegra/hotplug.c
index a599f6e36dea..e8323bc95770 100644
--- a/arch/arm/mach-tegra/hotplug.c
+++ b/arch/arm/mach-tegra/hotplug.c
@@ -12,7 +12,6 @@
12#include <linux/smp.h> 12#include <linux/smp.h>
13#include <linux/clk/tegra.h> 13#include <linux/clk/tegra.h>
14 14
15#include <asm/cacheflush.h>
16#include <asm/smp_plat.h> 15#include <asm/smp_plat.h>
17 16
18#include "sleep.h" 17#include "sleep.h"
@@ -47,15 +46,6 @@ void __ref tegra_cpu_die(unsigned int cpu)
47 BUG(); 46 BUG();
48} 47}
49 48
50int tegra_cpu_disable(unsigned int cpu)
51{
52 /*
53 * we don't allow CPU 0 to be shutdown (it is still too special
54 * e.g. clock tick interrupts)
55 */
56 return cpu == 0 ? -EPERM : 0;
57}
58
59#ifdef CONFIG_ARCH_TEGRA_2x_SOC 49#ifdef CONFIG_ARCH_TEGRA_2x_SOC
60extern void tegra20_hotplug_shutdown(void); 50extern void tegra20_hotplug_shutdown(void);
61void __init tegra20_hotplug_init(void) 51void __init tegra20_hotplug_init(void)
diff --git a/arch/arm/mach-tegra/platsmp.c b/arch/arm/mach-tegra/platsmp.c
index 2c6b3d55213b..ec33ec86aad9 100644
--- a/arch/arm/mach-tegra/platsmp.c
+++ b/arch/arm/mach-tegra/platsmp.c
@@ -192,6 +192,5 @@ struct smp_operations tegra_smp_ops __initdata = {
192#ifdef CONFIG_HOTPLUG_CPU 192#ifdef CONFIG_HOTPLUG_CPU
193 .cpu_kill = tegra_cpu_kill, 193 .cpu_kill = tegra_cpu_kill,
194 .cpu_die = tegra_cpu_die, 194 .cpu_die = tegra_cpu_die,
195 .cpu_disable = tegra_cpu_disable,
196#endif 195#endif
197}; 196};
diff --git a/arch/arm/mach-ux500/board-mop500-sdi.c b/arch/arm/mach-ux500/board-mop500-sdi.c
index 051b62c27102..7f2cb6c5e2c1 100644
--- a/arch/arm/mach-ux500/board-mop500-sdi.c
+++ b/arch/arm/mach-ux500/board-mop500-sdi.c
@@ -81,7 +81,6 @@ static struct stedma40_chan_cfg mop500_sdi0_dma_cfg_tx = {
81#endif 81#endif
82 82
83struct mmci_platform_data mop500_sdi0_data = { 83struct mmci_platform_data mop500_sdi0_data = {
84 .ios_handler = mop500_sdi0_ios_handler,
85 .ocr_mask = MMC_VDD_29_30, 84 .ocr_mask = MMC_VDD_29_30,
86 .f_max = 50000000, 85 .f_max = 50000000,
87 .capabilities = MMC_CAP_4_BIT_DATA | 86 .capabilities = MMC_CAP_4_BIT_DATA |
diff --git a/arch/arm/mach-ux500/board-mop500.c b/arch/arm/mach-ux500/board-mop500.c
index b03457881c4b..87d2d7b38ce9 100644
--- a/arch/arm/mach-ux500/board-mop500.c
+++ b/arch/arm/mach-ux500/board-mop500.c
@@ -12,6 +12,7 @@
12#include <linux/init.h> 12#include <linux/init.h>
13#include <linux/interrupt.h> 13#include <linux/interrupt.h>
14#include <linux/platform_device.h> 14#include <linux/platform_device.h>
15#include <linux/clk.h>
15#include <linux/io.h> 16#include <linux/io.h>
16#include <linux/i2c.h> 17#include <linux/i2c.h>
17#include <linux/platform_data/i2c-nomadik.h> 18#include <linux/platform_data/i2c-nomadik.h>
@@ -439,6 +440,15 @@ static void mop500_prox_deactivate(struct device *dev)
439 regulator_put(prox_regulator); 440 regulator_put(prox_regulator);
440} 441}
441 442
443void mop500_snowball_ethernet_clock_enable(void)
444{
445 struct clk *clk;
446
447 clk = clk_get_sys("fsmc", NULL);
448 if (!IS_ERR(clk))
449 clk_prepare_enable(clk);
450}
451
442static struct cryp_platform_data u8500_cryp1_platform_data = { 452static struct cryp_platform_data u8500_cryp1_platform_data = {
443 .mem_to_engine = { 453 .mem_to_engine = {
444 .dir = STEDMA40_MEM_TO_PERIPH, 454 .dir = STEDMA40_MEM_TO_PERIPH,
@@ -683,6 +693,8 @@ static void __init snowball_init_machine(void)
683 mop500_audio_init(parent); 693 mop500_audio_init(parent);
684 mop500_uart_init(parent); 694 mop500_uart_init(parent);
685 695
696 mop500_snowball_ethernet_clock_enable();
697
686 /* This board has full regulator constraints */ 698 /* This board has full regulator constraints */
687 regulator_has_full_constraints(); 699 regulator_has_full_constraints();
688} 700}
diff --git a/arch/arm/mach-ux500/board-mop500.h b/arch/arm/mach-ux500/board-mop500.h
index eaa605f5d90d..d38951be70df 100644
--- a/arch/arm/mach-ux500/board-mop500.h
+++ b/arch/arm/mach-ux500/board-mop500.h
@@ -104,6 +104,7 @@ void __init mop500_pinmaps_init(void);
104void __init snowball_pinmaps_init(void); 104void __init snowball_pinmaps_init(void);
105void __init hrefv60_pinmaps_init(void); 105void __init hrefv60_pinmaps_init(void);
106void mop500_audio_init(struct device *parent); 106void mop500_audio_init(struct device *parent);
107void mop500_snowball_ethernet_clock_enable(void);
107 108
108int __init mop500_uib_init(void); 109int __init mop500_uib_init(void);
109void mop500_uib_i2c_add(int busnum, struct i2c_board_info *info, 110void mop500_uib_i2c_add(int busnum, struct i2c_board_info *info,
diff --git a/arch/arm/mach-ux500/cpu-db8500.c b/arch/arm/mach-ux500/cpu-db8500.c
index 19235cf7bbe3..f1a581844372 100644
--- a/arch/arm/mach-ux500/cpu-db8500.c
+++ b/arch/arm/mach-ux500/cpu-db8500.c
@@ -312,9 +312,10 @@ static void __init u8500_init_machine(void)
312 /* Pinmaps must be in place before devices register */ 312 /* Pinmaps must be in place before devices register */
313 if (of_machine_is_compatible("st-ericsson,mop500")) 313 if (of_machine_is_compatible("st-ericsson,mop500"))
314 mop500_pinmaps_init(); 314 mop500_pinmaps_init();
315 else if (of_machine_is_compatible("calaosystems,snowball-a9500")) 315 else if (of_machine_is_compatible("calaosystems,snowball-a9500")) {
316 snowball_pinmaps_init(); 316 snowball_pinmaps_init();
317 else if (of_machine_is_compatible("st-ericsson,hrefv60+")) 317 mop500_snowball_ethernet_clock_enable();
318 } else if (of_machine_is_compatible("st-ericsson,hrefv60+"))
318 hrefv60_pinmaps_init(); 319 hrefv60_pinmaps_init();
319 else if (of_machine_is_compatible("st-ericsson,ccu9540")) {} 320 else if (of_machine_is_compatible("st-ericsson,ccu9540")) {}
320 /* TODO: Add pinmaps for ccu9540 board. */ 321 /* TODO: Add pinmaps for ccu9540 board. */
diff --git a/arch/arm/mach-ux500/hotplug.c b/arch/arm/mach-ux500/hotplug.c
index 2f6af259015d..1c55a55dd89e 100644
--- a/arch/arm/mach-ux500/hotplug.c
+++ b/arch/arm/mach-ux500/hotplug.c
@@ -12,7 +12,6 @@
12#include <linux/errno.h> 12#include <linux/errno.h>
13#include <linux/smp.h> 13#include <linux/smp.h>
14 14
15#include <asm/cacheflush.h>
16#include <asm/smp_plat.h> 15#include <asm/smp_plat.h>
17 16
18#include <mach/setup.h> 17#include <mach/setup.h>
@@ -24,8 +23,6 @@
24 */ 23 */
25void __ref ux500_cpu_die(unsigned int cpu) 24void __ref ux500_cpu_die(unsigned int cpu)
26{ 25{
27 flush_cache_all();
28
29 /* directly enter low power state, skipping secure registers */ 26 /* directly enter low power state, skipping secure registers */
30 for (;;) { 27 for (;;) {
31 __asm__ __volatile__("dsb\n\t" "wfi\n\t" 28 __asm__ __volatile__("dsb\n\t" "wfi\n\t"
diff --git a/arch/arm/mach-vexpress/hotplug.c b/arch/arm/mach-vexpress/hotplug.c
index a141b98d84fe..f0ce6b8f5e71 100644
--- a/arch/arm/mach-vexpress/hotplug.c
+++ b/arch/arm/mach-vexpress/hotplug.c
@@ -12,7 +12,6 @@
12#include <linux/errno.h> 12#include <linux/errno.h>
13#include <linux/smp.h> 13#include <linux/smp.h>
14 14
15#include <asm/cacheflush.h>
16#include <asm/smp_plat.h> 15#include <asm/smp_plat.h>
17#include <asm/cp15.h> 16#include <asm/cp15.h>
18 17
@@ -20,7 +19,6 @@ static inline void cpu_enter_lowpower(void)
20{ 19{
21 unsigned int v; 20 unsigned int v;
22 21
23 flush_cache_all();
24 asm volatile( 22 asm volatile(
25 "mcr p15, 0, %1, c7, c5, 0\n" 23 "mcr p15, 0, %1, c7, c5, 0\n"
26 " mcr p15, 0, %1, c7, c10, 4\n" 24 " mcr p15, 0, %1, c7, c10, 4\n"
diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig
index cb812a13e299..35955b54944c 100644
--- a/arch/arm/mm/Kconfig
+++ b/arch/arm/mm/Kconfig
@@ -43,7 +43,7 @@ config CPU_ARM740T
43 depends on !MMU 43 depends on !MMU
44 select CPU_32v4T 44 select CPU_32v4T
45 select CPU_ABRT_LV4T 45 select CPU_ABRT_LV4T
46 select CPU_CACHE_V3 # although the core is v4t 46 select CPU_CACHE_V4
47 select CPU_CP15_MPU 47 select CPU_CP15_MPU
48 select CPU_PABRT_LEGACY 48 select CPU_PABRT_LEGACY
49 help 49 help
@@ -476,9 +476,6 @@ config CPU_PABRT_V7
476 bool 476 bool
477 477
478# The cache model 478# The cache model
479config CPU_CACHE_V3
480 bool
481
482config CPU_CACHE_V4 479config CPU_CACHE_V4
483 bool 480 bool
484 481
diff --git a/arch/arm/mm/Makefile b/arch/arm/mm/Makefile
index 4e333fa2756f..9e51be96f635 100644
--- a/arch/arm/mm/Makefile
+++ b/arch/arm/mm/Makefile
@@ -33,7 +33,6 @@ obj-$(CONFIG_CPU_PABRT_LEGACY) += pabort-legacy.o
33obj-$(CONFIG_CPU_PABRT_V6) += pabort-v6.o 33obj-$(CONFIG_CPU_PABRT_V6) += pabort-v6.o
34obj-$(CONFIG_CPU_PABRT_V7) += pabort-v7.o 34obj-$(CONFIG_CPU_PABRT_V7) += pabort-v7.o
35 35
36obj-$(CONFIG_CPU_CACHE_V3) += cache-v3.o
37obj-$(CONFIG_CPU_CACHE_V4) += cache-v4.o 36obj-$(CONFIG_CPU_CACHE_V4) += cache-v4.o
38obj-$(CONFIG_CPU_CACHE_V4WT) += cache-v4wt.o 37obj-$(CONFIG_CPU_CACHE_V4WT) += cache-v4wt.o
39obj-$(CONFIG_CPU_CACHE_V4WB) += cache-v4wb.o 38obj-$(CONFIG_CPU_CACHE_V4WB) += cache-v4wb.o
diff --git a/arch/arm/mm/cache-feroceon-l2.c b/arch/arm/mm/cache-feroceon-l2.c
index dd3d59122cc3..48bc3c0a87ce 100644
--- a/arch/arm/mm/cache-feroceon-l2.c
+++ b/arch/arm/mm/cache-feroceon-l2.c
@@ -343,6 +343,7 @@ void __init feroceon_l2_init(int __l2_wt_override)
343 outer_cache.inv_range = feroceon_l2_inv_range; 343 outer_cache.inv_range = feroceon_l2_inv_range;
344 outer_cache.clean_range = feroceon_l2_clean_range; 344 outer_cache.clean_range = feroceon_l2_clean_range;
345 outer_cache.flush_range = feroceon_l2_flush_range; 345 outer_cache.flush_range = feroceon_l2_flush_range;
346 outer_cache.inv_all = l2_inv_all;
346 347
347 enable_l2(); 348 enable_l2();
348 349
diff --git a/arch/arm/mm/cache-l2x0.c b/arch/arm/mm/cache-l2x0.c
index c2f37390308a..c465faca51b0 100644
--- a/arch/arm/mm/cache-l2x0.c
+++ b/arch/arm/mm/cache-l2x0.c
@@ -299,7 +299,7 @@ static void l2x0_unlock(u32 cache_id)
299 int lockregs; 299 int lockregs;
300 int i; 300 int i;
301 301
302 switch (cache_id) { 302 switch (cache_id & L2X0_CACHE_ID_PART_MASK) {
303 case L2X0_CACHE_ID_PART_L310: 303 case L2X0_CACHE_ID_PART_L310:
304 lockregs = 8; 304 lockregs = 8;
305 break; 305 break;
@@ -333,15 +333,14 @@ void __init l2x0_init(void __iomem *base, u32 aux_val, u32 aux_mask)
333 if (cache_id_part_number_from_dt) 333 if (cache_id_part_number_from_dt)
334 cache_id = cache_id_part_number_from_dt; 334 cache_id = cache_id_part_number_from_dt;
335 else 335 else
336 cache_id = readl_relaxed(l2x0_base + L2X0_CACHE_ID) 336 cache_id = readl_relaxed(l2x0_base + L2X0_CACHE_ID);
337 & L2X0_CACHE_ID_PART_MASK;
338 aux = readl_relaxed(l2x0_base + L2X0_AUX_CTRL); 337 aux = readl_relaxed(l2x0_base + L2X0_AUX_CTRL);
339 338
340 aux &= aux_mask; 339 aux &= aux_mask;
341 aux |= aux_val; 340 aux |= aux_val;
342 341
343 /* Determine the number of ways */ 342 /* Determine the number of ways */
344 switch (cache_id) { 343 switch (cache_id & L2X0_CACHE_ID_PART_MASK) {
345 case L2X0_CACHE_ID_PART_L310: 344 case L2X0_CACHE_ID_PART_L310:
346 if (aux & (1 << 16)) 345 if (aux & (1 << 16))
347 ways = 16; 346 ways = 16;
@@ -725,7 +724,6 @@ static const struct l2x0_of_data pl310_data = {
725 .flush_all = l2x0_flush_all, 724 .flush_all = l2x0_flush_all,
726 .inv_all = l2x0_inv_all, 725 .inv_all = l2x0_inv_all,
727 .disable = l2x0_disable, 726 .disable = l2x0_disable,
728 .set_debug = pl310_set_debug,
729 }, 727 },
730}; 728};
731 729
@@ -814,9 +812,8 @@ int __init l2x0_of_init(u32 aux_val, u32 aux_mask)
814 data->save(); 812 data->save();
815 813
816 of_init = true; 814 of_init = true;
817 l2x0_init(l2x0_base, aux_val, aux_mask);
818
819 memcpy(&outer_cache, &data->outer_cache, sizeof(outer_cache)); 815 memcpy(&outer_cache, &data->outer_cache, sizeof(outer_cache));
816 l2x0_init(l2x0_base, aux_val, aux_mask);
820 817
821 return 0; 818 return 0;
822} 819}
diff --git a/arch/arm/mm/cache-v3.S b/arch/arm/mm/cache-v3.S
deleted file mode 100644
index 8a3fadece8d3..000000000000
--- a/arch/arm/mm/cache-v3.S
+++ /dev/null
@@ -1,137 +0,0 @@
1/*
2 * linux/arch/arm/mm/cache-v3.S
3 *
4 * Copyright (C) 1997-2002 Russell king
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
9 */
10#include <linux/linkage.h>
11#include <linux/init.h>
12#include <asm/page.h>
13#include "proc-macros.S"
14
15/*
16 * flush_icache_all()
17 *
18 * Unconditionally clean and invalidate the entire icache.
19 */
20ENTRY(v3_flush_icache_all)
21 mov pc, lr
22ENDPROC(v3_flush_icache_all)
23
24/*
25 * flush_user_cache_all()
26 *
27 * Invalidate all cache entries in a particular address
28 * space.
29 *
30 * - mm - mm_struct describing address space
31 */
32ENTRY(v3_flush_user_cache_all)
33 /* FALLTHROUGH */
34/*
35 * flush_kern_cache_all()
36 *
37 * Clean and invalidate the entire cache.
38 */
39ENTRY(v3_flush_kern_cache_all)
40 /* FALLTHROUGH */
41
42/*
43 * flush_user_cache_range(start, end, flags)
44 *
45 * Invalidate a range of cache entries in the specified
46 * address space.
47 *
48 * - start - start address (may not be aligned)
49 * - end - end address (exclusive, may not be aligned)
50 * - flags - vma_area_struct flags describing address space
51 */
52ENTRY(v3_flush_user_cache_range)
53 mov ip, #0
54 mcreq p15, 0, ip, c7, c0, 0 @ flush ID cache
55 mov pc, lr
56
57/*
58 * coherent_kern_range(start, end)
59 *
60 * Ensure coherency between the Icache and the Dcache in the
61 * region described by start. If you have non-snooping
62 * Harvard caches, you need to implement this function.
63 *
64 * - start - virtual start address
65 * - end - virtual end address
66 */
67ENTRY(v3_coherent_kern_range)
68 /* FALLTHROUGH */
69
70/*
71 * coherent_user_range(start, end)
72 *
73 * Ensure coherency between the Icache and the Dcache in the
74 * region described by start. If you have non-snooping
75 * Harvard caches, you need to implement this function.
76 *
77 * - start - virtual start address
78 * - end - virtual end address
79 */
80ENTRY(v3_coherent_user_range)
81 mov r0, #0
82 mov pc, lr
83
84/*
85 * flush_kern_dcache_area(void *page, size_t size)
86 *
87 * Ensure no D cache aliasing occurs, either with itself or
88 * the I cache
89 *
90 * - addr - kernel address
91 * - size - region size
92 */
93ENTRY(v3_flush_kern_dcache_area)
94 /* FALLTHROUGH */
95
96/*
97 * dma_flush_range(start, end)
98 *
99 * Clean and invalidate the specified virtual address range.
100 *
101 * - start - virtual start address
102 * - end - virtual end address
103 */
104ENTRY(v3_dma_flush_range)
105 mov r0, #0
106 mcr p15, 0, r0, c7, c0, 0 @ flush ID cache
107 mov pc, lr
108
109/*
110 * dma_unmap_area(start, size, dir)
111 * - start - kernel virtual start address
112 * - size - size of region
113 * - dir - DMA direction
114 */
115ENTRY(v3_dma_unmap_area)
116 teq r2, #DMA_TO_DEVICE
117 bne v3_dma_flush_range
118 /* FALLTHROUGH */
119
120/*
121 * dma_map_area(start, size, dir)
122 * - start - kernel virtual start address
123 * - size - size of region
124 * - dir - DMA direction
125 */
126ENTRY(v3_dma_map_area)
127 mov pc, lr
128ENDPROC(v3_dma_unmap_area)
129ENDPROC(v3_dma_map_area)
130
131 .globl v3_flush_kern_cache_louis
132 .equ v3_flush_kern_cache_louis, v3_flush_kern_cache_all
133
134 __INITDATA
135
136 @ define struct cpu_cache_fns (see <asm/cacheflush.h> and proc-macros.S)
137 define_cache_functions v3
diff --git a/arch/arm/mm/cache-v4.S b/arch/arm/mm/cache-v4.S
index 43e5d77be677..a7ba68f59f0c 100644
--- a/arch/arm/mm/cache-v4.S
+++ b/arch/arm/mm/cache-v4.S
@@ -58,7 +58,7 @@ ENTRY(v4_flush_kern_cache_all)
58ENTRY(v4_flush_user_cache_range) 58ENTRY(v4_flush_user_cache_range)
59#ifdef CONFIG_CPU_CP15 59#ifdef CONFIG_CPU_CP15
60 mov ip, #0 60 mov ip, #0
61 mcreq p15, 0, ip, c7, c7, 0 @ flush ID cache 61 mcr p15, 0, ip, c7, c7, 0 @ flush ID cache
62 mov pc, lr 62 mov pc, lr
63#else 63#else
64 /* FALLTHROUGH */ 64 /* FALLTHROUGH */
diff --git a/arch/arm/mm/context.c b/arch/arm/mm/context.c
index a5a4b2bc42ba..2ac37372ef52 100644
--- a/arch/arm/mm/context.c
+++ b/arch/arm/mm/context.c
@@ -48,7 +48,7 @@ static DEFINE_RAW_SPINLOCK(cpu_asid_lock);
48static atomic64_t asid_generation = ATOMIC64_INIT(ASID_FIRST_VERSION); 48static atomic64_t asid_generation = ATOMIC64_INIT(ASID_FIRST_VERSION);
49static DECLARE_BITMAP(asid_map, NUM_USER_ASIDS); 49static DECLARE_BITMAP(asid_map, NUM_USER_ASIDS);
50 50
51static DEFINE_PER_CPU(atomic64_t, active_asids); 51DEFINE_PER_CPU(atomic64_t, active_asids);
52static DEFINE_PER_CPU(u64, reserved_asids); 52static DEFINE_PER_CPU(u64, reserved_asids);
53static cpumask_t tlb_flush_pending; 53static cpumask_t tlb_flush_pending;
54 54
@@ -215,6 +215,7 @@ void check_and_switch_context(struct mm_struct *mm, struct task_struct *tsk)
215 if (cpumask_test_and_clear_cpu(cpu, &tlb_flush_pending)) { 215 if (cpumask_test_and_clear_cpu(cpu, &tlb_flush_pending)) {
216 local_flush_bp_all(); 216 local_flush_bp_all();
217 local_flush_tlb_all(); 217 local_flush_tlb_all();
218 dummy_flush_tlb_a15_erratum();
218 } 219 }
219 220
220 atomic64_set(&per_cpu(active_asids, cpu), asid); 221 atomic64_set(&per_cpu(active_asids, cpu), asid);
diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c
index e9db6b4bf65a..ef3e0f3aac96 100644
--- a/arch/arm/mm/dma-mapping.c
+++ b/arch/arm/mm/dma-mapping.c
@@ -823,16 +823,17 @@ static void dma_cache_maint_page(struct page *page, unsigned long offset,
823 if (PageHighMem(page)) { 823 if (PageHighMem(page)) {
824 if (len + offset > PAGE_SIZE) 824 if (len + offset > PAGE_SIZE)
825 len = PAGE_SIZE - offset; 825 len = PAGE_SIZE - offset;
826 vaddr = kmap_high_get(page); 826
827 if (vaddr) { 827 if (cache_is_vipt_nonaliasing()) {
828 vaddr += offset;
829 op(vaddr, len, dir);
830 kunmap_high(page);
831 } else if (cache_is_vipt()) {
832 /* unmapped pages might still be cached */
833 vaddr = kmap_atomic(page); 828 vaddr = kmap_atomic(page);
834 op(vaddr + offset, len, dir); 829 op(vaddr + offset, len, dir);
835 kunmap_atomic(vaddr); 830 kunmap_atomic(vaddr);
831 } else {
832 vaddr = kmap_high_get(page);
833 if (vaddr) {
834 op(vaddr + offset, len, dir);
835 kunmap_high(page);
836 }
836 } 837 }
837 } else { 838 } else {
838 vaddr = page_address(page) + offset; 839 vaddr = page_address(page) + offset;
diff --git a/arch/arm/mm/flush.c b/arch/arm/mm/flush.c
index 1c8f7f564175..0d473cce501c 100644
--- a/arch/arm/mm/flush.c
+++ b/arch/arm/mm/flush.c
@@ -170,15 +170,18 @@ void __flush_dcache_page(struct address_space *mapping, struct page *page)
170 if (!PageHighMem(page)) { 170 if (!PageHighMem(page)) {
171 __cpuc_flush_dcache_area(page_address(page), PAGE_SIZE); 171 __cpuc_flush_dcache_area(page_address(page), PAGE_SIZE);
172 } else { 172 } else {
173 void *addr = kmap_high_get(page); 173 void *addr;
174 if (addr) { 174
175 __cpuc_flush_dcache_area(addr, PAGE_SIZE); 175 if (cache_is_vipt_nonaliasing()) {
176 kunmap_high(page);
177 } else if (cache_is_vipt()) {
178 /* unmapped pages might still be cached */
179 addr = kmap_atomic(page); 176 addr = kmap_atomic(page);
180 __cpuc_flush_dcache_area(addr, PAGE_SIZE); 177 __cpuc_flush_dcache_area(addr, PAGE_SIZE);
181 kunmap_atomic(addr); 178 kunmap_atomic(addr);
179 } else {
180 addr = kmap_high_get(page);
181 if (addr) {
182 __cpuc_flush_dcache_area(addr, PAGE_SIZE);
183 kunmap_high(page);
184 }
182 } 185 }
183 } 186 }
184 187
diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c
index c6d45c87540e..e0d8565671a6 100644
--- a/arch/arm/mm/mmu.c
+++ b/arch/arm/mm/mmu.c
@@ -34,6 +34,7 @@
34#include <asm/mach/pci.h> 34#include <asm/mach/pci.h>
35 35
36#include "mm.h" 36#include "mm.h"
37#include "tcm.h"
37 38
38/* 39/*
39 * empty_zero_page is a special page that is used for 40 * empty_zero_page is a special page that is used for
@@ -615,39 +616,60 @@ static void __init alloc_init_pte(pmd_t *pmd, unsigned long addr,
615 } while (pte++, addr += PAGE_SIZE, addr != end); 616 } while (pte++, addr += PAGE_SIZE, addr != end);
616} 617}
617 618
618static void __init alloc_init_section(pud_t *pud, unsigned long addr, 619static void __init map_init_section(pmd_t *pmd, unsigned long addr,
619 unsigned long end, phys_addr_t phys, 620 unsigned long end, phys_addr_t phys,
620 const struct mem_type *type) 621 const struct mem_type *type)
621{ 622{
622 pmd_t *pmd = pmd_offset(pud, addr); 623#ifndef CONFIG_ARM_LPAE
623
624 /* 624 /*
625 * Try a section mapping - end, addr and phys must all be aligned 625 * In classic MMU format, puds and pmds are folded in to
626 * to a section boundary. Note that PMDs refer to the individual 626 * the pgds. pmd_offset gives the PGD entry. PGDs refer to a
627 * L1 entries, whereas PGDs refer to a group of L1 entries making 627 * group of L1 entries making up one logical pointer to
628 * up one logical pointer to an L2 table. 628 * an L2 table (2MB), where as PMDs refer to the individual
629 * L1 entries (1MB). Hence increment to get the correct
630 * offset for odd 1MB sections.
631 * (See arch/arm/include/asm/pgtable-2level.h)
629 */ 632 */
630 if (type->prot_sect && ((addr | end | phys) & ~SECTION_MASK) == 0) { 633 if (addr & SECTION_SIZE)
631 pmd_t *p = pmd; 634 pmd++;
632
633#ifndef CONFIG_ARM_LPAE
634 if (addr & SECTION_SIZE)
635 pmd++;
636#endif 635#endif
636 do {
637 *pmd = __pmd(phys | type->prot_sect);
638 phys += SECTION_SIZE;
639 } while (pmd++, addr += SECTION_SIZE, addr != end);
637 640
638 do { 641 flush_pmd_entry(pmd);
639 *pmd = __pmd(phys | type->prot_sect); 642}
640 phys += SECTION_SIZE;
641 } while (pmd++, addr += SECTION_SIZE, addr != end);
642 643
643 flush_pmd_entry(p); 644static void __init alloc_init_pmd(pud_t *pud, unsigned long addr,
644 } else { 645 unsigned long end, phys_addr_t phys,
646 const struct mem_type *type)
647{
648 pmd_t *pmd = pmd_offset(pud, addr);
649 unsigned long next;
650
651 do {
645 /* 652 /*
646 * No need to loop; pte's aren't interested in the 653 * With LPAE, we must loop over to map
647 * individual L1 entries. 654 * all the pmds for the given range.
648 */ 655 */
649 alloc_init_pte(pmd, addr, end, __phys_to_pfn(phys), type); 656 next = pmd_addr_end(addr, end);
650 } 657
658 /*
659 * Try a section mapping - addr, next and phys must all be
660 * aligned to a section boundary.
661 */
662 if (type->prot_sect &&
663 ((addr | next | phys) & ~SECTION_MASK) == 0) {
664 map_init_section(pmd, addr, next, phys, type);
665 } else {
666 alloc_init_pte(pmd, addr, next,
667 __phys_to_pfn(phys), type);
668 }
669
670 phys += next - addr;
671
672 } while (pmd++, addr = next, addr != end);
651} 673}
652 674
653static void __init alloc_init_pud(pgd_t *pgd, unsigned long addr, 675static void __init alloc_init_pud(pgd_t *pgd, unsigned long addr,
@@ -658,7 +680,7 @@ static void __init alloc_init_pud(pgd_t *pgd, unsigned long addr,
658 680
659 do { 681 do {
660 next = pud_addr_end(addr, end); 682 next = pud_addr_end(addr, end);
661 alloc_init_section(pud, addr, next, phys, type); 683 alloc_init_pmd(pud, addr, next, phys, type);
662 phys += next - addr; 684 phys += next - addr;
663 } while (pud++, addr = next, addr != end); 685 } while (pud++, addr = next, addr != end);
664} 686}
@@ -1273,6 +1295,7 @@ void __init paging_init(struct machine_desc *mdesc)
1273 dma_contiguous_remap(); 1295 dma_contiguous_remap();
1274 devicemaps_init(mdesc); 1296 devicemaps_init(mdesc);
1275 kmap_init(); 1297 kmap_init();
1298 tcm_init();
1276 1299
1277 top_pmd = pmd_off_k(0xffff0000); 1300 top_pmd = pmd_off_k(0xffff0000);
1278 1301
diff --git a/arch/arm/mm/proc-arm740.S b/arch/arm/mm/proc-arm740.S
index dc5de5d53f20..fde2d2a794cf 100644
--- a/arch/arm/mm/proc-arm740.S
+++ b/arch/arm/mm/proc-arm740.S
@@ -77,24 +77,27 @@ __arm740_setup:
77 mcr p15, 0, r0, c6, c0 @ set area 0, default 77 mcr p15, 0, r0, c6, c0 @ set area 0, default
78 78
79 ldr r0, =(CONFIG_DRAM_BASE & 0xFFFFF000) @ base[31:12] of RAM 79 ldr r0, =(CONFIG_DRAM_BASE & 0xFFFFF000) @ base[31:12] of RAM
80 ldr r1, =(CONFIG_DRAM_SIZE >> 12) @ size of RAM (must be >= 4KB) 80 ldr r3, =(CONFIG_DRAM_SIZE >> 12) @ size of RAM (must be >= 4KB)
81 mov r2, #10 @ 11 is the minimum (4KB) 81 mov r4, #10 @ 11 is the minimum (4KB)
821: add r2, r2, #1 @ area size *= 2 821: add r4, r4, #1 @ area size *= 2
83 mov r1, r1, lsr #1 83 movs r3, r3, lsr #1
84 bne 1b @ count not zero r-shift 84 bne 1b @ count not zero r-shift
85 orr r0, r0, r2, lsl #1 @ the area register value 85 orr r0, r0, r4, lsl #1 @ the area register value
86 orr r0, r0, #1 @ set enable bit 86 orr r0, r0, #1 @ set enable bit
87 mcr p15, 0, r0, c6, c1 @ set area 1, RAM 87 mcr p15, 0, r0, c6, c1 @ set area 1, RAM
88 88
89 ldr r0, =(CONFIG_FLASH_MEM_BASE & 0xFFFFF000) @ base[31:12] of FLASH 89 ldr r0, =(CONFIG_FLASH_MEM_BASE & 0xFFFFF000) @ base[31:12] of FLASH
90 ldr r1, =(CONFIG_FLASH_SIZE >> 12) @ size of FLASH (must be >= 4KB) 90 ldr r3, =(CONFIG_FLASH_SIZE >> 12) @ size of FLASH (must be >= 4KB)
91 mov r2, #10 @ 11 is the minimum (4KB) 91 cmp r3, #0
921: add r2, r2, #1 @ area size *= 2 92 moveq r0, #0
93 mov r1, r1, lsr #1 93 beq 2f
94 mov r4, #10 @ 11 is the minimum (4KB)
951: add r4, r4, #1 @ area size *= 2
96 movs r3, r3, lsr #1
94 bne 1b @ count not zero r-shift 97 bne 1b @ count not zero r-shift
95 orr r0, r0, r2, lsl #1 @ the area register value 98 orr r0, r0, r4, lsl #1 @ the area register value
96 orr r0, r0, #1 @ set enable bit 99 orr r0, r0, #1 @ set enable bit
97 mcr p15, 0, r0, c6, c2 @ set area 2, ROM/FLASH 1002: mcr p15, 0, r0, c6, c2 @ set area 2, ROM/FLASH
98 101
99 mov r0, #0x06 102 mov r0, #0x06
100 mcr p15, 0, r0, c2, c0 @ Region 1&2 cacheable 103 mcr p15, 0, r0, c2, c0 @ Region 1&2 cacheable
@@ -137,13 +140,14 @@ __arm740_proc_info:
137 .long 0x41807400 140 .long 0x41807400
138 .long 0xfffffff0 141 .long 0xfffffff0
139 .long 0 142 .long 0
143 .long 0
140 b __arm740_setup 144 b __arm740_setup
141 .long cpu_arch_name 145 .long cpu_arch_name
142 .long cpu_elf_name 146 .long cpu_elf_name
143 .long HWCAP_SWP | HWCAP_HALF | HWCAP_26BIT 147 .long HWCAP_SWP | HWCAP_HALF | HWCAP_THUMB | HWCAP_26BIT
144 .long cpu_arm740_name 148 .long cpu_arm740_name
145 .long arm740_processor_functions 149 .long arm740_processor_functions
146 .long 0 150 .long 0
147 .long 0 151 .long 0
148 .long v3_cache_fns @ cache model 152 .long v4_cache_fns @ cache model
149 .size __arm740_proc_info, . - __arm740_proc_info 153 .size __arm740_proc_info, . - __arm740_proc_info
diff --git a/arch/arm/mm/proc-arm920.S b/arch/arm/mm/proc-arm920.S
index 2c3b9421ab5e..2556cf1c2da1 100644
--- a/arch/arm/mm/proc-arm920.S
+++ b/arch/arm/mm/proc-arm920.S
@@ -387,7 +387,7 @@ ENTRY(cpu_arm920_set_pte_ext)
387/* Suspend/resume support: taken from arch/arm/plat-s3c24xx/sleep.S */ 387/* Suspend/resume support: taken from arch/arm/plat-s3c24xx/sleep.S */
388.globl cpu_arm920_suspend_size 388.globl cpu_arm920_suspend_size
389.equ cpu_arm920_suspend_size, 4 * 3 389.equ cpu_arm920_suspend_size, 4 * 3
390#ifdef CONFIG_PM_SLEEP 390#ifdef CONFIG_ARM_CPU_SUSPEND
391ENTRY(cpu_arm920_do_suspend) 391ENTRY(cpu_arm920_do_suspend)
392 stmfd sp!, {r4 - r6, lr} 392 stmfd sp!, {r4 - r6, lr}
393 mrc p15, 0, r4, c13, c0, 0 @ PID 393 mrc p15, 0, r4, c13, c0, 0 @ PID
diff --git a/arch/arm/mm/proc-arm926.S b/arch/arm/mm/proc-arm926.S
index f1803f7e2972..344c8a548cc0 100644
--- a/arch/arm/mm/proc-arm926.S
+++ b/arch/arm/mm/proc-arm926.S
@@ -402,7 +402,7 @@ ENTRY(cpu_arm926_set_pte_ext)
402/* Suspend/resume support: taken from arch/arm/plat-s3c24xx/sleep.S */ 402/* Suspend/resume support: taken from arch/arm/plat-s3c24xx/sleep.S */
403.globl cpu_arm926_suspend_size 403.globl cpu_arm926_suspend_size
404.equ cpu_arm926_suspend_size, 4 * 3 404.equ cpu_arm926_suspend_size, 4 * 3
405#ifdef CONFIG_PM_SLEEP 405#ifdef CONFIG_ARM_CPU_SUSPEND
406ENTRY(cpu_arm926_do_suspend) 406ENTRY(cpu_arm926_do_suspend)
407 stmfd sp!, {r4 - r6, lr} 407 stmfd sp!, {r4 - r6, lr}
408 mrc p15, 0, r4, c13, c0, 0 @ PID 408 mrc p15, 0, r4, c13, c0, 0 @ PID
diff --git a/arch/arm/mm/proc-mohawk.S b/arch/arm/mm/proc-mohawk.S
index 82f9cdc751d6..0b60dd3d742a 100644
--- a/arch/arm/mm/proc-mohawk.S
+++ b/arch/arm/mm/proc-mohawk.S
@@ -350,7 +350,7 @@ ENTRY(cpu_mohawk_set_pte_ext)
350 350
351.globl cpu_mohawk_suspend_size 351.globl cpu_mohawk_suspend_size
352.equ cpu_mohawk_suspend_size, 4 * 6 352.equ cpu_mohawk_suspend_size, 4 * 6
353#ifdef CONFIG_PM_SLEEP 353#ifdef CONFIG_ARM_CPU_SUSPEND
354ENTRY(cpu_mohawk_do_suspend) 354ENTRY(cpu_mohawk_do_suspend)
355 stmfd sp!, {r4 - r9, lr} 355 stmfd sp!, {r4 - r9, lr}
356 mrc p14, 0, r4, c6, c0, 0 @ clock configuration, for turbo mode 356 mrc p14, 0, r4, c6, c0, 0 @ clock configuration, for turbo mode
diff --git a/arch/arm/mm/proc-sa1100.S b/arch/arm/mm/proc-sa1100.S
index 3aa0da11fd84..d92dfd081429 100644
--- a/arch/arm/mm/proc-sa1100.S
+++ b/arch/arm/mm/proc-sa1100.S
@@ -172,7 +172,7 @@ ENTRY(cpu_sa1100_set_pte_ext)
172 172
173.globl cpu_sa1100_suspend_size 173.globl cpu_sa1100_suspend_size
174.equ cpu_sa1100_suspend_size, 4 * 3 174.equ cpu_sa1100_suspend_size, 4 * 3
175#ifdef CONFIG_PM_SLEEP 175#ifdef CONFIG_ARM_CPU_SUSPEND
176ENTRY(cpu_sa1100_do_suspend) 176ENTRY(cpu_sa1100_do_suspend)
177 stmfd sp!, {r4 - r6, lr} 177 stmfd sp!, {r4 - r6, lr}
178 mrc p15, 0, r4, c3, c0, 0 @ domain ID 178 mrc p15, 0, r4, c3, c0, 0 @ domain ID
diff --git a/arch/arm/mm/proc-syms.c b/arch/arm/mm/proc-syms.c
index 3e6210b4d6d4..054b491ff764 100644
--- a/arch/arm/mm/proc-syms.c
+++ b/arch/arm/mm/proc-syms.c
@@ -17,7 +17,9 @@
17 17
18#ifndef MULTI_CPU 18#ifndef MULTI_CPU
19EXPORT_SYMBOL(cpu_dcache_clean_area); 19EXPORT_SYMBOL(cpu_dcache_clean_area);
20#ifdef CONFIG_MMU
20EXPORT_SYMBOL(cpu_set_pte_ext); 21EXPORT_SYMBOL(cpu_set_pte_ext);
22#endif
21#else 23#else
22EXPORT_SYMBOL(processor); 24EXPORT_SYMBOL(processor);
23#endif 25#endif
diff --git a/arch/arm/mm/proc-v6.S b/arch/arm/mm/proc-v6.S
index bcaaa8de9325..919405e20b80 100644
--- a/arch/arm/mm/proc-v6.S
+++ b/arch/arm/mm/proc-v6.S
@@ -80,12 +80,10 @@ ENTRY(cpu_v6_do_idle)
80 mov pc, lr 80 mov pc, lr
81 81
82ENTRY(cpu_v6_dcache_clean_area) 82ENTRY(cpu_v6_dcache_clean_area)
83#ifndef TLB_CAN_READ_FROM_L1_CACHE
841: mcr p15, 0, r0, c7, c10, 1 @ clean D entry 831: mcr p15, 0, r0, c7, c10, 1 @ clean D entry
85 add r0, r0, #D_CACHE_LINE_SIZE 84 add r0, r0, #D_CACHE_LINE_SIZE
86 subs r1, r1, #D_CACHE_LINE_SIZE 85 subs r1, r1, #D_CACHE_LINE_SIZE
87 bhi 1b 86 bhi 1b
88#endif
89 mov pc, lr 87 mov pc, lr
90 88
91/* 89/*
@@ -138,7 +136,7 @@ ENTRY(cpu_v6_set_pte_ext)
138/* Suspend/resume support: taken from arch/arm/mach-s3c64xx/sleep.S */ 136/* Suspend/resume support: taken from arch/arm/mach-s3c64xx/sleep.S */
139.globl cpu_v6_suspend_size 137.globl cpu_v6_suspend_size
140.equ cpu_v6_suspend_size, 4 * 6 138.equ cpu_v6_suspend_size, 4 * 6
141#ifdef CONFIG_PM_SLEEP 139#ifdef CONFIG_ARM_CPU_SUSPEND
142ENTRY(cpu_v6_do_suspend) 140ENTRY(cpu_v6_do_suspend)
143 stmfd sp!, {r4 - r9, lr} 141 stmfd sp!, {r4 - r9, lr}
144 mrc p15, 0, r4, c13, c0, 0 @ FCSE/PID 142 mrc p15, 0, r4, c13, c0, 0 @ FCSE/PID
diff --git a/arch/arm/mm/proc-v7-2level.S b/arch/arm/mm/proc-v7-2level.S
index 78f520bc0e99..9704097c450e 100644
--- a/arch/arm/mm/proc-v7-2level.S
+++ b/arch/arm/mm/proc-v7-2level.S
@@ -110,7 +110,8 @@ ENTRY(cpu_v7_set_pte_ext)
110 ARM( str r3, [r0, #2048]! ) 110 ARM( str r3, [r0, #2048]! )
111 THUMB( add r0, r0, #2048 ) 111 THUMB( add r0, r0, #2048 )
112 THUMB( str r3, [r0] ) 112 THUMB( str r3, [r0] )
113 mcr p15, 0, r0, c7, c10, 1 @ flush_pte 113 ALT_SMP(mov pc,lr)
114 ALT_UP (mcr p15, 0, r0, c7, c10, 1) @ flush_pte
114#endif 115#endif
115 mov pc, lr 116 mov pc, lr
116ENDPROC(cpu_v7_set_pte_ext) 117ENDPROC(cpu_v7_set_pte_ext)
diff --git a/arch/arm/mm/proc-v7-3level.S b/arch/arm/mm/proc-v7-3level.S
index 6ffd78c0f9ab..363027e811d6 100644
--- a/arch/arm/mm/proc-v7-3level.S
+++ b/arch/arm/mm/proc-v7-3level.S
@@ -73,7 +73,8 @@ ENTRY(cpu_v7_set_pte_ext)
73 tst r3, #1 << (55 - 32) @ L_PTE_DIRTY 73 tst r3, #1 << (55 - 32) @ L_PTE_DIRTY
74 orreq r2, #L_PTE_RDONLY 74 orreq r2, #L_PTE_RDONLY
751: strd r2, r3, [r0] 751: strd r2, r3, [r0]
76 mcr p15, 0, r0, c7, c10, 1 @ flush_pte 76 ALT_SMP(mov pc, lr)
77 ALT_UP (mcr p15, 0, r0, c7, c10, 1) @ flush_pte
77#endif 78#endif
78 mov pc, lr 79 mov pc, lr
79ENDPROC(cpu_v7_set_pte_ext) 80ENDPROC(cpu_v7_set_pte_ext)
diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S
index 3a3c015f8d5c..2c73a7301ff7 100644
--- a/arch/arm/mm/proc-v7.S
+++ b/arch/arm/mm/proc-v7.S
@@ -75,14 +75,14 @@ ENTRY(cpu_v7_do_idle)
75ENDPROC(cpu_v7_do_idle) 75ENDPROC(cpu_v7_do_idle)
76 76
77ENTRY(cpu_v7_dcache_clean_area) 77ENTRY(cpu_v7_dcache_clean_area)
78#ifndef TLB_CAN_READ_FROM_L1_CACHE 78 ALT_SMP(mov pc, lr) @ MP extensions imply L1 PTW
79 ALT_UP(W(nop))
79 dcache_line_size r2, r3 80 dcache_line_size r2, r3
801: mcr p15, 0, r0, c7, c10, 1 @ clean D entry 811: mcr p15, 0, r0, c7, c10, 1 @ clean D entry
81 add r0, r0, r2 82 add r0, r0, r2
82 subs r1, r1, r2 83 subs r1, r1, r2
83 bhi 1b 84 bhi 1b
84 dsb 85 dsb
85#endif
86 mov pc, lr 86 mov pc, lr
87ENDPROC(cpu_v7_dcache_clean_area) 87ENDPROC(cpu_v7_dcache_clean_area)
88 88
@@ -402,6 +402,8 @@ __v7_ca9mp_proc_info:
402 __v7_proc __v7_ca9mp_setup 402 __v7_proc __v7_ca9mp_setup
403 .size __v7_ca9mp_proc_info, . - __v7_ca9mp_proc_info 403 .size __v7_ca9mp_proc_info, . - __v7_ca9mp_proc_info
404 404
405#endif /* CONFIG_ARM_LPAE */
406
405 /* 407 /*
406 * Marvell PJ4B processor. 408 * Marvell PJ4B processor.
407 */ 409 */
@@ -411,7 +413,6 @@ __v7_pj4b_proc_info:
411 .long 0xfffffff0 413 .long 0xfffffff0
412 __v7_proc __v7_pj4b_setup 414 __v7_proc __v7_pj4b_setup
413 .size __v7_pj4b_proc_info, . - __v7_pj4b_proc_info 415 .size __v7_pj4b_proc_info, . - __v7_pj4b_proc_info
414#endif /* CONFIG_ARM_LPAE */
415 416
416 /* 417 /*
417 * ARM Ltd. Cortex A7 processor. 418 * ARM Ltd. Cortex A7 processor.
@@ -420,7 +421,7 @@ __v7_pj4b_proc_info:
420__v7_ca7mp_proc_info: 421__v7_ca7mp_proc_info:
421 .long 0x410fc070 422 .long 0x410fc070
422 .long 0xff0ffff0 423 .long 0xff0ffff0
423 __v7_proc __v7_ca7mp_setup, hwcaps = HWCAP_IDIV 424 __v7_proc __v7_ca7mp_setup
424 .size __v7_ca7mp_proc_info, . - __v7_ca7mp_proc_info 425 .size __v7_ca7mp_proc_info, . - __v7_ca7mp_proc_info
425 426
426 /* 427 /*
@@ -430,10 +431,25 @@ __v7_ca7mp_proc_info:
430__v7_ca15mp_proc_info: 431__v7_ca15mp_proc_info:
431 .long 0x410fc0f0 432 .long 0x410fc0f0
432 .long 0xff0ffff0 433 .long 0xff0ffff0
433 __v7_proc __v7_ca15mp_setup, hwcaps = HWCAP_IDIV 434 __v7_proc __v7_ca15mp_setup
434 .size __v7_ca15mp_proc_info, . - __v7_ca15mp_proc_info 435 .size __v7_ca15mp_proc_info, . - __v7_ca15mp_proc_info
435 436
436 /* 437 /*
438 * Qualcomm Inc. Krait processors.
439 */
440 .type __krait_proc_info, #object
441__krait_proc_info:
442 .long 0x510f0400 @ Required ID value
443 .long 0xff0ffc00 @ Mask for ID
444 /*
445 * Some Krait processors don't indicate support for SDIV and UDIV
446 * instructions in the ARM instruction set, even though they actually
447 * do support them.
448 */
449 __v7_proc __v7_setup, hwcaps = HWCAP_IDIV
450 .size __krait_proc_info, . - __krait_proc_info
451
452 /*
437 * Match any ARMv7 processor core. 453 * Match any ARMv7 processor core.
438 */ 454 */
439 .type __v7_proc_info, #object 455 .type __v7_proc_info, #object
diff --git a/arch/arm/mm/proc-xsc3.S b/arch/arm/mm/proc-xsc3.S
index eb93d6487f35..e8efd83b6f25 100644
--- a/arch/arm/mm/proc-xsc3.S
+++ b/arch/arm/mm/proc-xsc3.S
@@ -413,7 +413,7 @@ ENTRY(cpu_xsc3_set_pte_ext)
413 413
414.globl cpu_xsc3_suspend_size 414.globl cpu_xsc3_suspend_size
415.equ cpu_xsc3_suspend_size, 4 * 6 415.equ cpu_xsc3_suspend_size, 4 * 6
416#ifdef CONFIG_PM_SLEEP 416#ifdef CONFIG_ARM_CPU_SUSPEND
417ENTRY(cpu_xsc3_do_suspend) 417ENTRY(cpu_xsc3_do_suspend)
418 stmfd sp!, {r4 - r9, lr} 418 stmfd sp!, {r4 - r9, lr}
419 mrc p14, 0, r4, c6, c0, 0 @ clock configuration, for turbo mode 419 mrc p14, 0, r4, c6, c0, 0 @ clock configuration, for turbo mode
diff --git a/arch/arm/mm/proc-xscale.S b/arch/arm/mm/proc-xscale.S
index 25510361aa18..e766f889bfd6 100644
--- a/arch/arm/mm/proc-xscale.S
+++ b/arch/arm/mm/proc-xscale.S
@@ -528,7 +528,7 @@ ENTRY(cpu_xscale_set_pte_ext)
528 528
529.globl cpu_xscale_suspend_size 529.globl cpu_xscale_suspend_size
530.equ cpu_xscale_suspend_size, 4 * 6 530.equ cpu_xscale_suspend_size, 4 * 6
531#ifdef CONFIG_PM_SLEEP 531#ifdef CONFIG_ARM_CPU_SUSPEND
532ENTRY(cpu_xscale_do_suspend) 532ENTRY(cpu_xscale_do_suspend)
533 stmfd sp!, {r4 - r9, lr} 533 stmfd sp!, {r4 - r9, lr}
534 mrc p14, 0, r4, c6, c0, 0 @ clock configuration, for turbo mode 534 mrc p14, 0, r4, c6, c0, 0 @ clock configuration, for turbo mode
diff --git a/arch/arm/kernel/tcm.h b/arch/arm/mm/tcm.h
index 8015ad434a40..8015ad434a40 100644
--- a/arch/arm/kernel/tcm.h
+++ b/arch/arm/mm/tcm.h
diff --git a/arch/arm/net/bpf_jit_32.c b/arch/arm/net/bpf_jit_32.c
index 6828ef6ce80e..a0bd8a755bdf 100644
--- a/arch/arm/net/bpf_jit_32.c
+++ b/arch/arm/net/bpf_jit_32.c
@@ -576,7 +576,7 @@ load_ind:
576 /* x = ((*(frame + k)) & 0xf) << 2; */ 576 /* x = ((*(frame + k)) & 0xf) << 2; */
577 ctx->seen |= SEEN_X | SEEN_DATA | SEEN_CALL; 577 ctx->seen |= SEEN_X | SEEN_DATA | SEEN_CALL;
578 /* the interpreter should deal with the negative K */ 578 /* the interpreter should deal with the negative K */
579 if (k < 0) 579 if ((int)k < 0)
580 return -1; 580 return -1;
581 /* offset in r1: we might have to take the slow path */ 581 /* offset in r1: we might have to take the slow path */
582 emit_mov_i(r_off, k, ctx); 582 emit_mov_i(r_off, k, ctx);
diff --git a/arch/arm/tools/mach-types b/arch/arm/tools/mach-types
index 831e1fdfdb2f..a10297da122b 100644
--- a/arch/arm/tools/mach-types
+++ b/arch/arm/tools/mach-types
@@ -16,7 +16,7 @@
16# are merged into mainline or have been edited in the machine database 16# are merged into mainline or have been edited in the machine database
17# within the last 12 months. References to machine_is_NAME() do not count! 17# within the last 12 months. References to machine_is_NAME() do not count!
18# 18#
19# Last update: Thu Apr 26 08:44:23 2012 19# Last update: Fri Mar 22 17:24:50 2013
20# 20#
21# machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number 21# machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number
22# 22#
@@ -64,8 +64,8 @@ h7201 ARCH_H7201 H7201 161
64h7202 ARCH_H7202 H7202 162 64h7202 ARCH_H7202 H7202 162
65iq80321 ARCH_IQ80321 IQ80321 169 65iq80321 ARCH_IQ80321 IQ80321 169
66ks8695 ARCH_KS8695 KS8695 180 66ks8695 ARCH_KS8695 KS8695 180
67karo ARCH_KARO KARO 190
68smdk2410 ARCH_SMDK2410 SMDK2410 193 67smdk2410 ARCH_SMDK2410 SMDK2410 193
68ceiva ARCH_CEIVA CEIVA 200
69voiceblue MACH_VOICEBLUE VOICEBLUE 218 69voiceblue MACH_VOICEBLUE VOICEBLUE 218
70h5400 ARCH_H5400 H5400 220 70h5400 ARCH_H5400 H5400 220
71omap_innovator MACH_OMAP_INNOVATOR OMAP_INNOVATOR 234 71omap_innovator MACH_OMAP_INNOVATOR OMAP_INNOVATOR 234
@@ -95,6 +95,7 @@ lpd7a400 MACH_LPD7A400 LPD7A400 389
95lpd7a404 MACH_LPD7A404 LPD7A404 390 95lpd7a404 MACH_LPD7A404 LPD7A404 390
96csb337 MACH_CSB337 CSB337 399 96csb337 MACH_CSB337 CSB337 399
97mainstone MACH_MAINSTONE MAINSTONE 406 97mainstone MACH_MAINSTONE MAINSTONE 406
98lite300 MACH_LITE300 LITE300 408
98xcep MACH_XCEP XCEP 413 99xcep MACH_XCEP XCEP 413
99arcom_vulcan MACH_ARCOM_VULCAN ARCOM_VULCAN 414 100arcom_vulcan MACH_ARCOM_VULCAN ARCOM_VULCAN 414
100nomadik MACH_NOMADIK NOMADIK 420 101nomadik MACH_NOMADIK NOMADIK 420
@@ -131,12 +132,14 @@ kb9200 MACH_KB9200 KB9200 612
131sx1 MACH_SX1 SX1 613 132sx1 MACH_SX1 SX1 613
132ixdp465 MACH_IXDP465 IXDP465 618 133ixdp465 MACH_IXDP465 IXDP465 618
133ixdp2351 MACH_IXDP2351 IXDP2351 619 134ixdp2351 MACH_IXDP2351 IXDP2351 619
135cm4008 MACH_CM4008 CM4008 624
134iq80332 MACH_IQ80332 IQ80332 629 136iq80332 MACH_IQ80332 IQ80332 629
135gtwx5715 MACH_GTWX5715 GTWX5715 641 137gtwx5715 MACH_GTWX5715 GTWX5715 641
136csb637 MACH_CSB637 CSB637 648 138csb637 MACH_CSB637 CSB637 648
137n30 MACH_N30 N30 656 139n30 MACH_N30 N30 656
138nec_mp900 MACH_NEC_MP900 NEC_MP900 659 140nec_mp900 MACH_NEC_MP900 NEC_MP900 659
139kafa MACH_KAFA KAFA 662 141kafa MACH_KAFA KAFA 662
142cm41xx MACH_CM41XX CM41XX 672
140ts72xx MACH_TS72XX TS72XX 673 143ts72xx MACH_TS72XX TS72XX 673
141otom MACH_OTOM OTOM 680 144otom MACH_OTOM OTOM 680
142nexcoder_2440 MACH_NEXCODER_2440 NEXCODER_2440 681 145nexcoder_2440 MACH_NEXCODER_2440 NEXCODER_2440 681
@@ -149,6 +152,7 @@ colibri MACH_COLIBRI COLIBRI 729
149gateway7001 MACH_GATEWAY7001 GATEWAY7001 731 152gateway7001 MACH_GATEWAY7001 GATEWAY7001 731
150pcm027 MACH_PCM027 PCM027 732 153pcm027 MACH_PCM027 PCM027 732
151anubis MACH_ANUBIS ANUBIS 734 154anubis MACH_ANUBIS ANUBIS 734
155xboardgp8 MACH_XBOARDGP8 XBOARDGP8 742
152akita MACH_AKITA AKITA 744 156akita MACH_AKITA AKITA 744
153e330 MACH_E330 E330 753 157e330 MACH_E330 E330 753
154nokia770 MACH_NOKIA770 NOKIA770 755 158nokia770 MACH_NOKIA770 NOKIA770 755
@@ -157,9 +161,11 @@ edb9315a MACH_EDB9315A EDB9315A 772
157stargate2 MACH_STARGATE2 STARGATE2 774 161stargate2 MACH_STARGATE2 STARGATE2 774
158intelmote2 MACH_INTELMOTE2 INTELMOTE2 775 162intelmote2 MACH_INTELMOTE2 INTELMOTE2 775
159trizeps4 MACH_TRIZEPS4 TRIZEPS4 776 163trizeps4 MACH_TRIZEPS4 TRIZEPS4 776
164pnx4008 MACH_PNX4008 PNX4008 782
160cpuat91 MACH_CPUAT91 CPUAT91 787 165cpuat91 MACH_CPUAT91 CPUAT91 787
161iq81340sc MACH_IQ81340SC IQ81340SC 799 166iq81340sc MACH_IQ81340SC IQ81340SC 799
162iq81340mc MACH_IQ81340MC IQ81340MC 801 167iq81340mc MACH_IQ81340MC IQ81340MC 801
168se4200 MACH_SE4200 SE4200 809
163micro9 MACH_MICRO9 MICRO9 811 169micro9 MACH_MICRO9 MICRO9 811
164micro9l MACH_MICRO9L MICRO9L 812 170micro9l MACH_MICRO9L MICRO9L 812
165omap_palmte MACH_OMAP_PALMTE OMAP_PALMTE 817 171omap_palmte MACH_OMAP_PALMTE OMAP_PALMTE 817
@@ -178,6 +184,7 @@ mx21ads MACH_MX21ADS MX21ADS 851
178ams_delta MACH_AMS_DELTA AMS_DELTA 862 184ams_delta MACH_AMS_DELTA AMS_DELTA 862
179nas100d MACH_NAS100D NAS100D 865 185nas100d MACH_NAS100D NAS100D 865
180magician MACH_MAGICIAN MAGICIAN 875 186magician MACH_MAGICIAN MAGICIAN 875
187cm4002 MACH_CM4002 CM4002 876
181nxdkn MACH_NXDKN NXDKN 880 188nxdkn MACH_NXDKN NXDKN 880
182palmtx MACH_PALMTX PALMTX 885 189palmtx MACH_PALMTX PALMTX 885
183s3c2413 MACH_S3C2413 S3C2413 887 190s3c2413 MACH_S3C2413 S3C2413 887
@@ -203,7 +210,6 @@ omap_fsample MACH_OMAP_FSAMPLE OMAP_FSAMPLE 970
203snapper_cl15 MACH_SNAPPER_CL15 SNAPPER_CL15 986 210snapper_cl15 MACH_SNAPPER_CL15 SNAPPER_CL15 986
204omap_palmz71 MACH_OMAP_PALMZ71 OMAP_PALMZ71 993 211omap_palmz71 MACH_OMAP_PALMZ71 OMAP_PALMZ71 993
205smdk2412 MACH_SMDK2412 SMDK2412 1009 212smdk2412 MACH_SMDK2412 SMDK2412 1009
206bkde303 MACH_BKDE303 BKDE303 1021
207smdk2413 MACH_SMDK2413 SMDK2413 1022 213smdk2413 MACH_SMDK2413 SMDK2413 1022
208aml_m5900 MACH_AML_M5900 AML_M5900 1024 214aml_m5900 MACH_AML_M5900 AML_M5900 1024
209balloon3 MACH_BALLOON3 BALLOON3 1029 215balloon3 MACH_BALLOON3 BALLOON3 1029
@@ -214,6 +220,7 @@ fsg MACH_FSG FSG 1091
214at91sam9260ek MACH_AT91SAM9260EK AT91SAM9260EK 1099 220at91sam9260ek MACH_AT91SAM9260EK AT91SAM9260EK 1099
215glantank MACH_GLANTANK GLANTANK 1100 221glantank MACH_GLANTANK GLANTANK 1100
216n2100 MACH_N2100 N2100 1101 222n2100 MACH_N2100 N2100 1101
223im42xx MACH_IM42XX IM42XX 1105
217qt2410 MACH_QT2410 QT2410 1108 224qt2410 MACH_QT2410 QT2410 1108
218kixrp435 MACH_KIXRP435 KIXRP435 1109 225kixrp435 MACH_KIXRP435 KIXRP435 1109
219cc9p9360dev MACH_CC9P9360DEV CC9P9360DEV 1114 226cc9p9360dev MACH_CC9P9360DEV CC9P9360DEV 1114
@@ -247,6 +254,7 @@ csb726 MACH_CSB726 CSB726 1359
247davinci_dm6467_evm MACH_DAVINCI_DM6467_EVM DAVINCI_DM6467_EVM 1380 254davinci_dm6467_evm MACH_DAVINCI_DM6467_EVM DAVINCI_DM6467_EVM 1380
248davinci_dm355_evm MACH_DAVINCI_DM355_EVM DAVINCI_DM355_EVM 1381 255davinci_dm355_evm MACH_DAVINCI_DM355_EVM DAVINCI_DM355_EVM 1381
249littleton MACH_LITTLETON LITTLETON 1388 256littleton MACH_LITTLETON LITTLETON 1388
257im4004 MACH_IM4004 IM4004 1400
250realview_pb11mp MACH_REALVIEW_PB11MP REALVIEW_PB11MP 1407 258realview_pb11mp MACH_REALVIEW_PB11MP REALVIEW_PB11MP 1407
251mx27_3ds MACH_MX27_3DS MX27_3DS 1430 259mx27_3ds MACH_MX27_3DS MX27_3DS 1430
252halibut MACH_HALIBUT HALIBUT 1439 260halibut MACH_HALIBUT HALIBUT 1439
@@ -268,6 +276,7 @@ dns323 MACH_DNS323 DNS323 1542
268omap3_beagle MACH_OMAP3_BEAGLE OMAP3_BEAGLE 1546 276omap3_beagle MACH_OMAP3_BEAGLE OMAP3_BEAGLE 1546
269nokia_n810 MACH_NOKIA_N810 NOKIA_N810 1548 277nokia_n810 MACH_NOKIA_N810 NOKIA_N810 1548
270pcm038 MACH_PCM038 PCM038 1551 278pcm038 MACH_PCM038 PCM038 1551
279sg310 MACH_SG310 SG310 1564
271ts209 MACH_TS209 TS209 1565 280ts209 MACH_TS209 TS209 1565
272at91cap9adk MACH_AT91CAP9ADK AT91CAP9ADK 1566 281at91cap9adk MACH_AT91CAP9ADK AT91CAP9ADK 1566
273mx31moboard MACH_MX31MOBOARD MX31MOBOARD 1574 282mx31moboard MACH_MX31MOBOARD MX31MOBOARD 1574
@@ -371,7 +380,6 @@ pcm043 MACH_PCM043 PCM043 2072
371sheevaplug MACH_SHEEVAPLUG SHEEVAPLUG 2097 380sheevaplug MACH_SHEEVAPLUG SHEEVAPLUG 2097
372avengers_lite MACH_AVENGERS_LITE AVENGERS_LITE 2104 381avengers_lite MACH_AVENGERS_LITE AVENGERS_LITE 2104
373mx51_babbage MACH_MX51_BABBAGE MX51_BABBAGE 2125 382mx51_babbage MACH_MX51_BABBAGE MX51_BABBAGE 2125
374tx37 MACH_TX37 TX37 2127
375rd78x00_masa MACH_RD78X00_MASA RD78X00_MASA 2135 383rd78x00_masa MACH_RD78X00_MASA RD78X00_MASA 2135
376dm355_leopard MACH_DM355_LEOPARD DM355_LEOPARD 2138 384dm355_leopard MACH_DM355_LEOPARD DM355_LEOPARD 2138
377ts219 MACH_TS219 TS219 2139 385ts219 MACH_TS219 TS219 2139
@@ -380,12 +388,12 @@ davinci_da850_evm MACH_DAVINCI_DA850_EVM DAVINCI_DA850_EVM 2157
380at91sam9g10ek MACH_AT91SAM9G10EK AT91SAM9G10EK 2159 388at91sam9g10ek MACH_AT91SAM9G10EK AT91SAM9G10EK 2159
381omap_4430sdp MACH_OMAP_4430SDP OMAP_4430SDP 2160 389omap_4430sdp MACH_OMAP_4430SDP OMAP_4430SDP 2160
382magx_zn5 MACH_MAGX_ZN5 MAGX_ZN5 2162 390magx_zn5 MACH_MAGX_ZN5 MAGX_ZN5 2162
383tx25 MACH_TX25 TX25 2177
384omap3_torpedo MACH_OMAP3_TORPEDO OMAP3_TORPEDO 2178 391omap3_torpedo MACH_OMAP3_TORPEDO OMAP3_TORPEDO 2178
385anw6410 MACH_ANW6410 ANW6410 2183 392anw6410 MACH_ANW6410 ANW6410 2183
386imx27_visstrim_m10 MACH_IMX27_VISSTRIM_M10 IMX27_VISSTRIM_M10 2187 393imx27_visstrim_m10 MACH_IMX27_VISSTRIM_M10 IMX27_VISSTRIM_M10 2187
387portuxg20 MACH_PORTUXG20 PORTUXG20 2191 394portuxg20 MACH_PORTUXG20 PORTUXG20 2191
388smdkc110 MACH_SMDKC110 SMDKC110 2193 395smdkc110 MACH_SMDKC110 SMDKC110 2193
396cabespresso MACH_CABESPRESSO CABESPRESSO 2194
389omap3517evm MACH_OMAP3517EVM OMAP3517EVM 2200 397omap3517evm MACH_OMAP3517EVM OMAP3517EVM 2200
390netspace_v2 MACH_NETSPACE_V2 NETSPACE_V2 2201 398netspace_v2 MACH_NETSPACE_V2 NETSPACE_V2 2201
391netspace_max_v2 MACH_NETSPACE_MAX_V2 NETSPACE_MAX_V2 2202 399netspace_max_v2 MACH_NETSPACE_MAX_V2 NETSPACE_MAX_V2 2202
@@ -404,6 +412,7 @@ bigdisk MACH_BIGDISK BIGDISK 2283
404at91sam9g20ek_2mmc MACH_AT91SAM9G20EK_2MMC AT91SAM9G20EK_2MMC 2288 412at91sam9g20ek_2mmc MACH_AT91SAM9G20EK_2MMC AT91SAM9G20EK_2MMC 2288
405bcmring MACH_BCMRING BCMRING 2289 413bcmring MACH_BCMRING BCMRING 2289
406mahimahi MACH_MAHIMAHI MAHIMAHI 2304 414mahimahi MACH_MAHIMAHI MAHIMAHI 2304
415cerebric MACH_CEREBRIC CEREBRIC 2311
407smdk6442 MACH_SMDK6442 SMDK6442 2324 416smdk6442 MACH_SMDK6442 SMDK6442 2324
408openrd_base MACH_OPENRD_BASE OPENRD_BASE 2325 417openrd_base MACH_OPENRD_BASE OPENRD_BASE 2325
409devkit8000 MACH_DEVKIT8000 DEVKIT8000 2330 418devkit8000 MACH_DEVKIT8000 DEVKIT8000 2330
@@ -423,10 +432,10 @@ raumfeld_rc MACH_RAUMFELD_RC RAUMFELD_RC 2413
423raumfeld_connector MACH_RAUMFELD_CONNECTOR RAUMFELD_CONNECTOR 2414 432raumfeld_connector MACH_RAUMFELD_CONNECTOR RAUMFELD_CONNECTOR 2414
424raumfeld_speaker MACH_RAUMFELD_SPEAKER RAUMFELD_SPEAKER 2415 433raumfeld_speaker MACH_RAUMFELD_SPEAKER RAUMFELD_SPEAKER 2415
425tnetv107x MACH_TNETV107X TNETV107X 2418 434tnetv107x MACH_TNETV107X TNETV107X 2418
426mx51_m2id MACH_MX51_M2ID MX51_M2ID 2428
427smdkv210 MACH_SMDKV210 SMDKV210 2456 435smdkv210 MACH_SMDKV210 SMDKV210 2456
428omap_zoom3 MACH_OMAP_ZOOM3 OMAP_ZOOM3 2464 436omap_zoom3 MACH_OMAP_ZOOM3 OMAP_ZOOM3 2464
429omap_3630sdp MACH_OMAP_3630SDP OMAP_3630SDP 2465 437omap_3630sdp MACH_OMAP_3630SDP OMAP_3630SDP 2465
438cybook2440 MACH_CYBOOK2440 CYBOOK2440 2466
430smartq7 MACH_SMARTQ7 SMARTQ7 2479 439smartq7 MACH_SMARTQ7 SMARTQ7 2479
431watson_efm_plugin MACH_WATSON_EFM_PLUGIN WATSON_EFM_PLUGIN 2491 440watson_efm_plugin MACH_WATSON_EFM_PLUGIN WATSON_EFM_PLUGIN 2491
432g4evm MACH_G4EVM G4EVM 2493 441g4evm MACH_G4EVM G4EVM 2493
@@ -434,12 +443,10 @@ omapl138_hawkboard MACH_OMAPL138_HAWKBOARD OMAPL138_HAWKBOARD 2495
434ts41x MACH_TS41X TS41X 2502 443ts41x MACH_TS41X TS41X 2502
435phy3250 MACH_PHY3250 PHY3250 2511 444phy3250 MACH_PHY3250 PHY3250 2511
436mini6410 MACH_MINI6410 MINI6410 2520 445mini6410 MACH_MINI6410 MINI6410 2520
437tx51 MACH_TX51 TX51 2529
438mx28evk MACH_MX28EVK MX28EVK 2531 446mx28evk MACH_MX28EVK MX28EVK 2531
439smartq5 MACH_SMARTQ5 SMARTQ5 2534 447smartq5 MACH_SMARTQ5 SMARTQ5 2534
440davinci_dm6467tevm MACH_DAVINCI_DM6467TEVM DAVINCI_DM6467TEVM 2548 448davinci_dm6467tevm MACH_DAVINCI_DM6467TEVM DAVINCI_DM6467TEVM 2548
441mxt_td60 MACH_MXT_TD60 MXT_TD60 2550 449mxt_td60 MACH_MXT_TD60 MXT_TD60 2550
442pca101 MACH_PCA101 PCA101 2595
443capc7117 MACH_CAPC7117 CAPC7117 2612 450capc7117 MACH_CAPC7117 CAPC7117 2612
444icontrol MACH_ICONTROL ICONTROL 2624 451icontrol MACH_ICONTROL ICONTROL 2624
445gplugd MACH_GPLUGD GPLUGD 2625 452gplugd MACH_GPLUGD GPLUGD 2625
@@ -465,6 +472,7 @@ igep0030 MACH_IGEP0030 IGEP0030 2717
465sbc3530 MACH_SBC3530 SBC3530 2722 472sbc3530 MACH_SBC3530 SBC3530 2722
466saarb MACH_SAARB SAARB 2727 473saarb MACH_SAARB SAARB 2727
467harmony MACH_HARMONY HARMONY 2731 474harmony MACH_HARMONY HARMONY 2731
475cybook_orizon MACH_CYBOOK_ORIZON CYBOOK_ORIZON 2733
468msm7x30_fluid MACH_MSM7X30_FLUID MSM7X30_FLUID 2741 476msm7x30_fluid MACH_MSM7X30_FLUID MSM7X30_FLUID 2741
469cm_t3517 MACH_CM_T3517 CM_T3517 2750 477cm_t3517 MACH_CM_T3517 CM_T3517 2750
470wbd222 MACH_WBD222 WBD222 2753 478wbd222 MACH_WBD222 WBD222 2753
@@ -480,10 +488,8 @@ eukrea_cpuimx35sd MACH_EUKREA_CPUIMX35SD EUKREA_CPUIMX35SD 2821
480eukrea_cpuimx51sd MACH_EUKREA_CPUIMX51SD EUKREA_CPUIMX51SD 2822 488eukrea_cpuimx51sd MACH_EUKREA_CPUIMX51SD EUKREA_CPUIMX51SD 2822
481eukrea_cpuimx51 MACH_EUKREA_CPUIMX51 EUKREA_CPUIMX51 2823 489eukrea_cpuimx51 MACH_EUKREA_CPUIMX51 EUKREA_CPUIMX51 2823
482smdkc210 MACH_SMDKC210 SMDKC210 2838 490smdkc210 MACH_SMDKC210 SMDKC210 2838
483pcaal1 MACH_PCAAL1 PCAAL1 2843
484t5325 MACH_T5325 T5325 2846 491t5325 MACH_T5325 T5325 2846
485income MACH_INCOME INCOME 2849 492income MACH_INCOME INCOME 2849
486mx257sx MACH_MX257SX MX257SX 2861
487goni MACH_GONI GONI 2862 493goni MACH_GONI GONI 2862
488bv07 MACH_BV07 BV07 2882 494bv07 MACH_BV07 BV07 2882
489openrd_ultimate MACH_OPENRD_ULTIMATE OPENRD_ULTIMATE 2884 495openrd_ultimate MACH_OPENRD_ULTIMATE OPENRD_ULTIMATE 2884
@@ -491,7 +497,6 @@ devixp MACH_DEVIXP DEVIXP 2885
491miccpt MACH_MICCPT MICCPT 2886 497miccpt MACH_MICCPT MICCPT 2886
492mic256 MACH_MIC256 MIC256 2887 498mic256 MACH_MIC256 MIC256 2887
493u5500 MACH_U5500 U5500 2890 499u5500 MACH_U5500 U5500 2890
494pov15hd MACH_POV15HD POV15HD 2910
495linkstation_lschl MACH_LINKSTATION_LSCHL LINKSTATION_LSCHL 2913 500linkstation_lschl MACH_LINKSTATION_LSCHL LINKSTATION_LSCHL 2913
496smdkv310 MACH_SMDKV310 SMDKV310 2925 501smdkv310 MACH_SMDKV310 SMDKV310 2925
497wm8505_7in_netbook MACH_WM8505_7IN_NETBOOK WM8505_7IN_NETBOOK 2928 502wm8505_7in_netbook MACH_WM8505_7IN_NETBOOK WM8505_7IN_NETBOOK 2928
@@ -518,7 +523,6 @@ prima2_evb MACH_PRIMA2_EVB PRIMA2_EVB 3103
518paz00 MACH_PAZ00 PAZ00 3128 523paz00 MACH_PAZ00 PAZ00 3128
519acmenetusfoxg20 MACH_ACMENETUSFOXG20 ACMENETUSFOXG20 3129 524acmenetusfoxg20 MACH_ACMENETUSFOXG20 ACMENETUSFOXG20 3129
520ag5evm MACH_AG5EVM AG5EVM 3189 525ag5evm MACH_AG5EVM AG5EVM 3189
521tsunagi MACH_TSUNAGI TSUNAGI 3197
522ics_if_voip MACH_ICS_IF_VOIP ICS_IF_VOIP 3206 526ics_if_voip MACH_ICS_IF_VOIP ICS_IF_VOIP 3206
523wlf_cragg_6410 MACH_WLF_CRAGG_6410 WLF_CRAGG_6410 3207 527wlf_cragg_6410 MACH_WLF_CRAGG_6410 WLF_CRAGG_6410 3207
524trimslice MACH_TRIMSLICE TRIMSLICE 3209 528trimslice MACH_TRIMSLICE TRIMSLICE 3209
@@ -529,8 +533,6 @@ msm8960_sim MACH_MSM8960_SIM MSM8960_SIM 3230
529msm8960_rumi3 MACH_MSM8960_RUMI3 MSM8960_RUMI3 3231 533msm8960_rumi3 MACH_MSM8960_RUMI3 MSM8960_RUMI3 3231
530gsia18s MACH_GSIA18S GSIA18S 3234 534gsia18s MACH_GSIA18S GSIA18S 3234
531mx53_loco MACH_MX53_LOCO MX53_LOCO 3273 535mx53_loco MACH_MX53_LOCO MX53_LOCO 3273
532tx53 MACH_TX53 TX53 3279
533encore MACH_ENCORE ENCORE 3284
534wario MACH_WARIO WARIO 3288 536wario MACH_WARIO WARIO 3288
535cm_t3730 MACH_CM_T3730 CM_T3730 3290 537cm_t3730 MACH_CM_T3730 CM_T3730 3290
536hrefv60 MACH_HREFV60 HREFV60 3293 538hrefv60 MACH_HREFV60 HREFV60 3293
@@ -538,603 +540,24 @@ armlex4210 MACH_ARMLEX4210 ARMLEX4210 3361
538snowball MACH_SNOWBALL SNOWBALL 3363 540snowball MACH_SNOWBALL SNOWBALL 3363
539xilinx_ep107 MACH_XILINX_EP107 XILINX_EP107 3378 541xilinx_ep107 MACH_XILINX_EP107 XILINX_EP107 3378
540nuri MACH_NURI NURI 3379 542nuri MACH_NURI NURI 3379
541wtplug MACH_WTPLUG WTPLUG 3412
542veridis_a300 MACH_VERIDIS_A300 VERIDIS_A300 3448
543origen MACH_ORIGEN ORIGEN 3455 543origen MACH_ORIGEN ORIGEN 3455
544wm8650refboard MACH_WM8650REFBOARD WM8650REFBOARD 3472
545xarina MACH_XARINA XARINA 3476
546sdvr MACH_SDVR SDVR 3478
547acer_maya MACH_ACER_MAYA ACER_MAYA 3479
548pico MACH_PICO PICO 3480
549cwmx233 MACH_CWMX233 CWMX233 3481
550cwam1808 MACH_CWAM1808 CWAM1808 3482
551cwdm365 MACH_CWDM365 CWDM365 3483
552mx51_moray MACH_MX51_MORAY MX51_MORAY 3484
553thales_cbc MACH_THALES_CBC THALES_CBC 3485
554bluepoint MACH_BLUEPOINT BLUEPOINT 3486
555dir665 MACH_DIR665 DIR665 3487
556acmerover1 MACH_ACMEROVER1 ACMEROVER1 3488
557shooter_ct MACH_SHOOTER_CT SHOOTER_CT 3489
558bliss MACH_BLISS BLISS 3490
559blissc MACH_BLISSC BLISSC 3491
560thales_adc MACH_THALES_ADC THALES_ADC 3492
561ubisys_p9d_evp MACH_UBISYS_P9D_EVP UBISYS_P9D_EVP 3493
562atdgp318 MACH_ATDGP318 ATDGP318 3494
563dma210u MACH_DMA210U DMA210U 3495
564em_t3 MACH_EM_T3 EM_T3 3496
565htx3250 MACH_HTX3250 HTX3250 3497
566g50 MACH_G50 G50 3498
567eco5 MACH_ECO5 ECO5 3499
568wintergrasp MACH_WINTERGRASP WINTERGRASP 3500
569puro MACH_PURO PURO 3501
570shooter_k MACH_SHOOTER_K SHOOTER_K 3502
571nspire MACH_NSPIRE NSPIRE 3503 544nspire MACH_NSPIRE NSPIRE 3503
572mickxx MACH_MICKXX MICKXX 3504
573lxmb MACH_LXMB LXMB 3505
574adam MACH_ADAM ADAM 3507
575b1004 MACH_B1004 B1004 3508
576oboea MACH_OBOEA OBOEA 3509
577a1015 MACH_A1015 A1015 3510
578robin_vbdt30 MACH_ROBIN_VBDT30 ROBIN_VBDT30 3511
579tegra_enterprise MACH_TEGRA_ENTERPRISE TEGRA_ENTERPRISE 3512
580rfl108200_mk10 MACH_RFL108200_MK10 RFL108200_MK10 3513
581rfl108300_mk16 MACH_RFL108300_MK16 RFL108300_MK16 3514
582rover_v7 MACH_ROVER_V7 ROVER_V7 3515
583miphone MACH_MIPHONE MIPHONE 3516
584femtobts MACH_FEMTOBTS FEMTOBTS 3517
585monopoli MACH_MONOPOLI MONOPOLI 3518
586boss MACH_BOSS BOSS 3519
587davinci_dm368_vtam MACH_DAVINCI_DM368_VTAM DAVINCI_DM368_VTAM 3520
588clcon MACH_CLCON CLCON 3521
589nokia_rm696 MACH_NOKIA_RM696 NOKIA_RM696 3522 545nokia_rm696 MACH_NOKIA_RM696 NOKIA_RM696 3522
590tahiti MACH_TAHITI TAHITI 3523
591fighter MACH_FIGHTER FIGHTER 3524
592sgh_i710 MACH_SGH_I710 SGH_I710 3525
593integreproscb MACH_INTEGREPROSCB INTEGREPROSCB 3526
594monza MACH_MONZA MONZA 3527
595calimain MACH_CALIMAIN CALIMAIN 3528
596mx6q_sabreauto MACH_MX6Q_SABREAUTO MX6Q_SABREAUTO 3529
597gma01x MACH_GMA01X GMA01X 3530
598sbc51 MACH_SBC51 SBC51 3531
599fit MACH_FIT FIT 3532
600steelhead MACH_STEELHEAD STEELHEAD 3533
601panther MACH_PANTHER PANTHER 3534
602msm8960_liquid MACH_MSM8960_LIQUID MSM8960_LIQUID 3535
603lexikonct MACH_LEXIKONCT LEXIKONCT 3536
604ns2816_stb MACH_NS2816_STB NS2816_STB 3537
605sei_mm2_lpc3250 MACH_SEI_MM2_LPC3250 SEI_MM2_LPC3250 3538
606cmimx53 MACH_CMIMX53 CMIMX53 3539
607sandwich MACH_SANDWICH SANDWICH 3540
608chief MACH_CHIEF CHIEF 3541
609pogo_e02 MACH_POGO_E02 POGO_E02 3542
610mikrap_x168 MACH_MIKRAP_X168 MIKRAP_X168 3543 546mikrap_x168 MACH_MIKRAP_X168 MIKRAP_X168 3543
611htcmozart MACH_HTCMOZART HTCMOZART 3544
612htcgold MACH_HTCGOLD HTCGOLD 3545
613mt72xx MACH_MT72XX MT72XX 3546
614mx51_ivy MACH_MX51_IVY MX51_IVY 3547
615mx51_lvd MACH_MX51_LVD MX51_LVD 3548
616omap3_wiser2 MACH_OMAP3_WISER2 OMAP3_WISER2 3549
617dreamplug MACH_DREAMPLUG DREAMPLUG 3550
618cobas_c_111 MACH_COBAS_C_111 COBAS_C_111 3551
619cobas_u_411 MACH_COBAS_U_411 COBAS_U_411 3552
620hssd MACH_HSSD HSSD 3553
621iom35x MACH_IOM35X IOM35X 3554
622psom_omap MACH_PSOM_OMAP PSOM_OMAP 3555
623iphone_2g MACH_IPHONE_2G IPHONE_2G 3556
624iphone_3g MACH_IPHONE_3G IPHONE_3G 3557
625ipod_touch_1g MACH_IPOD_TOUCH_1G IPOD_TOUCH_1G 3558
626pharos_tpc MACH_PHAROS_TPC PHAROS_TPC 3559
627mx53_hydra MACH_MX53_HYDRA MX53_HYDRA 3560
628ns2816_dev_board MACH_NS2816_DEV_BOARD NS2816_DEV_BOARD 3561
629iphone_3gs MACH_IPHONE_3GS IPHONE_3GS 3562
630iphone_4 MACH_IPHONE_4 IPHONE_4 3563
631ipod_touch_4g MACH_IPOD_TOUCH_4G IPOD_TOUCH_4G 3564
632dragon_e1100 MACH_DRAGON_E1100 DRAGON_E1100 3565
633topside MACH_TOPSIDE TOPSIDE 3566
634irisiii MACH_IRISIII IRISIII 3567
635deto_macarm9 MACH_DETO_MACARM9 DETO_MACARM9 3568 547deto_macarm9 MACH_DETO_MACARM9 DETO_MACARM9 3568
636eti_d1 MACH_ETI_D1 ETI_D1 3569
637som3530sdk MACH_SOM3530SDK SOM3530SDK 3570
638oc_engine MACH_OC_ENGINE OC_ENGINE 3571
639apq8064_sim MACH_APQ8064_SIM APQ8064_SIM 3572
640alps MACH_ALPS ALPS 3575
641tny_t3730 MACH_TNY_T3730 TNY_T3730 3576
642geryon_nfe MACH_GERYON_NFE GERYON_NFE 3577
643ns2816_ref_board MACH_NS2816_REF_BOARD NS2816_REF_BOARD 3578
644silverstone MACH_SILVERSTONE SILVERSTONE 3579
645mtt2440 MACH_MTT2440 MTT2440 3580
646ynicdb MACH_YNICDB YNICDB 3581
647bct MACH_BCT BCT 3582
648tuscan MACH_TUSCAN TUSCAN 3583
649xbt_sam9g45 MACH_XBT_SAM9G45 XBT_SAM9G45 3584
650enbw_cmc MACH_ENBW_CMC ENBW_CMC 3585
651ch104mx257 MACH_CH104MX257 CH104MX257 3587
652openpri MACH_OPENPRI OPENPRI 3588
653am335xevm MACH_AM335XEVM AM335XEVM 3589
654picodmb MACH_PICODMB PICODMB 3590
655waluigi MACH_WALUIGI WALUIGI 3591
656punicag7 MACH_PUNICAG7 PUNICAG7 3592
657ipad_1g MACH_IPAD_1G IPAD_1G 3593
658appletv_2g MACH_APPLETV_2G APPLETV_2G 3594
659mach_ecog45 MACH_MACH_ECOG45 MACH_ECOG45 3595
660ait_cam_enc_4xx MACH_AIT_CAM_ENC_4XX AIT_CAM_ENC_4XX 3596
661runnymede MACH_RUNNYMEDE RUNNYMEDE 3597
662play MACH_PLAY PLAY 3598
663hw90260 MACH_HW90260 HW90260 3599
664tagh MACH_TAGH TAGH 3600
665filbert MACH_FILBERT FILBERT 3601
666getinge_netcomv3 MACH_GETINGE_NETCOMV3 GETINGE_NETCOMV3 3602
667cw20 MACH_CW20 CW20 3603
668cinema MACH_CINEMA CINEMA 3604
669cinema_tea MACH_CINEMA_TEA CINEMA_TEA 3605
670cinema_coffee MACH_CINEMA_COFFEE CINEMA_COFFEE 3606
671cinema_juice MACH_CINEMA_JUICE CINEMA_JUICE 3607
672mx53_mirage2 MACH_MX53_MIRAGE2 MX53_MIRAGE2 3609
673mx53_efikasb MACH_MX53_EFIKASB MX53_EFIKASB 3610
674stm_b2000 MACH_STM_B2000 STM_B2000 3612
675m28evk MACH_M28EVK M28EVK 3613 548m28evk MACH_M28EVK M28EVK 3613
676pda MACH_PDA PDA 3614
677meraki_mr58 MACH_MERAKI_MR58 MERAKI_MR58 3615
678kota2 MACH_KOTA2 KOTA2 3616 549kota2 MACH_KOTA2 KOTA2 3616
679letcool MACH_LETCOOL LETCOOL 3617
680mx27iat MACH_MX27IAT MX27IAT 3618
681apollo_td MACH_APOLLO_TD APOLLO_TD 3619
682arena MACH_ARENA ARENA 3620
683gsngateway MACH_GSNGATEWAY GSNGATEWAY 3621
684lf2000 MACH_LF2000 LF2000 3622
685bonito MACH_BONITO BONITO 3623 550bonito MACH_BONITO BONITO 3623
686asymptote MACH_ASYMPTOTE ASYMPTOTE 3624
687bst2brd MACH_BST2BRD BST2BRD 3625
688tx335s MACH_TX335S TX335S 3626
689pelco_tesla MACH_PELCO_TESLA PELCO_TESLA 3627
690rrhtestplat MACH_RRHTESTPLAT RRHTESTPLAT 3628
691vidtonic_pro MACH_VIDTONIC_PRO VIDTONIC_PRO 3629
692pl_apollo MACH_PL_APOLLO PL_APOLLO 3630
693pl_phoenix MACH_PL_PHOENIX PL_PHOENIX 3631
694m28cu3 MACH_M28CU3 M28CU3 3632
695vvbox_hd MACH_VVBOX_HD VVBOX_HD 3633
696coreware_sam9260_ MACH_COREWARE_SAM9260_ COREWARE_SAM9260_ 3634
697marmaduke MACH_MARMADUKE MARMADUKE 3635
698amg_xlcore_camera MACH_AMG_XLCORE_CAMERA AMG_XLCORE_CAMERA 3636
699omap3_egf MACH_OMAP3_EGF OMAP3_EGF 3637 551omap3_egf MACH_OMAP3_EGF OMAP3_EGF 3637
700smdk4212 MACH_SMDK4212 SMDK4212 3638 552smdk4212 MACH_SMDK4212 SMDK4212 3638
701dnp9200 MACH_DNP9200 DNP9200 3639
702tf101 MACH_TF101 TF101 3640
703omap3silvio MACH_OMAP3SILVIO OMAP3SILVIO 3641
704picasso2 MACH_PICASSO2 PICASSO2 3642
705vangogh2 MACH_VANGOGH2 VANGOGH2 3643
706olpc_xo_1_75 MACH_OLPC_XO_1_75 OLPC_XO_1_75 3644
707gx400 MACH_GX400 GX400 3645
708gs300 MACH_GS300 GS300 3646
709acer_a9 MACH_ACER_A9 ACER_A9 3647
710vivow_evm MACH_VIVOW_EVM VIVOW_EVM 3648
711veloce_cxq MACH_VELOCE_CXQ VELOCE_CXQ 3649
712veloce_cxm MACH_VELOCE_CXM VELOCE_CXM 3650
713p1852 MACH_P1852 P1852 3651
714naxy100 MACH_NAXY100 NAXY100 3652
715taishan MACH_TAISHAN TAISHAN 3653
716touchlink MACH_TOUCHLINK TOUCHLINK 3654
717stm32f103ze MACH_STM32F103ZE STM32F103ZE 3655
718mcx MACH_MCX MCX 3656
719stm_nmhdk_fli7610 MACH_STM_NMHDK_FLI7610 STM_NMHDK_FLI7610 3657
720top28x MACH_TOP28X TOP28X 3658
721okl4vp_microvisor MACH_OKL4VP_MICROVISOR OKL4VP_MICROVISOR 3659
722pop MACH_POP POP 3660
723layer MACH_LAYER LAYER 3661
724trondheim MACH_TRONDHEIM TRONDHEIM 3662
725eva MACH_EVA EVA 3663
726trust_taurus MACH_TRUST_TAURUS TRUST_TAURUS 3664
727ns2816_huashan MACH_NS2816_HUASHAN NS2816_HUASHAN 3665
728ns2816_yangcheng MACH_NS2816_YANGCHENG NS2816_YANGCHENG 3666
729p852 MACH_P852 P852 3667
730flea3 MACH_FLEA3 FLEA3 3668
731bowfin MACH_BOWFIN BOWFIN 3669
732mv88de3100 MACH_MV88DE3100 MV88DE3100 3670
733pia_am35x MACH_PIA_AM35X PIA_AM35X 3671
734cedar MACH_CEDAR CEDAR 3672
735picasso_e MACH_PICASSO_E PICASSO_E 3673
736samsung_e60 MACH_SAMSUNG_E60 SAMSUNG_E60 3674
737sdvr_mini MACH_SDVR_MINI SDVR_MINI 3676
738omap3_ij3k MACH_OMAP3_IJ3K OMAP3_IJ3K 3677
739modasmc1 MACH_MODASMC1 MODASMC1 3678
740apq8064_rumi3 MACH_APQ8064_RUMI3 APQ8064_RUMI3 3679
741matrix506 MACH_MATRIX506 MATRIX506 3680
742msm9615_mtp MACH_MSM9615_MTP MSM9615_MTP 3681
743dm36x_spawndc MACH_DM36X_SPAWNDC DM36X_SPAWNDC 3682
744sff792 MACH_SFF792 SFF792 3683
745am335xiaevm MACH_AM335XIAEVM AM335XIAEVM 3684
746g3c2440 MACH_G3C2440 G3C2440 3685
747tion270 MACH_TION270 TION270 3686
748w22q7arm02 MACH_W22Q7ARM02 W22Q7ARM02 3687
749omap_cat MACH_OMAP_CAT OMAP_CAT 3688
750at91sam9n12ek MACH_AT91SAM9N12EK AT91SAM9N12EK 3689
751morrison MACH_MORRISON MORRISON 3690
752svdu MACH_SVDU SVDU 3691
753lpp01 MACH_LPP01 LPP01 3692
754ubc283 MACH_UBC283 UBC283 3693
755zeppelin MACH_ZEPPELIN ZEPPELIN 3694
756motus MACH_MOTUS MOTUS 3695
757neomainboard MACH_NEOMAINBOARD NEOMAINBOARD 3696
758devkit3250 MACH_DEVKIT3250 DEVKIT3250 3697
759devkit7000 MACH_DEVKIT7000 DEVKIT7000 3698
760fmc_uic MACH_FMC_UIC FMC_UIC 3699
761fmc_dcm MACH_FMC_DCM FMC_DCM 3700
762batwm MACH_BATWM BATWM 3701
763atlas6cb MACH_ATLAS6CB ATLAS6CB 3702
764blue MACH_BLUE BLUE 3705
765colorado MACH_COLORADO COLORADO 3706
766popc MACH_POPC POPC 3707
767promwad_jade MACH_PROMWAD_JADE PROMWAD_JADE 3708
768amp MACH_AMP AMP 3709
769gnet_amp MACH_GNET_AMP GNET_AMP 3710
770toques MACH_TOQUES TOQUES 3711
771apx4devkit MACH_APX4DEVKIT APX4DEVKIT 3712 553apx4devkit MACH_APX4DEVKIT APX4DEVKIT 3712
772dct_storm MACH_DCT_STORM DCT_STORM 3713
773owl MACH_OWL OWL 3715
774cogent_csb1741 MACH_COGENT_CSB1741 COGENT_CSB1741 3716
775adillustra610 MACH_ADILLUSTRA610 ADILLUSTRA610 3718
776ecafe_na04 MACH_ECAFE_NA04 ECAFE_NA04 3719
777popct MACH_POPCT POPCT 3720
778omap3_helena MACH_OMAP3_HELENA OMAP3_HELENA 3721
779ach MACH_ACH ACH 3722
780module_dtb MACH_MODULE_DTB MODULE_DTB 3723
781oslo_elisabeth MACH_OSLO_ELISABETH OSLO_ELISABETH 3725
782tt01 MACH_TT01 TT01 3726
783msm8930_cdp MACH_MSM8930_CDP MSM8930_CDP 3727
784msm8930_mtp MACH_MSM8930_MTP MSM8930_MTP 3728
785msm8930_fluid MACH_MSM8930_FLUID MSM8930_FLUID 3729
786ltu11 MACH_LTU11 LTU11 3730
787am1808_spawnco MACH_AM1808_SPAWNCO AM1808_SPAWNCO 3731
788flx6410 MACH_FLX6410 FLX6410 3732
789mx6q_qsb MACH_MX6Q_QSB MX6Q_QSB 3733
790mx53_plt424 MACH_MX53_PLT424 MX53_PLT424 3734
791jasmine MACH_JASMINE JASMINE 3735
792l138_owlboard_plus MACH_L138_OWLBOARD_PLUS L138_OWLBOARD_PLUS 3736
793wr21 MACH_WR21 WR21 3737
794peaboy MACH_PEABOY PEABOY 3739
795mx28_plato MACH_MX28_PLATO MX28_PLATO 3740
796kacom2 MACH_KACOM2 KACOM2 3741
797slco MACH_SLCO SLCO 3742
798imx51pico MACH_IMX51PICO IMX51PICO 3743
799glink1 MACH_GLINK1 GLINK1 3744
800diamond MACH_DIAMOND DIAMOND 3745
801d9000 MACH_D9000 D9000 3746
802w5300e01 MACH_W5300E01 W5300E01 3747
803im6000 MACH_IM6000 IM6000 3748
804mx51_fred51 MACH_MX51_FRED51 MX51_FRED51 3749
805stm32f2 MACH_STM32F2 STM32F2 3750
806ville MACH_VILLE VILLE 3751
807ptip_murnau MACH_PTIP_MURNAU PTIP_MURNAU 3752
808ptip_classic MACH_PTIP_CLASSIC PTIP_CLASSIC 3753
809mx53grb MACH_MX53GRB MX53GRB 3754
810gagarin MACH_GAGARIN GAGARIN 3755
811nas2big MACH_NAS2BIG NAS2BIG 3757
812superfemto MACH_SUPERFEMTO SUPERFEMTO 3758
813teufel MACH_TEUFEL TEUFEL 3759
814dinara MACH_DINARA DINARA 3760
815vanquish MACH_VANQUISH VANQUISH 3761
816zipabox1 MACH_ZIPABOX1 ZIPABOX1 3762
817u9540 MACH_U9540 U9540 3763
818jet MACH_JET JET 3764
819smdk4412 MACH_SMDK4412 SMDK4412 3765 554smdk4412 MACH_SMDK4412 SMDK4412 3765
820elite MACH_ELITE ELITE 3766
821spear320_hmi MACH_SPEAR320_HMI SPEAR320_HMI 3767
822ontario MACH_ONTARIO ONTARIO 3768
823mx6q_sabrelite MACH_MX6Q_SABRELITE MX6Q_SABRELITE 3769
824vc200 MACH_VC200 VC200 3770
825msm7625a_ffa MACH_MSM7625A_FFA MSM7625A_FFA 3771
826msm7625a_surf MACH_MSM7625A_SURF MSM7625A_SURF 3772
827benthossbp MACH_BENTHOSSBP BENTHOSSBP 3773
828smdk5210 MACH_SMDK5210 SMDK5210 3774
829empq2300 MACH_EMPQ2300 EMPQ2300 3775
830minipos MACH_MINIPOS MINIPOS 3776
831omap5_sevm MACH_OMAP5_SEVM OMAP5_SEVM 3777
832shelter MACH_SHELTER SHELTER 3778
833omap3_devkit8500 MACH_OMAP3_DEVKIT8500 OMAP3_DEVKIT8500 3779
834edgetd MACH_EDGETD EDGETD 3780
835copperyard MACH_COPPERYARD COPPERYARD 3781
836edge_u MACH_EDGE_U EDGE_U 3783
837edge_td MACH_EDGE_TD EDGE_TD 3784
838wdss MACH_WDSS WDSS 3785
839dl_pb25 MACH_DL_PB25 DL_PB25 3786
840dss11 MACH_DSS11 DSS11 3787
841cpa MACH_CPA CPA 3788
842aptp2000 MACH_APTP2000 APTP2000 3789
843marzen MACH_MARZEN MARZEN 3790 555marzen MACH_MARZEN MARZEN 3790
844st_turbine MACH_ST_TURBINE ST_TURBINE 3791
845gtl_it3300 MACH_GTL_IT3300 GTL_IT3300 3792
846mx6_mule MACH_MX6_MULE MX6_MULE 3793
847v7pxa_dt MACH_V7PXA_DT V7PXA_DT 3794
848v7mmp_dt MACH_V7MMP_DT V7MMP_DT 3795
849dragon7 MACH_DRAGON7 DRAGON7 3796
850krome MACH_KROME KROME 3797 556krome MACH_KROME KROME 3797
851oratisdante MACH_ORATISDANTE ORATISDANTE 3798
852fathom MACH_FATHOM FATHOM 3799
853dns325 MACH_DNS325 DNS325 3800
854sarnen MACH_SARNEN SARNEN 3801
855ubisys_g1 MACH_UBISYS_G1 UBISYS_G1 3802
856mx53_pf1 MACH_MX53_PF1 MX53_PF1 3803
857asanti MACH_ASANTI ASANTI 3804
858volta MACH_VOLTA VOLTA 3805
859knight MACH_KNIGHT KNIGHT 3807
860beaglebone MACH_BEAGLEBONE BEAGLEBONE 3808
861becker MACH_BECKER BECKER 3809
862fc360 MACH_FC360 FC360 3810
863pmi2_xls MACH_PMI2_XLS PMI2_XLS 3811
864taranto MACH_TARANTO TARANTO 3812
865plutux MACH_PLUTUX PLUTUX 3813
866ipmp_medcom MACH_IPMP_MEDCOM IPMP_MEDCOM 3814
867absolut MACH_ABSOLUT ABSOLUT 3815
868awpb3 MACH_AWPB3 AWPB3 3816
869nfp32xx_dt MACH_NFP32XX_DT NFP32XX_DT 3817
870dl_pb53 MACH_DL_PB53 DL_PB53 3818
871acu_ii MACH_ACU_II ACU_II 3819
872avalon MACH_AVALON AVALON 3820
873sphinx MACH_SPHINX SPHINX 3821
874titan_t MACH_TITAN_T TITAN_T 3822
875harvest_boris MACH_HARVEST_BORIS HARVEST_BORIS 3823
876mach_msm7x30_m3s MACH_MACH_MSM7X30_M3S MACH_MSM7X30_M3S 3824
877smdk5250 MACH_SMDK5250 SMDK5250 3825
878imxt_lite MACH_IMXT_LITE IMXT_LITE 3826
879imxt_std MACH_IMXT_STD IMXT_STD 3827
880imxt_log MACH_IMXT_LOG IMXT_LOG 3828
881imxt_nav MACH_IMXT_NAV IMXT_NAV 3829
882imxt_full MACH_IMXT_FULL IMXT_FULL 3830
883ag09015 MACH_AG09015 AG09015 3831
884am3517_mt_ventoux MACH_AM3517_MT_VENTOUX AM3517_MT_VENTOUX 3832
885dp1arm9 MACH_DP1ARM9 DP1ARM9 3833
886picasso_m MACH_PICASSO_M PICASSO_M 3834
887video_gadget MACH_VIDEO_GADGET VIDEO_GADGET 3835
888mtt_om3x MACH_MTT_OM3X MTT_OM3X 3836
889mx6q_arm2 MACH_MX6Q_ARM2 MX6Q_ARM2 3837
890picosam9g45 MACH_PICOSAM9G45 PICOSAM9G45 3838
891vpm_dm365 MACH_VPM_DM365 VPM_DM365 3839
892bonfire MACH_BONFIRE BONFIRE 3840
893mt2p2d MACH_MT2P2D MT2P2D 3841
894sigpda01 MACH_SIGPDA01 SIGPDA01 3842
895cn27 MACH_CN27 CN27 3843
896mx25_cwtap MACH_MX25_CWTAP MX25_CWTAP 3844
897apf28 MACH_APF28 APF28 3845
898pelco_maxwell MACH_PELCO_MAXWELL PELCO_MAXWELL 3846
899ge_phoenix MACH_GE_PHOENIX GE_PHOENIX 3847
900empc_a500 MACH_EMPC_A500 EMPC_A500 3848
901ims_arm9 MACH_IMS_ARM9 IMS_ARM9 3849
902mini2416 MACH_MINI2416 MINI2416 3850
903mini2450 MACH_MINI2450 MINI2450 3851
904mini310 MACH_MINI310 MINI310 3852
905spear_hurricane MACH_SPEAR_HURRICANE SPEAR_HURRICANE 3853
906mt7208 MACH_MT7208 MT7208 3854
907lpc178x MACH_LPC178X LPC178X 3855
908farleys MACH_FARLEYS FARLEYS 3856
909efm32gg_dk3750 MACH_EFM32GG_DK3750 EFM32GG_DK3750 3857
910zeus_board MACH_ZEUS_BOARD ZEUS_BOARD 3858
911cc51 MACH_CC51 CC51 3859
912fxi_c210 MACH_FXI_C210 FXI_C210 3860
913msm8627_cdp MACH_MSM8627_CDP MSM8627_CDP 3861
914msm8627_mtp MACH_MSM8627_MTP MSM8627_MTP 3862
915armadillo800eva MACH_ARMADILLO800EVA ARMADILLO800EVA 3863 557armadillo800eva MACH_ARMADILLO800EVA ARMADILLO800EVA 3863
916primou MACH_PRIMOU PRIMOU 3864
917primoc MACH_PRIMOC PRIMOC 3865
918primoct MACH_PRIMOCT PRIMOCT 3866
919a9500 MACH_A9500 A9500 3867
920pluto MACH_PLUTO PLUTO 3869
921acfx100 MACH_ACFX100 ACFX100 3870
922msm8625_rumi3 MACH_MSM8625_RUMI3 MSM8625_RUMI3 3871
923valente MACH_VALENTE VALENTE 3872
924crfs_rfeye MACH_CRFS_RFEYE CRFS_RFEYE 3873
925rfeye MACH_RFEYE RFEYE 3874
926phidget_sbc3 MACH_PHIDGET_SBC3 PHIDGET_SBC3 3875
927tcw_mika MACH_TCW_MIKA TCW_MIKA 3876
928imx28_egf MACH_IMX28_EGF IMX28_EGF 3877
929valente_wx MACH_VALENTE_WX VALENTE_WX 3878
930huangshans MACH_HUANGSHANS HUANGSHANS 3879
931bosphorus1 MACH_BOSPHORUS1 BOSPHORUS1 3880
932prima MACH_PRIMA PRIMA 3881
933evita_ulk MACH_EVITA_ULK EVITA_ULK 3884
934merisc600 MACH_MERISC600 MERISC600 3885
935dolak MACH_DOLAK DOLAK 3886
936sbc53 MACH_SBC53 SBC53 3887
937elite_ulk MACH_ELITE_ULK ELITE_ULK 3888
938pov2 MACH_POV2 POV2 3889
939ipod_touch_2g MACH_IPOD_TOUCH_2G IPOD_TOUCH_2G 3890
940da850_pqab MACH_DA850_PQAB DA850_PQAB 3891
941fermi MACH_FERMI FERMI 3892
942ccardwmx28 MACH_CCARDWMX28 CCARDWMX28 3893
943ccardmx28 MACH_CCARDMX28 CCARDMX28 3894
944fs20_fcm2050 MACH_FS20_FCM2050 FS20_FCM2050 3895
945kinetis MACH_KINETIS KINETIS 3896
946kai MACH_KAI KAI 3897
947bcthb2 MACH_BCTHB2 BCTHB2 3898
948inels3_cu MACH_INELS3_CU INELS3_CU 3899
949da850_apollo MACH_DA850_APOLLO DA850_APOLLO 3901
950tracnas MACH_TRACNAS TRACNAS 3902
951mityarm335x MACH_MITYARM335X MITYARM335X 3903
952xcgz7x MACH_XCGZ7X XCGZ7X 3904
953cubox MACH_CUBOX CUBOX 3905
954terminator MACH_TERMINATOR TERMINATOR 3906
955eye03 MACH_EYE03 EYE03 3907
956kota3 MACH_KOTA3 KOTA3 3908
957pscpe MACH_PSCPE PSCPE 3910
958akt1100 MACH_AKT1100 AKT1100 3911
959pcaaxl2 MACH_PCAAXL2 PCAAXL2 3912
960primodd_ct MACH_PRIMODD_CT PRIMODD_CT 3913
961nsbc MACH_NSBC NSBC 3914
962meson2_skt MACH_MESON2_SKT MESON2_SKT 3915
963meson2_ref MACH_MESON2_REF MESON2_REF 3916
964ccardwmx28js MACH_CCARDWMX28JS CCARDWMX28JS 3917
965ccardmx28js MACH_CCARDMX28JS CCARDMX28JS 3918
966indico MACH_INDICO INDICO 3919
967msm8960dt MACH_MSM8960DT MSM8960DT 3920
968primods MACH_PRIMODS PRIMODS 3921
969beluga_m1388 MACH_BELUGA_M1388 BELUGA_M1388 3922
970primotd MACH_PRIMOTD PRIMOTD 3923
971varan_master MACH_VARAN_MASTER VARAN_MASTER 3924
972primodd MACH_PRIMODD PRIMODD 3925
973jetduo MACH_JETDUO JETDUO 3926
974mx53_umobo MACH_MX53_UMOBO MX53_UMOBO 3927 558mx53_umobo MACH_MX53_UMOBO MX53_UMOBO 3927
975trats MACH_TRATS TRATS 3928
976starcraft MACH_STARCRAFT STARCRAFT 3929
977qseven_tegra2 MACH_QSEVEN_TEGRA2 QSEVEN_TEGRA2 3930
978lichee_sun4i_devbd MACH_LICHEE_SUN4I_DEVBD LICHEE_SUN4I_DEVBD 3931
979movenow MACH_MOVENOW MOVENOW 3932
980golf_u MACH_GOLF_U GOLF_U 3933
981msm7627a_evb MACH_MSM7627A_EVB MSM7627A_EVB 3934
982rambo MACH_RAMBO RAMBO 3935
983golfu MACH_GOLFU GOLFU 3936
984mango310 MACH_MANGO310 MANGO310 3937
985dns343 MACH_DNS343 DNS343 3938
986var_som_om44 MACH_VAR_SOM_OM44 VAR_SOM_OM44 3939
987naon MACH_NAON NAON 3940
988vp4000 MACH_VP4000 VP4000 3941
989impcard MACH_IMPCARD IMPCARD 3942
990smoovcam MACH_SMOOVCAM SMOOVCAM 3943
991cobham3725 MACH_COBHAM3725 COBHAM3725 3944
992cobham3730 MACH_COBHAM3730 COBHAM3730 3945
993cobham3703 MACH_COBHAM3703 COBHAM3703 3946
994quetzal MACH_QUETZAL QUETZAL 3947
995apq8064_cdp MACH_APQ8064_CDP APQ8064_CDP 3948
996apq8064_mtp MACH_APQ8064_MTP APQ8064_MTP 3949
997apq8064_fluid MACH_APQ8064_FLUID APQ8064_FLUID 3950
998apq8064_liquid MACH_APQ8064_LIQUID APQ8064_LIQUID 3951
999mango210 MACH_MANGO210 MANGO210 3952
1000mango100 MACH_MANGO100 MANGO100 3953
1001mango24 MACH_MANGO24 MANGO24 3954
1002mango64 MACH_MANGO64 MANGO64 3955
1003nsa320 MACH_NSA320 NSA320 3956
1004elv_ccu2 MACH_ELV_CCU2 ELV_CCU2 3957
1005triton_x00 MACH_TRITON_X00 TRITON_X00 3958
1006triton_1500_2000 MACH_TRITON_1500_2000 TRITON_1500_2000 3959
1007pogoplugv4 MACH_POGOPLUGV4 POGOPLUGV4 3960
1008venus_cl MACH_VENUS_CL VENUS_CL 3961
1009vulcano_g20 MACH_VULCANO_G20 VULCANO_G20 3962
1010sgs_i9100 MACH_SGS_I9100 SGS_I9100 3963
1011stsv2 MACH_STSV2 STSV2 3964
1012csb1724 MACH_CSB1724 CSB1724 3965
1013omapl138_lcdk MACH_OMAPL138_LCDK OMAPL138_LCDK 3966
1014pvd_mx25 MACH_PVD_MX25 PVD_MX25 3968
1015meson6_skt MACH_MESON6_SKT MESON6_SKT 3969
1016meson6_ref MACH_MESON6_REF MESON6_REF 3970
1017pxm MACH_PXM PXM 3971
1018pogoplugv3 MACH_POGOPLUGV3 POGOPLUGV3 3973
1019mlp89626 MACH_MLP89626 MLP89626 3974
1020iomegahmndce MACH_IOMEGAHMNDCE IOMEGAHMNDCE 3975
1021pogoplugv3pci MACH_POGOPLUGV3PCI POGOPLUGV3PCI 3976
1022bntv250 MACH_BNTV250 BNTV250 3977
1023mx53_qseven MACH_MX53_QSEVEN MX53_QSEVEN 3978
1024gtl_it1100 MACH_GTL_IT1100 GTL_IT1100 3979
1025mx6q_sabresd MACH_MX6Q_SABRESD MX6Q_SABRESD 3980
1026mt4 MACH_MT4 MT4 3981 559mt4 MACH_MT4 MT4 3981
1027jumbo_d MACH_JUMBO_D JUMBO_D 3982
1028jumbo_i MACH_JUMBO_I JUMBO_I 3983
1029fs20_dmp MACH_FS20_DMP FS20_DMP 3984
1030dns320 MACH_DNS320 DNS320 3985
1031mx28bacos MACH_MX28BACOS MX28BACOS 3986
1032tl80 MACH_TL80 TL80 3987
1033polatis_nic_1001 MACH_POLATIS_NIC_1001 POLATIS_NIC_1001 3988
1034tely MACH_TELY TELY 3989
1035u8520 MACH_U8520 U8520 3990 560u8520 MACH_U8520 U8520 3990
1036manta MACH_MANTA MANTA 3991
1037mpq8064_cdp MACH_MPQ8064_CDP MPQ8064_CDP 3993
1038mpq8064_dtv MACH_MPQ8064_DTV MPQ8064_DTV 3995
1039dm368som MACH_DM368SOM DM368SOM 3996
1040gprisb2 MACH_GPRISB2 GPRISB2 3997
1041chammid MACH_CHAMMID CHAMMID 3998
1042seoul2 MACH_SEOUL2 SEOUL2 3999
1043omap4_nooktablet MACH_OMAP4_NOOKTABLET OMAP4_NOOKTABLET 4000
1044aalto MACH_AALTO AALTO 4001
1045metro MACH_METRO METRO 4002
1046cydm3730 MACH_CYDM3730 CYDM3730 4003
1047tqma53 MACH_TQMA53 TQMA53 4004
1048msm7627a_qrd3 MACH_MSM7627A_QRD3 MSM7627A_QRD3 4005
1049mx28_canby MACH_MX28_CANBY MX28_CANBY 4006
1050tiger MACH_TIGER TIGER 4007
1051pcats_9307_type_a MACH_PCATS_9307_TYPE_A PCATS_9307_TYPE_A 4008
1052pcats_9307_type_o MACH_PCATS_9307_TYPE_O PCATS_9307_TYPE_O 4009
1053pcats_9307_type_r MACH_PCATS_9307_TYPE_R PCATS_9307_TYPE_R 4010
1054streamplug MACH_STREAMPLUG STREAMPLUG 4011
1055icechicken_dev MACH_ICECHICKEN_DEV ICECHICKEN_DEV 4012
1056hedgehog MACH_HEDGEHOG HEDGEHOG 4013
1057yusend_obc MACH_YUSEND_OBC YUSEND_OBC 4014
1058imxninja MACH_IMXNINJA IMXNINJA 4015
1059omap4_jarod MACH_OMAP4_JAROD OMAP4_JAROD 4016
1060eco5_pk MACH_ECO5_PK ECO5_PK 4017
1061qj2440 MACH_QJ2440 QJ2440 4018
1062mx6q_mercury MACH_MX6Q_MERCURY MX6Q_MERCURY 4019
1063cm6810 MACH_CM6810 CM6810 4020
1064omap4_torpedo MACH_OMAP4_TORPEDO OMAP4_TORPEDO 4021
1065nsa310 MACH_NSA310 NSA310 4022
1066tmx536 MACH_TMX536 TMX536 4023
1067ktt20 MACH_KTT20 KTT20 4024
1068dragonix MACH_DRAGONIX DRAGONIX 4025
1069lungching MACH_LUNGCHING LUNGCHING 4026
1070bulogics MACH_BULOGICS BULOGICS 4027
1071mx535_sx MACH_MX535_SX MX535_SX 4028
1072ngui3250 MACH_NGUI3250 NGUI3250 4029
1073salutec_dac MACH_SALUTEC_DAC SALUTEC_DAC 4030
1074loco MACH_LOCO LOCO 4031
1075ctera_plug_usi MACH_CTERA_PLUG_USI CTERA_PLUG_USI 4032
1076scepter MACH_SCEPTER SCEPTER 4033
1077sga MACH_SGA SGA 4034
1078p_81_j5 MACH_P_81_J5 P_81_J5 4035
1079p_81_o4 MACH_P_81_O4 P_81_O4 4036
1080msm8625_surf MACH_MSM8625_SURF MSM8625_SURF 4037
1081carallon_shark MACH_CARALLON_SHARK CARALLON_SHARK 4038
1082ordog MACH_ORDOG ORDOG 4040
1083puente_io MACH_PUENTE_IO PUENTE_IO 4041
1084msm8625_evb MACH_MSM8625_EVB MSM8625_EVB 4042
1085ev_am1707 MACH_EV_AM1707 EV_AM1707 4043
1086ev_am1707e2 MACH_EV_AM1707E2 EV_AM1707E2 4044
1087ev_am3517e2 MACH_EV_AM3517E2 EV_AM3517E2 4045
1088calabria MACH_CALABRIA CALABRIA 4046
1089ev_imx287 MACH_EV_IMX287 EV_IMX287 4047
1090erau MACH_ERAU ERAU 4048
1091sichuan MACH_SICHUAN SICHUAN 4049
1092davinci_da850 MACH_DAVINCI_DA850 DAVINCI_DA850 4051
1093omap138_trunarc MACH_OMAP138_TRUNARC OMAP138_TRUNARC 4052
1094bcm4761 MACH_BCM4761 BCM4761 4053
1095picasso_e2 MACH_PICASSO_E2 PICASSO_E2 4054
1096picasso_mf MACH_PICASSO_MF PICASSO_MF 4055
1097miro MACH_MIRO MIRO 4056
1098at91sam9g20ewon3 MACH_AT91SAM9G20EWON3 AT91SAM9G20EWON3 4057
1099yoyo MACH_YOYO YOYO 4058
1100windjkl MACH_WINDJKL WINDJKL 4059
1101monarudo MACH_MONARUDO MONARUDO 4060
1102batan MACH_BATAN BATAN 4061
1103tadao MACH_TADAO TADAO 4062
1104baso MACH_BASO BASO 4063
1105mahon MACH_MAHON MAHON 4064
1106villec2 MACH_VILLEC2 VILLEC2 4065
1107asi1230 MACH_ASI1230 ASI1230 4066
1108alaska MACH_ALASKA ALASKA 4067
1109swarco_shdsl2 MACH_SWARCO_SHDSL2 SWARCO_SHDSL2 4068
1110oxrtu MACH_OXRTU OXRTU 4069
1111omap5_panda MACH_OMAP5_PANDA OMAP5_PANDA 4070
1112c8000 MACH_C8000 C8000 4072
1113bje_display3_5 MACH_BJE_DISPLAY3_5 BJE_DISPLAY3_5 4073
1114picomod7 MACH_PICOMOD7 PICOMOD7 4074
1115picocom5 MACH_PICOCOM5 PICOCOM5 4075
1116qblissa8 MACH_QBLISSA8 QBLISSA8 4076
1117armstonea8 MACH_ARMSTONEA8 ARMSTONEA8 4077
1118netdcu14 MACH_NETDCU14 NETDCU14 4078
1119at91sam9x5_epiphan MACH_AT91SAM9X5_EPIPHAN AT91SAM9X5_EPIPHAN 4079
1120p2u MACH_P2U P2U 4080
1121doris MACH_DORIS DORIS 4081
1122j49 MACH_J49 J49 4082
1123vdss2e MACH_VDSS2E VDSS2E 4083
1124vc300 MACH_VC300 VC300 4084
1125ns115_pad_test MACH_NS115_PAD_TEST NS115_PAD_TEST 4085
1126ns115_pad_ref MACH_NS115_PAD_REF NS115_PAD_REF 4086
1127ns115_phone_test MACH_NS115_PHONE_TEST NS115_PHONE_TEST 4087
1128ns115_phone_ref MACH_NS115_PHONE_REF NS115_PHONE_REF 4088
1129golfc MACH_GOLFC GOLFC 4089
1130xerox_olympus MACH_XEROX_OLYMPUS XEROX_OLYMPUS 4090
1131mx6sl_arm2 MACH_MX6SL_ARM2 MX6SL_ARM2 4091
1132csb1701_csb1726 MACH_CSB1701_CSB1726 CSB1701_CSB1726 4092
1133at91sam9xeek MACH_AT91SAM9XEEK AT91SAM9XEEK 4093
1134ebv210 MACH_EBV210 EBV210 4094
1135msm7627a_qrd7 MACH_MSM7627A_QRD7 MSM7627A_QRD7 4095
1136svthin MACH_SVTHIN SVTHIN 4096
1137duovero MACH_DUOVERO DUOVERO 4097
1138chupacabra MACH_CHUPACABRA CHUPACABRA 4098 561chupacabra MACH_CHUPACABRA CHUPACABRA 4098
1139scorpion MACH_SCORPION SCORPION 4099 562scorpion MACH_SCORPION SCORPION 4099
1140davinci_he_hmi10 MACH_DAVINCI_HE_HMI10 DAVINCI_HE_HMI10 4100 563davinci_he_hmi10 MACH_DAVINCI_HE_HMI10 DAVINCI_HE_HMI10 4100
@@ -1157,7 +580,6 @@ tam335x MACH_TAM335X TAM335X 4116
1157grouper MACH_GROUPER GROUPER 4117 580grouper MACH_GROUPER GROUPER 4117
1158mpcsa21_9g20 MACH_MPCSA21_9G20 MPCSA21_9G20 4118 581mpcsa21_9g20 MACH_MPCSA21_9G20 MPCSA21_9G20 4118
1159m6u_cpu MACH_M6U_CPU M6U_CPU 4119 582m6u_cpu MACH_M6U_CPU M6U_CPU 4119
1160davinci_dp10 MACH_DAVINCI_DP10 DAVINCI_DP10 4120
1161ginkgo MACH_GINKGO GINKGO 4121 583ginkgo MACH_GINKGO GINKGO 4121
1162cgt_qmx6 MACH_CGT_QMX6 CGT_QMX6 4122 584cgt_qmx6 MACH_CGT_QMX6 CGT_QMX6 4122
1163profpga MACH_PROFPGA PROFPGA 4123 585profpga MACH_PROFPGA PROFPGA 4123
@@ -1204,3 +626,384 @@ baileys MACH_BAILEYS BAILEYS 4169
1204familybox MACH_FAMILYBOX FAMILYBOX 4170 626familybox MACH_FAMILYBOX FAMILYBOX 4170
1205ensemble_mx35 MACH_ENSEMBLE_MX35 ENSEMBLE_MX35 4171 627ensemble_mx35 MACH_ENSEMBLE_MX35 ENSEMBLE_MX35 4171
1206sc_sps_1 MACH_SC_SPS_1 SC_SPS_1 4172 628sc_sps_1 MACH_SC_SPS_1 SC_SPS_1 4172
629ucsimply_sam9260 MACH_UCSIMPLY_SAM9260 UCSIMPLY_SAM9260 4173
630unicorn MACH_UNICORN UNICORN 4174
631m9g45a MACH_M9G45A M9G45A 4175
632mtwebif MACH_MTWEBIF MTWEBIF 4176
633playstone MACH_PLAYSTONE PLAYSTONE 4177
634chelsea MACH_CHELSEA CHELSEA 4178
635bayern MACH_BAYERN BAYERN 4179
636mitwo MACH_MITWO MITWO 4180
637mx25_noah MACH_MX25_NOAH MX25_NOAH 4181
638stm_b2020 MACH_STM_B2020 STM_B2020 4182
639annax_src MACH_ANNAX_SRC ANNAX_SRC 4183
640ionics_stratus MACH_IONICS_STRATUS IONICS_STRATUS 4184
641hugo MACH_HUGO HUGO 4185
642em300 MACH_EM300 EM300 4186
643mmp3_qseven MACH_MMP3_QSEVEN MMP3_QSEVEN 4187
644bosphorus2 MACH_BOSPHORUS2 BOSPHORUS2 4188
645tt2200 MACH_TT2200 TT2200 4189
646ocelot3 MACH_OCELOT3 OCELOT3 4190
647tek_cobra MACH_TEK_COBRA TEK_COBRA 4191
648protou MACH_PROTOU PROTOU 4192
649msm8625_evt MACH_MSM8625_EVT MSM8625_EVT 4193
650mx53_sellwood MACH_MX53_SELLWOOD MX53_SELLWOOD 4194
651somiq_am35 MACH_SOMIQ_AM35 SOMIQ_AM35 4195
652somiq_am37 MACH_SOMIQ_AM37 SOMIQ_AM37 4196
653k2_plc_cl MACH_K2_PLC_CL K2_PLC_CL 4197
654tc2 MACH_TC2 TC2 4198
655dulex_j MACH_DULEX_J DULEX_J 4199
656stm_b2044 MACH_STM_B2044 STM_B2044 4200
657deluxe_j MACH_DELUXE_J DELUXE_J 4201
658mango2443 MACH_MANGO2443 MANGO2443 4202
659cp2dcg MACH_CP2DCG CP2DCG 4203
660cp2dtg MACH_CP2DTG CP2DTG 4204
661cp2dug MACH_CP2DUG CP2DUG 4205
662var_som_am33 MACH_VAR_SOM_AM33 VAR_SOM_AM33 4206
663pepper MACH_PEPPER PEPPER 4207
664mango2450 MACH_MANGO2450 MANGO2450 4208
665valente_wx_c9 MACH_VALENTE_WX_C9 VALENTE_WX_C9 4209
666minitv MACH_MINITV MINITV 4210
667u8540 MACH_U8540 U8540 4211
668iv_atlas_i_z7e MACH_IV_ATLAS_I_Z7E IV_ATLAS_I_Z7E 4212
669mach_type_sky MACH_MACH_TYPE_SKY MACH_TYPE_SKY 4214
670bluesky MACH_BLUESKY BLUESKY 4215
671ngrouter MACH_NGROUTER NGROUTER 4216
672mx53_denetim MACH_MX53_DENETIM MX53_DENETIM 4217
673opal MACH_OPAL OPAL 4218
674gnet_us3gref MACH_GNET_US3GREF GNET_US3GREF 4219
675gnet_nc3g MACH_GNET_NC3G GNET_NC3G 4220
676gnet_ge3g MACH_GNET_GE3G GNET_GE3G 4221
677adp2 MACH_ADP2 ADP2 4222
678tqma28 MACH_TQMA28 TQMA28 4223
679kacom3 MACH_KACOM3 KACOM3 4224
680rrhdemo MACH_RRHDEMO RRHDEMO 4225
681protodug MACH_PROTODUG PROTODUG 4226
682lago MACH_LAGO LAGO 4227
683ktt30 MACH_KTT30 KTT30 4228
684ts43xx MACH_TS43XX TS43XX 4229
685mx6q_denso MACH_MX6Q_DENSO MX6Q_DENSO 4230
686comsat_gsmumts8 MACH_COMSAT_GSMUMTS8 COMSAT_GSMUMTS8 4231
687dreamx MACH_DREAMX DREAMX 4232
688thunderstonem MACH_THUNDERSTONEM THUNDERSTONEM 4233
689yoyopad MACH_YOYOPAD YOYOPAD 4234
690yoyopatient MACH_YOYOPATIENT YOYOPATIENT 4235
691a10l MACH_A10L A10L 4236
692mq60 MACH_MQ60 MQ60 4237
693linkstation_lsql MACH_LINKSTATION_LSQL LINKSTATION_LSQL 4238
694am3703gateway MACH_AM3703GATEWAY AM3703GATEWAY 4239
695accipiter MACH_ACCIPITER ACCIPITER 4240
696magnidug MACH_MAGNIDUG MAGNIDUG 4242
697hydra MACH_HYDRA HYDRA 4243
698sun3i MACH_SUN3I SUN3I 4244
699stm_b2078 MACH_STM_B2078 STM_B2078 4245
700at91sam9263deskv2 MACH_AT91SAM9263DESKV2 AT91SAM9263DESKV2 4246
701deluxe_r MACH_DELUXE_R DELUXE_R 4247
702p_98_v MACH_P_98_V P_98_V 4248
703p_98_c MACH_P_98_C P_98_C 4249
704davinci_am18xx_omn MACH_DAVINCI_AM18XX_OMN DAVINCI_AM18XX_OMN 4250
705socfpga_cyclone5 MACH_SOCFPGA_CYCLONE5 SOCFPGA_CYCLONE5 4251
706cabatuin MACH_CABATUIN CABATUIN 4252
707yoyopad_ft MACH_YOYOPAD_FT YOYOPAD_FT 4253
708dan2400evb MACH_DAN2400EVB DAN2400EVB 4254
709dan3400evb MACH_DAN3400EVB DAN3400EVB 4255
710edm_sf_imx6 MACH_EDM_SF_IMX6 EDM_SF_IMX6 4256
711edm_cf_imx6 MACH_EDM_CF_IMX6 EDM_CF_IMX6 4257
712vpos3xx MACH_VPOS3XX VPOS3XX 4258
713vulcano_9x5 MACH_VULCANO_9X5 VULCANO_9X5 4259
714spmp8000 MACH_SPMP8000 SPMP8000 4260
715catalina MACH_CATALINA CATALINA 4261
716rd88f5181l_fe MACH_RD88F5181L_FE RD88F5181L_FE 4262
717mx535_mx MACH_MX535_MX MX535_MX 4263
718armadillo840 MACH_ARMADILLO840 ARMADILLO840 4264
719spc9000baseboard MACH_SPC9000BASEBOARD SPC9000BASEBOARD 4265
720iris MACH_IRIS IRIS 4266
721protodcg MACH_PROTODCG PROTODCG 4267
722palmtree MACH_PALMTREE PALMTREE 4268
723novena MACH_NOVENA NOVENA 4269
724ma_um MACH_MA_UM MA_UM 4270
725ma_am MACH_MA_AM MA_AM 4271
726ems348 MACH_EMS348 EMS348 4272
727cm_fx6 MACH_CM_FX6 CM_FX6 4273
728arndale MACH_ARNDALE ARNDALE 4274
729q5xr5 MACH_Q5XR5 Q5XR5 4275
730willow MACH_WILLOW WILLOW 4276
731omap3621_odyv3 MACH_OMAP3621_ODYV3 OMAP3621_ODYV3 4277
732omapl138_presonus MACH_OMAPL138_PRESONUS OMAPL138_PRESONUS 4278
733dvf99 MACH_DVF99 DVF99 4279
734impression_j MACH_IMPRESSION_J IMPRESSION_J 4280
735qblissa9 MACH_QBLISSA9 QBLISSA9 4281
736robin_heliview10 MACH_ROBIN_HELIVIEW10 ROBIN_HELIVIEW10 4282
737sun7i MACH_SUN7I SUN7I 4283
738mx6q_hdmidongle MACH_MX6Q_HDMIDONGLE MX6Q_HDMIDONGLE 4284
739mx6_sid2 MACH_MX6_SID2 MX6_SID2 4285
740helios_v3 MACH_HELIOS_V3 HELIOS_V3 4286
741helios_v4 MACH_HELIOS_V4 HELIOS_V4 4287
742q7_imx6 MACH_Q7_IMX6 Q7_IMX6 4288
743odroidx MACH_ODROIDX ODROIDX 4289
744robpro MACH_ROBPRO ROBPRO 4290
745research59if_mk1 MACH_RESEARCH59IF_MK1 RESEARCH59IF_MK1 4291
746bobsleigh MACH_BOBSLEIGH BOBSLEIGH 4292
747dcshgwt3 MACH_DCSHGWT3 DCSHGWT3 4293
748gld1018 MACH_GLD1018 GLD1018 4294
749ev10 MACH_EV10 EV10 4295
750nitrogen6x MACH_NITROGEN6X NITROGEN6X 4296
751p_107_bb MACH_P_107_BB P_107_BB 4297
752evita_utl MACH_EVITA_UTL EVITA_UTL 4298
753falconwing MACH_FALCONWING FALCONWING 4299
754dct3 MACH_DCT3 DCT3 4300
755cpx2e_cell MACH_CPX2E_CELL CPX2E_CELL 4301
756amiro MACH_AMIRO AMIRO 4302
757mx6q_brassboard MACH_MX6Q_BRASSBOARD MX6Q_BRASSBOARD 4303
758dalmore MACH_DALMORE DALMORE 4304
759omap3_portal7cp MACH_OMAP3_PORTAL7CP OMAP3_PORTAL7CP 4305
760tegra_pluto MACH_TEGRA_PLUTO TEGRA_PLUTO 4306
761mx6sl_evk MACH_MX6SL_EVK MX6SL_EVK 4307
762m7 MACH_M7 M7 4308
763pxm2 MACH_PXM2 PXM2 4309
764haba_knx_lite MACH_HABA_KNX_LITE HABA_KNX_LITE 4310
765tai MACH_TAI TAI 4311
766prototd MACH_PROTOTD PROTOTD 4312
767dst_tonto MACH_DST_TONTO DST_TONTO 4313
768draco MACH_DRACO DRACO 4314
769dxr2 MACH_DXR2 DXR2 4315
770rut MACH_RUT RUT 4316
771am180x_wsc MACH_AM180X_WSC AM180X_WSC 4317
772deluxe_u MACH_DELUXE_U DELUXE_U 4318
773deluxe_ul MACH_DELUXE_UL DELUXE_UL 4319
774at91sam9260medths MACH_AT91SAM9260MEDTHS AT91SAM9260MEDTHS 4320
775matrix516 MACH_MATRIX516 MATRIX516 4321
776vid401x MACH_VID401X VID401X 4322
777helios_v5 MACH_HELIOS_V5 HELIOS_V5 4323
778playpaq2 MACH_PLAYPAQ2 PLAYPAQ2 4324
779igam MACH_IGAM IGAM 4325
780amico_i MACH_AMICO_I AMICO_I 4326
781amico_e MACH_AMICO_E AMICO_E 4327
782sentient_mm3_ck MACH_SENTIENT_MM3_CK SENTIENT_MM3_CK 4328
783smx6 MACH_SMX6 SMX6 4329
784pango MACH_PANGO PANGO 4330
785ns115_stick MACH_NS115_STICK NS115_STICK 4331
786bctrm3 MACH_BCTRM3 BCTRM3 4332
787doctorws MACH_DOCTORWS DOCTORWS 4333
788m2601 MACH_M2601 M2601 4334
789vgg1111 MACH_VGG1111 VGG1111 4337
790countach MACH_COUNTACH COUNTACH 4338
791visstrim_sm20 MACH_VISSTRIM_SM20 VISSTRIM_SM20 4339
792a639 MACH_A639 A639 4340
793spacemonkey MACH_SPACEMONKEY SPACEMONKEY 4341
794zpdu_stamp MACH_ZPDU_STAMP ZPDU_STAMP 4342
795htc_g7_clone MACH_HTC_G7_CLONE HTC_G7_CLONE 4343
796ft2080_corvus MACH_FT2080_CORVUS FT2080_CORVUS 4344
797fisland MACH_FISLAND FISLAND 4345
798zpdu MACH_ZPDU ZPDU 4346
799urt MACH_URT URT 4347
800conti_ovip MACH_CONTI_OVIP CONTI_OVIP 4348
801omapl138_nagra MACH_OMAPL138_NAGRA OMAPL138_NAGRA 4349
802da850_at3kp1 MACH_DA850_AT3KP1 DA850_AT3KP1 4350
803da850_at3kp2 MACH_DA850_AT3KP2 DA850_AT3KP2 4351
804surma MACH_SURMA SURMA 4352
805stm_b2092 MACH_STM_B2092 STM_B2092 4353
806mx535_ycr MACH_MX535_YCR MX535_YCR 4354
807m7_wl MACH_M7_WL M7_WL 4355
808m7_u MACH_M7_U M7_U 4356
809omap3_stndt_evm MACH_OMAP3_STNDT_EVM OMAP3_STNDT_EVM 4357
810m7_wlv MACH_M7_WLV M7_WLV 4358
811xam3517 MACH_XAM3517 XAM3517 4359
812a220 MACH_A220 A220 4360
813aclima_odie MACH_ACLIMA_ODIE ACLIMA_ODIE 4361
814vibble MACH_VIBBLE VIBBLE 4362
815k2_u MACH_K2_U K2_U 4363
816mx53_egf MACH_MX53_EGF MX53_EGF 4364
817novpek_imx53 MACH_NOVPEK_IMX53 NOVPEK_IMX53 4365
818novpek_imx6x MACH_NOVPEK_IMX6X NOVPEK_IMX6X 4366
819mx25_smartbox MACH_MX25_SMARTBOX MX25_SMARTBOX 4367
820eicg6410 MACH_EICG6410 EICG6410 4368
821picasso_e3 MACH_PICASSO_E3 PICASSO_E3 4369
822motonavigator MACH_MOTONAVIGATOR MOTONAVIGATOR 4370
823varioconnect2 MACH_VARIOCONNECT2 VARIOCONNECT2 4371
824deluxe_tw MACH_DELUXE_TW DELUXE_TW 4372
825kore3 MACH_KORE3 KORE3 4374
826mx6s_drs MACH_MX6S_DRS MX6S_DRS 4375
827cmimx6 MACH_CMIMX6 CMIMX6 4376
828roth MACH_ROTH ROTH 4377
829eq4ux MACH_EQ4UX EQ4UX 4378
830x1plus MACH_X1PLUS X1PLUS 4379
831modimx27 MACH_MODIMX27 MODIMX27 4380
832videon_hduac MACH_VIDEON_HDUAC VIDEON_HDUAC 4381
833blackbird MACH_BLACKBIRD BLACKBIRD 4382
834runmaster MACH_RUNMASTER RUNMASTER 4383
835ceres MACH_CERES CERES 4384
836nad435 MACH_NAD435 NAD435 4385
837ns115_proto_type MACH_NS115_PROTO_TYPE NS115_PROTO_TYPE 4386
838fs20_vcc MACH_FS20_VCC FS20_VCC 4387
839meson6tv_skt MACH_MESON6TV_SKT MESON6TV_SKT 4389
840keystone MACH_KEYSTONE KEYSTONE 4390
841pcm052 MACH_PCM052 PCM052 4391
842qrd_skud_prime MACH_QRD_SKUD_PRIME QRD_SKUD_PRIME 4393
843guf_santaro MACH_GUF_SANTARO GUF_SANTARO 4395
844sheepshead MACH_SHEEPSHEAD SHEEPSHEAD 4396
845mx6_iwg15m_mxm MACH_MX6_IWG15M_MXM MX6_IWG15M_MXM 4397
846mx6_iwg15m_q7 MACH_MX6_IWG15M_Q7 MX6_IWG15M_Q7 4398
847at91sam9263if8mic MACH_AT91SAM9263IF8MIC AT91SAM9263IF8MIC 4399
848marcopolo MACH_MARCOPOLO MARCOPOLO 4401
849mx535_sdcr MACH_MX535_SDCR MX535_SDCR 4402
850mx53_csb2733 MACH_MX53_CSB2733 MX53_CSB2733 4403
851diva MACH_DIVA DIVA 4404
852ncr_7744 MACH_NCR_7744 NCR_7744 4405
853macallan MACH_MACALLAN MACALLAN 4406
854wnr3500 MACH_WNR3500 WNR3500 4407
855pgavrf MACH_PGAVRF PGAVRF 4408
856helios_v6 MACH_HELIOS_V6 HELIOS_V6 4409
857lcct MACH_LCCT LCCT 4410
858csndug MACH_CSNDUG CSNDUG 4411
859wandboard_imx6 MACH_WANDBOARD_IMX6 WANDBOARD_IMX6 4412
860omap4_jet MACH_OMAP4_JET OMAP4_JET 4413
861tegra_roth MACH_TEGRA_ROTH TEGRA_ROTH 4414
862m7dcg MACH_M7DCG M7DCG 4415
863m7dug MACH_M7DUG M7DUG 4416
864m7dtg MACH_M7DTG M7DTG 4417
865ap42x MACH_AP42X AP42X 4418
866var_som_mx6 MACH_VAR_SOM_MX6 VAR_SOM_MX6 4419
867pdlu MACH_PDLU PDLU 4420
868hydrogen MACH_HYDROGEN HYDROGEN 4421
869npa211e MACH_NPA211E NPA211E 4422
870arcadia MACH_ARCADIA ARCADIA 4423
871arcadia_l MACH_ARCADIA_L ARCADIA_L 4424
872msm8930dt MACH_MSM8930DT MSM8930DT 4425
873ktam3874 MACH_KTAM3874 KTAM3874 4426
874cec4 MACH_CEC4 CEC4 4427
875ape6evm MACH_APE6EVM APE6EVM 4428
876tx6 MACH_TX6 TX6 4429
877cfa10037 MACH_CFA10037 CFA10037 4431
878ezp1000 MACH_EZP1000 EZP1000 4433
879wgr826v MACH_WGR826V WGR826V 4434
880exuma MACH_EXUMA EXUMA 4435
881fregate MACH_FREGATE FREGATE 4436
882osirisimx508 MACH_OSIRISIMX508 OSIRISIMX508 4437
883st_exigo MACH_ST_EXIGO ST_EXIGO 4438
884pismo MACH_PISMO PISMO 4439
885atc7 MACH_ATC7 ATC7 4440
886nspireclp MACH_NSPIRECLP NSPIRECLP 4441
887nspiretp MACH_NSPIRETP NSPIRETP 4442
888nspirecx MACH_NSPIRECX NSPIRECX 4443
889maya MACH_MAYA MAYA 4444
890wecct MACH_WECCT WECCT 4445
891m2s MACH_M2S M2S 4446
892msm8625q_evbd MACH_MSM8625Q_EVBD MSM8625Q_EVBD 4447
893tiny210 MACH_TINY210 TINY210 4448
894g3 MACH_G3 G3 4449
895hurricane MACH_HURRICANE HURRICANE 4450
896mx6_pod MACH_MX6_POD MX6_POD 4451
897elondcn MACH_ELONDCN ELONDCN 4452
898cwmx535 MACH_CWMX535 CWMX535 4453
899m7_wlj MACH_M7_WLJ M7_WLJ 4454
900qsp_arm MACH_QSP_ARM QSP_ARM 4455
901msm8625q_skud MACH_MSM8625Q_SKUD MSM8625Q_SKUD 4456
902htcmondrian MACH_HTCMONDRIAN HTCMONDRIAN 4457
903watson_ead MACH_WATSON_EAD WATSON_EAD 4458
904mitwoa MACH_MITWOA MITWOA 4459
905omap3_wolverine MACH_OMAP3_WOLVERINE OMAP3_WOLVERINE 4460
906mapletree MACH_MAPLETREE MAPLETREE 4461
907msm8625_fih_sae MACH_MSM8625_FIH_SAE MSM8625_FIH_SAE 4462
908epc35 MACH_EPC35 EPC35 4463
909smartrtu MACH_SMARTRTU SMARTRTU 4464
910rcm101 MACH_RCM101 RCM101 4465
911amx_imx53_mxx MACH_AMX_IMX53_MXX AMX_IMX53_MXX 4466
912acer_a12 MACH_ACER_A12 ACER_A12 4470
913sbc6x MACH_SBC6X SBC6X 4471
914u2 MACH_U2 U2 4472
915smdk4270 MACH_SMDK4270 SMDK4270 4473
916priscillag MACH_PRISCILLAG PRISCILLAG 4474
917priscillac MACH_PRISCILLAC PRISCILLAC 4475
918priscilla MACH_PRISCILLA PRISCILLA 4476
919innova_shpu_v2 MACH_INNOVA_SHPU_V2 INNOVA_SHPU_V2 4477
920mach_type_dep2410 MACH_MACH_TYPE_DEP2410 MACH_TYPE_DEP2410 4479
921bctre3 MACH_BCTRE3 BCTRE3 4480
922omap_m100 MACH_OMAP_M100 OMAP_M100 4481
923flo MACH_FLO FLO 4482
924nanobone MACH_NANOBONE NANOBONE 4483
925stm_b2105 MACH_STM_B2105 STM_B2105 4484
926omap4_bsc_bap_v3 MACH_OMAP4_BSC_BAP_V3 OMAP4_BSC_BAP_V3 4485
927ss1pam MACH_SS1PAM SS1PAM 4486
928primominiu MACH_PRIMOMINIU PRIMOMINIU 4488
929mrt_35hd_dualnas_e MACH_MRT_35HD_DUALNAS_E MRT_35HD_DUALNAS_E 4489
930kiwi MACH_KIWI KIWI 4490
931hw90496 MACH_HW90496 HW90496 4491
932mep2440 MACH_MEP2440 MEP2440 4492
933colibri_t30 MACH_COLIBRI_T30 COLIBRI_T30 4493
934cwv1 MACH_CWV1 CWV1 4494
935nsa325 MACH_NSA325 NSA325 4495
936dpxmtc MACH_DPXMTC DPXMTC 4497
937tt_stuttgart MACH_TT_STUTTGART TT_STUTTGART 4498
938miranda_apcii MACH_MIRANDA_APCII MIRANDA_APCII 4499
939mx6q_moderox MACH_MX6Q_MODEROX MX6Q_MODEROX 4500
940mudskipper MACH_MUDSKIPPER MUDSKIPPER 4501
941urania MACH_URANIA URANIA 4502
942stm_b2112 MACH_STM_B2112 STM_B2112 4503
943mx6q_ats_phoenix MACH_MX6Q_ATS_PHOENIX MX6Q_ATS_PHOENIX 4505
944stm_b2116 MACH_STM_B2116 STM_B2116 4506
945mythology MACH_MYTHOLOGY MYTHOLOGY 4507
946fc360v1 MACH_FC360V1 FC360V1 4508
947gps_sensor MACH_GPS_SENSOR GPS_SENSOR 4509
948gazelle MACH_GAZELLE GAZELLE 4510
949mpq8064_dma MACH_MPQ8064_DMA MPQ8064_DMA 4511
950wems_asd01 MACH_WEMS_ASD01 WEMS_ASD01 4512
951apalis_t30 MACH_APALIS_T30 APALIS_T30 4513
952armstonea9 MACH_ARMSTONEA9 ARMSTONEA9 4515
953omap_blazetablet MACH_OMAP_BLAZETABLET OMAP_BLAZETABLET 4516
954ar6mxq MACH_AR6MXQ AR6MXQ 4517
955ar6mxs MACH_AR6MXS AR6MXS 4518
956gwventana MACH_GWVENTANA GWVENTANA 4520
957igep0033 MACH_IGEP0033 IGEP0033 4521
958h52c1_concerto MACH_H52C1_CONCERTO H52C1_CONCERTO 4524
959fcmbrd MACH_FCMBRD FCMBRD 4525
960pcaaxs1 MACH_PCAAXS1 PCAAXS1 4526
961ls_orca MACH_LS_ORCA LS_ORCA 4527
962pcm051lb MACH_PCM051LB PCM051LB 4528
963mx6s_lp507_gvci MACH_MX6S_LP507_GVCI MX6S_LP507_GVCI 4529
964dido MACH_DIDO DIDO 4530
965swarco_itc3_9g20 MACH_SWARCO_ITC3_9G20 SWARCO_ITC3_9G20 4531
966robo_roady MACH_ROBO_ROADY ROBO_ROADY 4532
967rskrza1 MACH_RSKRZA1 RSKRZA1 4533
968swarco_sid MACH_SWARCO_SID SWARCO_SID 4534
969mx6_iwg15s_sbc MACH_MX6_IWG15S_SBC MX6_IWG15S_SBC 4535
970mx6q_camaro MACH_MX6Q_CAMARO MX6Q_CAMARO 4536
971hb6mxs MACH_HB6MXS HB6MXS 4537
972lager MACH_LAGER LAGER 4538
973lp8x4x MACH_LP8X4X LP8X4X 4539
974tegratab7 MACH_TEGRATAB7 TEGRATAB7 4540
975andromeda MACH_ANDROMEDA ANDROMEDA 4541
976bootes MACH_BOOTES BOOTES 4542
977nethmi MACH_NETHMI NETHMI 4543
978tegratab MACH_TEGRATAB TEGRATAB 4544
979som5_evb MACH_SOM5_EVB SOM5_EVB 4545
980venaticorum MACH_VENATICORUM VENATICORUM 4546
981stm_b2110 MACH_STM_B2110 STM_B2110 4547
982elux_hathor MACH_ELUX_HATHOR ELUX_HATHOR 4548
983helios_v7 MACH_HELIOS_V7 HELIOS_V7 4549
984xc10v1 MACH_XC10V1 XC10V1 4550
985cp2u MACH_CP2U CP2U 4551
986iap_f MACH_IAP_F IAP_F 4552
987iap_g MACH_IAP_G IAP_G 4553
988aae MACH_AAE AAE 4554
989pegasus MACH_PEGASUS PEGASUS 4555
990cygnus MACH_CYGNUS CYGNUS 4556
991centaurus MACH_CENTAURUS CENTAURUS 4557
992msm8930_qrd8930 MACH_MSM8930_QRD8930 MSM8930_QRD8930 4558
993quby_tim MACH_QUBY_TIM QUBY_TIM 4559
994zedi3250a MACH_ZEDI3250A ZEDI3250A 4560
995grus MACH_GRUS GRUS 4561
996apollo3 MACH_APOLLO3 APOLLO3 4562
997cowon_r7 MACH_COWON_R7 COWON_R7 4563
998tonga3 MACH_TONGA3 TONGA3 4564
999p535 MACH_P535 P535 4565
1000sa3874i MACH_SA3874I SA3874I 4566
1001mx6_navico_com MACH_MX6_NAVICO_COM MX6_NAVICO_COM 4567
1002proxmobil2 MACH_PROXMOBIL2 PROXMOBIL2 4568
1003ubinux1 MACH_UBINUX1 UBINUX1 4569
1004istos MACH_ISTOS ISTOS 4570
1005benvolio4 MACH_BENVOLIO4 BENVOLIO4 4571
1006eco5_bx2 MACH_ECO5_BX2 ECO5_BX2 4572
1007eukrea_cpuimx28sd MACH_EUKREA_CPUIMX28SD EUKREA_CPUIMX28SD 4573
1008domotab MACH_DOMOTAB DOMOTAB 4574
1009pfla03 MACH_PFLA03 PFLA03 4575