aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt12
-rw-r--r--MAINTAINERS19
-rw-r--r--arch/arm/Kconfig7
-rw-r--r--arch/arm/boot/dts/at91sam9n12.dtsi8
-rw-r--r--arch/arm/boot/dts/at91sam9x5.dtsi10
-rw-r--r--arch/arm/boot/dts/dove.dtsi2
-rw-r--r--arch/arm/boot/dts/exynos4210.dtsi6
-rw-r--r--arch/arm/boot/dts/exynos4x12-pinctrl.dtsi2
-rw-r--r--arch/arm/boot/dts/exynos4x12.dtsi8
-rw-r--r--arch/arm/boot/dts/exynos5440.dtsi4
-rw-r--r--arch/arm/boot/dts/imx6q.dtsi2
-rw-r--r--arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts2
-rw-r--r--arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts2
-rw-r--r--arch/arm/configs/marzen_defconfig1
-rw-r--r--arch/arm/configs/mvebu_defconfig2
-rw-r--r--arch/arm/configs/shark_defconfig1
-rw-r--r--arch/arm/configs/u8500_defconfig6
-rw-r--r--arch/arm/include/asm/dma.h2
-rw-r--r--arch/arm/include/asm/memory.h2
-rw-r--r--arch/arm/mach-exynos/common.c10
-rw-r--r--arch/arm/mach-exynos/pm.c6
-rw-r--r--arch/arm/mach-imx/Kconfig2
-rw-r--r--arch/arm/mach-imx/clk-imx25.c3
-rw-r--r--arch/arm/mach-imx/clk-imx27.c9
-rw-r--r--arch/arm/mach-integrator/common.h5
-rw-r--r--arch/arm/mach-integrator/core.c2
-rw-r--r--arch/arm/mach-integrator/integrator_ap.c4
-rw-r--r--arch/arm/mach-integrator/integrator_cp.c2
-rw-r--r--arch/arm/mach-msm/proc_comm.h2
-rw-r--r--arch/arm/mach-mvebu/Makefile5
-rw-r--r--arch/arm/mach-omap2/omap-wakeupgen.c14
-rw-r--r--arch/arm/mach-omap2/timer.c2
-rw-r--r--arch/arm/mach-omap2/twl-common.c3
-rw-r--r--arch/arm/mach-pxa/include/mach/palmtreo.h5
-rw-r--r--arch/arm/mach-pxa/include/mach/smemc.h1
-rw-r--r--arch/arm/mach-pxa/palmtreo.c70
-rw-r--r--arch/arm/mach-pxa/smemc.c15
-rw-r--r--arch/arm/mach-pxa/spitz.c4
-rw-r--r--arch/arm/mach-s3c24xx/Kconfig2
-rw-r--r--arch/arm/mach-s3c24xx/common-s3c2443.c2
-rw-r--r--arch/arm/mach-s3c24xx/common.c2
-rw-r--r--arch/arm/mach-s3c24xx/include/mach/debug-macro.S12
-rw-r--r--arch/arm/mach-s3c24xx/include/mach/entry-macro.S4
-rw-r--r--arch/arm/mach-s3c24xx/mach-osiris.c1
-rw-r--r--arch/arm/mach-s3c24xx/pm-h1940.S2
-rw-r--r--arch/arm/mach-s3c24xx/pm-s3c2412.c3
-rw-r--r--arch/arm/mach-s3c24xx/pm-s3c2416.c3
-rw-r--r--arch/arm/mach-s3c24xx/sleep-s3c2410.S12
-rw-r--r--arch/arm/mach-s3c24xx/sleep-s3c2412.S12
-rw-r--r--arch/arm/mach-s3c64xx/pm.c3
-rw-r--r--arch/arm/mach-s5p64x0/pm.c4
-rw-r--r--arch/arm/mach-s5pv210/include/mach/uncompress.h2
-rw-r--r--arch/arm/mach-s5pv210/pm.c4
-rw-r--r--arch/arm/mach-sa1100/lart.c3
-rw-r--r--arch/arm/mach-ux500/cpu.c6
-rw-r--r--arch/arm/mach-ux500/cpuidle.c4
-rw-r--r--arch/arm/mach-versatile/Kconfig5
-rw-r--r--arch/arm/mach-versatile/core.c2
-rw-r--r--arch/arm/mach-w90x900/include/mach/entry-macro.S4
-rw-r--r--arch/arm/plat-omap/dma.c2
-rw-r--r--arch/arm/plat-orion/mpp.c2
-rw-r--r--arch/arm/plat-samsung/include/plat/debug-macro.S18
-rw-r--r--arch/arm/plat-samsung/include/plat/fimc-core.h2
-rw-r--r--arch/arm/plat-samsung/include/plat/sdhci.h2
-rw-r--r--arch/arm/plat-samsung/pm.c7
-rw-r--r--arch/arm/plat-spear/Kconfig1
-rw-r--r--drivers/gpio/gpio-samsung.c6
-rw-r--r--drivers/mfd/vexpress-sysreg.c2
-rw-r--r--drivers/pinctrl/pinctrl-samsung.c4
-rw-r--r--include/linux/platform_data/i2c-s3c2410.h2
-rw-r--r--scripts/sortextable.h2
71 files changed, 252 insertions, 152 deletions
diff --git a/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt
index e97a27856b21..4598a47aa0cd 100644
--- a/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt
+++ b/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt
@@ -7,9 +7,9 @@ on-chip controllers onto these pads.
7 7
8Required Properties: 8Required Properties:
9- compatible: should be one of the following. 9- compatible: should be one of the following.
10 - "samsung,pinctrl-exynos4210": for Exynos4210 compatible pin-controller. 10 - "samsung,exynos4210-pinctrl": for Exynos4210 compatible pin-controller.
11 - "samsung,pinctrl-exynos4x12": for Exynos4x12 compatible pin-controller. 11 - "samsung,exynos4x12-pinctrl": for Exynos4x12 compatible pin-controller.
12 - "samsung,pinctrl-exynos5250": for Exynos5250 compatible pin-controller. 12 - "samsung,exynos5250-pinctrl": for Exynos5250 compatible pin-controller.
13 13
14- reg: Base address of the pin controller hardware module and length of 14- reg: Base address of the pin controller hardware module and length of
15 the address space it occupies. 15 the address space it occupies.
@@ -142,7 +142,7 @@ the following format 'pinctrl{n}' where n is a unique number for the alias.
142Example: A pin-controller node with pin banks: 142Example: A pin-controller node with pin banks:
143 143
144 pinctrl_0: pinctrl@11400000 { 144 pinctrl_0: pinctrl@11400000 {
145 compatible = "samsung,pinctrl-exynos4210"; 145 compatible = "samsung,exynos4210-pinctrl";
146 reg = <0x11400000 0x1000>; 146 reg = <0x11400000 0x1000>;
147 interrupts = <0 47 0>; 147 interrupts = <0 47 0>;
148 148
@@ -185,7 +185,7 @@ Example: A pin-controller node with pin banks:
185Example 1: A pin-controller node with pin groups. 185Example 1: A pin-controller node with pin groups.
186 186
187 pinctrl_0: pinctrl@11400000 { 187 pinctrl_0: pinctrl@11400000 {
188 compatible = "samsung,pinctrl-exynos4210"; 188 compatible = "samsung,exynos4210-pinctrl";
189 reg = <0x11400000 0x1000>; 189 reg = <0x11400000 0x1000>;
190 interrupts = <0 47 0>; 190 interrupts = <0 47 0>;
191 191
@@ -230,7 +230,7 @@ Example 1: A pin-controller node with pin groups.
230Example 2: A pin-controller node with external wakeup interrupt controller node. 230Example 2: A pin-controller node with external wakeup interrupt controller node.
231 231
232 pinctrl_1: pinctrl@11000000 { 232 pinctrl_1: pinctrl@11000000 {
233 compatible = "samsung,pinctrl-exynos4210"; 233 compatible = "samsung,exynos4210-pinctrl";
234 reg = <0x11000000 0x1000>; 234 reg = <0x11000000 0x1000>;
235 interrupts = <0 46 0> 235 interrupts = <0 46 0>
236 236
diff --git a/MAINTAINERS b/MAINTAINERS
index f5b9851755a2..22b754a8b4b3 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1256,12 +1256,17 @@ M: Tony Prisk <linux@prisktech.co.nz>
1256L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 1256L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
1257S: Maintained 1257S: Maintained
1258F: arch/arm/mach-vt8500/ 1258F: arch/arm/mach-vt8500/
1259F: drivers/clocksource/vt8500_timer.c
1260F: drivers/gpio/gpio-vt8500.c
1261F: drivers/mmc/host/wmt-sdmmc.c
1262F: drivers/pwm/pwm-vt8500.c
1263F: drivers/rtc/rtc-vt8500.c
1264F: drivers/tty/serial/vt8500_serial.c
1265F: drivers/usb/host/ehci-vt8500.c
1266F: drivers/usb/host/uhci-platform.c
1259F: drivers/video/vt8500lcdfb.* 1267F: drivers/video/vt8500lcdfb.*
1260F: drivers/video/wm8505fb* 1268F: drivers/video/wm8505fb*
1261F: drivers/video/wmt_ge_rops.* 1269F: drivers/video/wmt_ge_rops.*
1262F: drivers/tty/serial/vt8500_serial.c
1263F: drivers/rtc/rtc-vt8500.c
1264F: drivers/mmc/host/wmt-sdmmc.c
1265 1270
1266ARM/ZIPIT Z2 SUPPORT 1271ARM/ZIPIT Z2 SUPPORT
1267M: Marek Vasut <marek.vasut@gmail.com> 1272M: Marek Vasut <marek.vasut@gmail.com>
@@ -1270,6 +1275,14 @@ S: Maintained
1270F: arch/arm/mach-pxa/z2.c 1275F: arch/arm/mach-pxa/z2.c
1271F: arch/arm/mach-pxa/include/mach/z2.h 1276F: arch/arm/mach-pxa/include/mach/z2.h
1272 1277
1278ARM/ZYNQ ARCHITECTURE
1279M: Michal Simek <michal.simek@xilinx.com>
1280L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
1281W: http://wiki.xilinx.com
1282T: git git://git.xilinx.com/linux-xlnx.git
1283S: Supported
1284F: arch/arm/mach-zynq/
1285
1273ARM64 PORT (AARCH64 ARCHITECTURE) 1286ARM64 PORT (AARCH64 ARCHITECTURE)
1274M: Catalin Marinas <catalin.marinas@arm.com> 1287M: Catalin Marinas <catalin.marinas@arm.com>
1275M: Will Deacon <will.deacon@arm.com> 1288M: Will Deacon <will.deacon@arm.com>
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index f410cb16dd22..09238c83e6d6 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -260,7 +260,8 @@ config MMU
260# 260#
261choice 261choice
262 prompt "ARM system type" 262 prompt "ARM system type"
263 default ARCH_MULTIPLATFORM 263 default ARCH_VERSATILE if !MMU
264 default ARCH_MULTIPLATFORM if MMU
264 265
265config ARCH_MULTIPLATFORM 266config ARCH_MULTIPLATFORM
266 bool "Allow multiple platforms to be selected" 267 bool "Allow multiple platforms to be selected"
@@ -1449,6 +1450,10 @@ config ISA_DMA
1449 bool 1450 bool
1450 select ISA_DMA_API 1451 select ISA_DMA_API
1451 1452
1453config ARCH_NO_VIRT_TO_BUS
1454 def_bool y
1455 depends on !ARCH_RPC && !ARCH_NETWINDER && !ARCH_SHARK
1456
1452# Select ISA DMA interface 1457# Select ISA DMA interface
1453config ISA_DMA_API 1458config ISA_DMA_API
1454 bool 1459 bool
diff --git a/arch/arm/boot/dts/at91sam9n12.dtsi b/arch/arm/boot/dts/at91sam9n12.dtsi
index 80e29c605d4e..4801717566dd 100644
--- a/arch/arm/boot/dts/at91sam9n12.dtsi
+++ b/arch/arm/boot/dts/at91sam9n12.dtsi
@@ -324,8 +324,6 @@
324 compatible = "atmel,at91sam9260-usart"; 324 compatible = "atmel,at91sam9260-usart";
325 reg = <0xf801c000 0x4000>; 325 reg = <0xf801c000 0x4000>;
326 interrupts = <5 4 5>; 326 interrupts = <5 4 5>;
327 atmel,use-dma-rx;
328 atmel,use-dma-tx;
329 pinctrl-names = "default"; 327 pinctrl-names = "default";
330 pinctrl-0 = <&pinctrl_usart0>; 328 pinctrl-0 = <&pinctrl_usart0>;
331 status = "disabled"; 329 status = "disabled";
@@ -335,8 +333,6 @@
335 compatible = "atmel,at91sam9260-usart"; 333 compatible = "atmel,at91sam9260-usart";
336 reg = <0xf8020000 0x4000>; 334 reg = <0xf8020000 0x4000>;
337 interrupts = <6 4 5>; 335 interrupts = <6 4 5>;
338 atmel,use-dma-rx;
339 atmel,use-dma-tx;
340 pinctrl-names = "default"; 336 pinctrl-names = "default";
341 pinctrl-0 = <&pinctrl_usart1>; 337 pinctrl-0 = <&pinctrl_usart1>;
342 status = "disabled"; 338 status = "disabled";
@@ -346,8 +342,6 @@
346 compatible = "atmel,at91sam9260-usart"; 342 compatible = "atmel,at91sam9260-usart";
347 reg = <0xf8024000 0x4000>; 343 reg = <0xf8024000 0x4000>;
348 interrupts = <7 4 5>; 344 interrupts = <7 4 5>;
349 atmel,use-dma-rx;
350 atmel,use-dma-tx;
351 pinctrl-names = "default"; 345 pinctrl-names = "default";
352 pinctrl-0 = <&pinctrl_usart2>; 346 pinctrl-0 = <&pinctrl_usart2>;
353 status = "disabled"; 347 status = "disabled";
@@ -357,8 +351,6 @@
357 compatible = "atmel,at91sam9260-usart"; 351 compatible = "atmel,at91sam9260-usart";
358 reg = <0xf8028000 0x4000>; 352 reg = <0xf8028000 0x4000>;
359 interrupts = <8 4 5>; 353 interrupts = <8 4 5>;
360 atmel,use-dma-rx;
361 atmel,use-dma-tx;
362 pinctrl-names = "default"; 354 pinctrl-names = "default";
363 pinctrl-0 = <&pinctrl_usart3>; 355 pinctrl-0 = <&pinctrl_usart3>;
364 status = "disabled"; 356 status = "disabled";
diff --git a/arch/arm/boot/dts/at91sam9x5.dtsi b/arch/arm/boot/dts/at91sam9x5.dtsi
index 8ecca6948d81..d112c3af8ce2 100644
--- a/arch/arm/boot/dts/at91sam9x5.dtsi
+++ b/arch/arm/boot/dts/at91sam9x5.dtsi
@@ -197,9 +197,9 @@
197 }; 197 };
198 198
199 usart3 { 199 usart3 {
200 pinctrl_uart3: usart3-0 { 200 pinctrl_usart3: usart3-0 {
201 atmel,pins = 201 atmel,pins =
202 <2 23 0x2 0x1 /* PC22 periph B with pullup */ 202 <2 22 0x2 0x1 /* PC22 periph B with pullup */
203 2 23 0x2 0x0>; /* PC23 periph B */ 203 2 23 0x2 0x0>; /* PC23 periph B */
204 }; 204 };
205 205
@@ -402,8 +402,6 @@
402 compatible = "atmel,at91sam9260-usart"; 402 compatible = "atmel,at91sam9260-usart";
403 reg = <0xf801c000 0x200>; 403 reg = <0xf801c000 0x200>;
404 interrupts = <5 4 5>; 404 interrupts = <5 4 5>;
405 atmel,use-dma-rx;
406 atmel,use-dma-tx;
407 pinctrl-names = "default"; 405 pinctrl-names = "default";
408 pinctrl-0 = <&pinctrl_usart0>; 406 pinctrl-0 = <&pinctrl_usart0>;
409 status = "disabled"; 407 status = "disabled";
@@ -413,8 +411,6 @@
413 compatible = "atmel,at91sam9260-usart"; 411 compatible = "atmel,at91sam9260-usart";
414 reg = <0xf8020000 0x200>; 412 reg = <0xf8020000 0x200>;
415 interrupts = <6 4 5>; 413 interrupts = <6 4 5>;
416 atmel,use-dma-rx;
417 atmel,use-dma-tx;
418 pinctrl-names = "default"; 414 pinctrl-names = "default";
419 pinctrl-0 = <&pinctrl_usart1>; 415 pinctrl-0 = <&pinctrl_usart1>;
420 status = "disabled"; 416 status = "disabled";
@@ -424,8 +420,6 @@
424 compatible = "atmel,at91sam9260-usart"; 420 compatible = "atmel,at91sam9260-usart";
425 reg = <0xf8024000 0x200>; 421 reg = <0xf8024000 0x200>;
426 interrupts = <7 4 5>; 422 interrupts = <7 4 5>;
427 atmel,use-dma-rx;
428 atmel,use-dma-tx;
429 pinctrl-names = "default"; 423 pinctrl-names = "default";
430 pinctrl-0 = <&pinctrl_usart2>; 424 pinctrl-0 = <&pinctrl_usart2>;
431 status = "disabled"; 425 status = "disabled";
diff --git a/arch/arm/boot/dts/dove.dtsi b/arch/arm/boot/dts/dove.dtsi
index 42eac1ff3cc8..740630f9cd65 100644
--- a/arch/arm/boot/dts/dove.dtsi
+++ b/arch/arm/boot/dts/dove.dtsi
@@ -93,6 +93,7 @@
93 reg = <0xd0400 0x20>; 93 reg = <0xd0400 0x20>;
94 ngpios = <32>; 94 ngpios = <32>;
95 interrupt-controller; 95 interrupt-controller;
96 #interrupt-cells = <2>;
96 interrupts = <12>, <13>, <14>, <60>; 97 interrupts = <12>, <13>, <14>, <60>;
97 }; 98 };
98 99
@@ -103,6 +104,7 @@
103 reg = <0xd0420 0x20>; 104 reg = <0xd0420 0x20>;
104 ngpios = <32>; 105 ngpios = <32>;
105 interrupt-controller; 106 interrupt-controller;
107 #interrupt-cells = <2>;
106 interrupts = <61>; 108 interrupts = <61>;
107 }; 109 };
108 110
diff --git a/arch/arm/boot/dts/exynos4210.dtsi b/arch/arm/boot/dts/exynos4210.dtsi
index e31bfc4a6f09..2feffc70814c 100644
--- a/arch/arm/boot/dts/exynos4210.dtsi
+++ b/arch/arm/boot/dts/exynos4210.dtsi
@@ -48,13 +48,13 @@
48 }; 48 };
49 49
50 pinctrl_0: pinctrl@11400000 { 50 pinctrl_0: pinctrl@11400000 {
51 compatible = "samsung,pinctrl-exynos4210"; 51 compatible = "samsung,exynos4210-pinctrl";
52 reg = <0x11400000 0x1000>; 52 reg = <0x11400000 0x1000>;
53 interrupts = <0 47 0>; 53 interrupts = <0 47 0>;
54 }; 54 };
55 55
56 pinctrl_1: pinctrl@11000000 { 56 pinctrl_1: pinctrl@11000000 {
57 compatible = "samsung,pinctrl-exynos4210"; 57 compatible = "samsung,exynos4210-pinctrl";
58 reg = <0x11000000 0x1000>; 58 reg = <0x11000000 0x1000>;
59 interrupts = <0 46 0>; 59 interrupts = <0 46 0>;
60 60
@@ -66,7 +66,7 @@
66 }; 66 };
67 67
68 pinctrl_2: pinctrl@03860000 { 68 pinctrl_2: pinctrl@03860000 {
69 compatible = "samsung,pinctrl-exynos4210"; 69 compatible = "samsung,exynos4210-pinctrl";
70 reg = <0x03860000 0x1000>; 70 reg = <0x03860000 0x1000>;
71 }; 71 };
72 72
diff --git a/arch/arm/boot/dts/exynos4x12-pinctrl.dtsi b/arch/arm/boot/dts/exynos4x12-pinctrl.dtsi
index 8e6115adcd97..099cec79e2ae 100644
--- a/arch/arm/boot/dts/exynos4x12-pinctrl.dtsi
+++ b/arch/arm/boot/dts/exynos4x12-pinctrl.dtsi
@@ -661,7 +661,7 @@
661 661
662 sd4_bus8: sd4-bus-width8 { 662 sd4_bus8: sd4-bus-width8 {
663 samsung,pins = "gpk1-3", "gpk1-4", "gpk1-5", "gpk1-6"; 663 samsung,pins = "gpk1-3", "gpk1-4", "gpk1-5", "gpk1-6";
664 samsung,pin-function = <3>; 664 samsung,pin-function = <4>;
665 samsung,pin-pud = <4>; 665 samsung,pin-pud = <4>;
666 samsung,pin-drv = <3>; 666 samsung,pin-drv = <3>;
667 }; 667 };
diff --git a/arch/arm/boot/dts/exynos4x12.dtsi b/arch/arm/boot/dts/exynos4x12.dtsi
index 179a62e46c9d..9a8780694909 100644
--- a/arch/arm/boot/dts/exynos4x12.dtsi
+++ b/arch/arm/boot/dts/exynos4x12.dtsi
@@ -37,13 +37,13 @@
37 }; 37 };
38 38
39 pinctrl_0: pinctrl@11400000 { 39 pinctrl_0: pinctrl@11400000 {
40 compatible = "samsung,pinctrl-exynos4x12"; 40 compatible = "samsung,exynos4x12-pinctrl";
41 reg = <0x11400000 0x1000>; 41 reg = <0x11400000 0x1000>;
42 interrupts = <0 47 0>; 42 interrupts = <0 47 0>;
43 }; 43 };
44 44
45 pinctrl_1: pinctrl@11000000 { 45 pinctrl_1: pinctrl@11000000 {
46 compatible = "samsung,pinctrl-exynos4x12"; 46 compatible = "samsung,exynos4x12-pinctrl";
47 reg = <0x11000000 0x1000>; 47 reg = <0x11000000 0x1000>;
48 interrupts = <0 46 0>; 48 interrupts = <0 46 0>;
49 49
@@ -55,14 +55,14 @@
55 }; 55 };
56 56
57 pinctrl_2: pinctrl@03860000 { 57 pinctrl_2: pinctrl@03860000 {
58 compatible = "samsung,pinctrl-exynos4x12"; 58 compatible = "samsung,exynos4x12-pinctrl";
59 reg = <0x03860000 0x1000>; 59 reg = <0x03860000 0x1000>;
60 interrupt-parent = <&combiner>; 60 interrupt-parent = <&combiner>;
61 interrupts = <10 0>; 61 interrupts = <10 0>;
62 }; 62 };
63 63
64 pinctrl_3: pinctrl@106E0000 { 64 pinctrl_3: pinctrl@106E0000 {
65 compatible = "samsung,pinctrl-exynos4x12"; 65 compatible = "samsung,exynos4x12-pinctrl";
66 reg = <0x106E0000 0x1000>; 66 reg = <0x106E0000 0x1000>;
67 interrupts = <0 72 0>; 67 interrupts = <0 72 0>;
68 }; 68 };
diff --git a/arch/arm/boot/dts/exynos5440.dtsi b/arch/arm/boot/dts/exynos5440.dtsi
index 024269de8ee5..5f3562ad6746 100644
--- a/arch/arm/boot/dts/exynos5440.dtsi
+++ b/arch/arm/boot/dts/exynos5440.dtsi
@@ -86,7 +86,7 @@
86 }; 86 };
87 87
88 pinctrl { 88 pinctrl {
89 compatible = "samsung,pinctrl-exynos5440"; 89 compatible = "samsung,exynos5440-pinctrl";
90 reg = <0xE0000 0x1000>; 90 reg = <0xE0000 0x1000>;
91 interrupt-controller; 91 interrupt-controller;
92 #interrupt-cells = <2>; 92 #interrupt-cells = <2>;
@@ -154,6 +154,6 @@
154 rtc { 154 rtc {
155 compatible = "samsung,s3c6410-rtc"; 155 compatible = "samsung,s3c6410-rtc";
156 reg = <0x130000 0x1000>; 156 reg = <0x130000 0x1000>;
157 interrupts = <0 16 0>, <0 17 0>; 157 interrupts = <0 17 0>, <0 16 0>;
158 }; 158 };
159}; 159};
diff --git a/arch/arm/boot/dts/imx6q.dtsi b/arch/arm/boot/dts/imx6q.dtsi
index d6265ca97119..ff1205ea5719 100644
--- a/arch/arm/boot/dts/imx6q.dtsi
+++ b/arch/arm/boot/dts/imx6q.dtsi
@@ -866,7 +866,7 @@
866 compatible = "fsl,imx6q-fec"; 866 compatible = "fsl,imx6q-fec";
867 reg = <0x02188000 0x4000>; 867 reg = <0x02188000 0x4000>;
868 interrupts = <0 118 0x04 0 119 0x04>; 868 interrupts = <0 118 0x04 0 119 0x04>;
869 clocks = <&clks 117>, <&clks 117>, <&clks 177>; 869 clocks = <&clks 117>, <&clks 117>, <&clks 190>;
870 clock-names = "ipg", "ahb", "ptp"; 870 clock-names = "ipg", "ahb", "ptp";
871 status = "disabled"; 871 status = "disabled";
872 }; 872 };
diff --git a/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts b/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts
index a3d37ec2655d..73187173117c 100644
--- a/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts
+++ b/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts
@@ -70,7 +70,7 @@
70 compatible = "arm,sp805", "arm,primecell"; 70 compatible = "arm,sp805", "arm,primecell";
71 status = "disabled"; 71 status = "disabled";
72 reg = <0 0x2b060000 0 0x1000>; 72 reg = <0 0x2b060000 0 0x1000>;
73 interrupts = <98>; 73 interrupts = <0 98 4>;
74 clocks = <&oscclk7>; 74 clocks = <&oscclk7>;
75 clock-names = "apb_pclk"; 75 clock-names = "apb_pclk";
76 }; 76 };
diff --git a/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts b/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts
index cf8071ad22d5..dfe371ec2749 100644
--- a/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts
+++ b/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts
@@ -72,7 +72,7 @@
72 wdt@2a490000 { 72 wdt@2a490000 {
73 compatible = "arm,sp805", "arm,primecell"; 73 compatible = "arm,sp805", "arm,primecell";
74 reg = <0 0x2a490000 0 0x1000>; 74 reg = <0 0x2a490000 0 0x1000>;
75 interrupts = <98>; 75 interrupts = <0 98 4>;
76 clocks = <&oscclk6a>, <&oscclk6a>; 76 clocks = <&oscclk6a>, <&oscclk6a>;
77 clock-names = "wdogclk", "apb_pclk"; 77 clock-names = "wdogclk", "apb_pclk";
78 }; 78 };
diff --git a/arch/arm/configs/marzen_defconfig b/arch/arm/configs/marzen_defconfig
index 728a43c446f8..afb17d630d44 100644
--- a/arch/arm/configs/marzen_defconfig
+++ b/arch/arm/configs/marzen_defconfig
@@ -83,7 +83,6 @@ CONFIG_USB=y
83CONFIG_USB_RCAR_PHY=y 83CONFIG_USB_RCAR_PHY=y
84CONFIG_MMC=y 84CONFIG_MMC=y
85CONFIG_MMC_SDHI=y 85CONFIG_MMC_SDHI=y
86CONFIG_USB=y
87CONFIG_USB_EHCI_HCD=y 86CONFIG_USB_EHCI_HCD=y
88CONFIG_USB_OHCI_HCD=y 87CONFIG_USB_OHCI_HCD=y
89CONFIG_USB_OHCI_HCD_PLATFORM=y 88CONFIG_USB_OHCI_HCD_PLATFORM=y
diff --git a/arch/arm/configs/mvebu_defconfig b/arch/arm/configs/mvebu_defconfig
index b5bc96cb65a7..cbd91bce1ca9 100644
--- a/arch/arm/configs/mvebu_defconfig
+++ b/arch/arm/configs/mvebu_defconfig
@@ -33,6 +33,8 @@ CONFIG_MVNETA=y
33CONFIG_MARVELL_PHY=y 33CONFIG_MARVELL_PHY=y
34CONFIG_SERIAL_8250=y 34CONFIG_SERIAL_8250=y
35CONFIG_SERIAL_8250_CONSOLE=y 35CONFIG_SERIAL_8250_CONSOLE=y
36CONFIG_I2C=y
37CONFIG_I2C_MV64XXX=y
36CONFIG_SERIAL_8250_DW=y 38CONFIG_SERIAL_8250_DW=y
37CONFIG_GPIOLIB=y 39CONFIG_GPIOLIB=y
38CONFIG_GPIO_SYSFS=y 40CONFIG_GPIO_SYSFS=y
diff --git a/arch/arm/configs/shark_defconfig b/arch/arm/configs/shark_defconfig
index caa07db90cf5..e319b2c56f11 100644
--- a/arch/arm/configs/shark_defconfig
+++ b/arch/arm/configs/shark_defconfig
@@ -73,7 +73,6 @@ CONFIG_PARTITION_ADVANCED=y
73CONFIG_NLS_CODEPAGE_437=m 73CONFIG_NLS_CODEPAGE_437=m
74CONFIG_NLS_CODEPAGE_850=m 74CONFIG_NLS_CODEPAGE_850=m
75CONFIG_NLS_ISO8859_1=m 75CONFIG_NLS_ISO8859_1=m
76# CONFIG_ENABLE_WARN_DEPRECATED is not set
77# CONFIG_ENABLE_MUST_CHECK is not set 76# CONFIG_ENABLE_MUST_CHECK is not set
78CONFIG_DEBUG_KERNEL=y 77CONFIG_DEBUG_KERNEL=y
79# CONFIG_SCHED_DEBUG is not set 78# CONFIG_SCHED_DEBUG is not set
diff --git a/arch/arm/configs/u8500_defconfig b/arch/arm/configs/u8500_defconfig
index 231dca604737..426270fe080d 100644
--- a/arch/arm/configs/u8500_defconfig
+++ b/arch/arm/configs/u8500_defconfig
@@ -66,9 +66,9 @@ CONFIG_SPI=y
66CONFIG_SPI_PL022=y 66CONFIG_SPI_PL022=y
67CONFIG_GPIO_STMPE=y 67CONFIG_GPIO_STMPE=y
68CONFIG_GPIO_TC3589X=y 68CONFIG_GPIO_TC3589X=y
69CONFIG_POWER_SUPPLY=y 69# CONFIG_POWER_SUPPLY is not set
70CONFIG_AB8500_BM=y 70# CONFIG_AB8500_BM is not set
71CONFIG_AB8500_BATTERY_THERM_ON_BATCTRL=y 71# CONFIG_AB8500_BATTERY_THERM_ON_BATCTRL is not set
72CONFIG_THERMAL=y 72CONFIG_THERMAL=y
73CONFIG_CPU_THERMAL=y 73CONFIG_CPU_THERMAL=y
74CONFIG_MFD_STMPE=y 74CONFIG_MFD_STMPE=y
diff --git a/arch/arm/include/asm/dma.h b/arch/arm/include/asm/dma.h
index 5694a0d6576b..58b8c6a0ab1f 100644
--- a/arch/arm/include/asm/dma.h
+++ b/arch/arm/include/asm/dma.h
@@ -105,7 +105,7 @@ extern void set_dma_sg(unsigned int chan, struct scatterlist *sg, int nr_sg);
105 */ 105 */
106extern void __set_dma_addr(unsigned int chan, void *addr); 106extern void __set_dma_addr(unsigned int chan, void *addr);
107#define set_dma_addr(chan, addr) \ 107#define set_dma_addr(chan, addr) \
108 __set_dma_addr(chan, bus_to_virt(addr)) 108 __set_dma_addr(chan, (void *)__bus_to_virt(addr))
109 109
110/* Set the DMA byte count for this channel 110/* Set the DMA byte count for this channel
111 * 111 *
diff --git a/arch/arm/include/asm/memory.h b/arch/arm/include/asm/memory.h
index 64c770d24198..57870ab313c5 100644
--- a/arch/arm/include/asm/memory.h
+++ b/arch/arm/include/asm/memory.h
@@ -245,6 +245,7 @@ static inline void *phys_to_virt(phys_addr_t x)
245#define __bus_to_pfn(x) __phys_to_pfn(x) 245#define __bus_to_pfn(x) __phys_to_pfn(x)
246#endif 246#endif
247 247
248#ifdef CONFIG_VIRT_TO_BUS
248static inline __deprecated unsigned long virt_to_bus(void *x) 249static inline __deprecated unsigned long virt_to_bus(void *x)
249{ 250{
250 return __virt_to_bus((unsigned long)x); 251 return __virt_to_bus((unsigned long)x);
@@ -254,6 +255,7 @@ static inline __deprecated void *bus_to_virt(unsigned long x)
254{ 255{
255 return (void *)__bus_to_virt(x); 256 return (void *)__bus_to_virt(x);
256} 257}
258#endif
257 259
258/* 260/*
259 * Conversion between a struct page and a physical address. 261 * Conversion between a struct page and a physical address.
diff --git a/arch/arm/mach-exynos/common.c b/arch/arm/mach-exynos/common.c
index 1a89824a5f78..0c7e3ad7ba93 100644
--- a/arch/arm/mach-exynos/common.c
+++ b/arch/arm/mach-exynos/common.c
@@ -299,6 +299,7 @@ void exynos4_restart(char mode, const char *cmd)
299 299
300void exynos5_restart(char mode, const char *cmd) 300void exynos5_restart(char mode, const char *cmd)
301{ 301{
302 struct device_node *np;
302 u32 val; 303 u32 val;
303 void __iomem *addr; 304 void __iomem *addr;
304 305
@@ -306,8 +307,9 @@ void exynos5_restart(char mode, const char *cmd)
306 val = 0x1; 307 val = 0x1;
307 addr = EXYNOS_SWRESET; 308 addr = EXYNOS_SWRESET;
308 } else if (of_machine_is_compatible("samsung,exynos5440")) { 309 } else if (of_machine_is_compatible("samsung,exynos5440")) {
309 val = (0x10 << 20) | (0x1 << 16); 310 np = of_find_compatible_node(NULL, NULL, "samsung,exynos5440-clock");
310 addr = EXYNOS5440_SWRESET; 311 addr = of_iomap(np, 0) + 0xcc;
312 val = (0xfff << 20) | (0x1 << 16);
311 } else { 313 } else {
312 pr_err("%s: cannot support non-DT\n", __func__); 314 pr_err("%s: cannot support non-DT\n", __func__);
313 return; 315 return;
@@ -1031,8 +1033,8 @@ static int __init exynos_init_irq_eint(void)
1031 * interrupt support code here can be completely removed. 1033 * interrupt support code here can be completely removed.
1032 */ 1034 */
1033 static const struct of_device_id exynos_pinctrl_ids[] = { 1035 static const struct of_device_id exynos_pinctrl_ids[] = {
1034 { .compatible = "samsung,pinctrl-exynos4210", }, 1036 { .compatible = "samsung,exynos4210-pinctrl", },
1035 { .compatible = "samsung,pinctrl-exynos4x12", }, 1037 { .compatible = "samsung,exynos4x12-pinctrl", },
1036 }; 1038 };
1037 struct device_node *pctrl_np, *wkup_np; 1039 struct device_node *pctrl_np, *wkup_np;
1038 const char *wkup_compat = "samsung,exynos4210-wakeup-eint"; 1040 const char *wkup_compat = "samsung,exynos4210-wakeup-eint";
diff --git a/arch/arm/mach-exynos/pm.c b/arch/arm/mach-exynos/pm.c
index b9b539cac81e..5106ab83e593 100644
--- a/arch/arm/mach-exynos/pm.c
+++ b/arch/arm/mach-exynos/pm.c
@@ -91,8 +91,8 @@ static int exynos_cpu_suspend(unsigned long arg)
91 /* issue the standby signal into the pm unit. */ 91 /* issue the standby signal into the pm unit. */
92 cpu_do_idle(); 92 cpu_do_idle();
93 93
94 /* we should never get past here */ 94 pr_info("Failed to suspend the system\n");
95 panic("sleep resumed to originator?"); 95 return 1; /* Aborting suspend */
96} 96}
97 97
98static void exynos_pm_prepare(void) 98static void exynos_pm_prepare(void)
@@ -282,6 +282,8 @@ static void exynos_pm_resume(void)
282 if (!(tmp & S5P_CENTRAL_LOWPWR_CFG)) { 282 if (!(tmp & S5P_CENTRAL_LOWPWR_CFG)) {
283 tmp |= S5P_CENTRAL_LOWPWR_CFG; 283 tmp |= S5P_CENTRAL_LOWPWR_CFG;
284 __raw_writel(tmp, S5P_CENTRAL_SEQ_CONFIGURATION); 284 __raw_writel(tmp, S5P_CENTRAL_SEQ_CONFIGURATION);
285 /* clear the wakeup state register */
286 __raw_writel(0x0, S5P_WAKEUP_STAT);
285 /* No need to perform below restore code */ 287 /* No need to perform below restore code */
286 goto early_wakeup; 288 goto early_wakeup;
287 } 289 }
diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
index 0a2349dc7018..64b40a4615b5 100644
--- a/arch/arm/mach-imx/Kconfig
+++ b/arch/arm/mach-imx/Kconfig
@@ -488,7 +488,7 @@ config MACH_MX31ADS_WM1133_EV1
488 bool "Support Wolfson Microelectronics 1133-EV1 module" 488 bool "Support Wolfson Microelectronics 1133-EV1 module"
489 depends on MACH_MX31ADS 489 depends on MACH_MX31ADS
490 depends on MFD_WM8350_I2C 490 depends on MFD_WM8350_I2C
491 depends on REGULATOR_WM8350 491 depends on REGULATOR_WM8350 = y
492 select MFD_WM8350_CONFIG_MODE_0 492 select MFD_WM8350_CONFIG_MODE_0
493 select MFD_WM8352_CONFIG_MODE_0 493 select MFD_WM8352_CONFIG_MODE_0
494 help 494 help
diff --git a/arch/arm/mach-imx/clk-imx25.c b/arch/arm/mach-imx/clk-imx25.c
index 2c570cdaae7b..69858c78f40d 100644
--- a/arch/arm/mach-imx/clk-imx25.c
+++ b/arch/arm/mach-imx/clk-imx25.c
@@ -224,6 +224,9 @@ static int __init __mx25_clocks_init(unsigned long osc_rate)
224 224
225 clk_prepare_enable(clk[emi_ahb]); 225 clk_prepare_enable(clk[emi_ahb]);
226 226
227 /* Clock source for gpt must be derived from AHB */
228 clk_set_parent(clk[per5_sel], clk[ahb]);
229
227 clk_register_clkdev(clk[ipg], "ipg", "imx-gpt.0"); 230 clk_register_clkdev(clk[ipg], "ipg", "imx-gpt.0");
228 clk_register_clkdev(clk[gpt_ipg_per], "per", "imx-gpt.0"); 231 clk_register_clkdev(clk[gpt_ipg_per], "per", "imx-gpt.0");
229 232
diff --git a/arch/arm/mach-imx/clk-imx27.c b/arch/arm/mach-imx/clk-imx27.c
index 1ffe3b534e51..e30369a58e4e 100644
--- a/arch/arm/mach-imx/clk-imx27.c
+++ b/arch/arm/mach-imx/clk-imx27.c
@@ -228,9 +228,12 @@ int __init mx27_clocks_init(unsigned long fref)
228 clk_register_clkdev(clk[sdhc2_ipg_gate], "ipg", "imx21-mmc.1"); 228 clk_register_clkdev(clk[sdhc2_ipg_gate], "ipg", "imx21-mmc.1");
229 clk_register_clkdev(clk[per2_gate], "per", "imx21-mmc.2"); 229 clk_register_clkdev(clk[per2_gate], "per", "imx21-mmc.2");
230 clk_register_clkdev(clk[sdhc2_ipg_gate], "ipg", "imx21-mmc.2"); 230 clk_register_clkdev(clk[sdhc2_ipg_gate], "ipg", "imx21-mmc.2");
231 clk_register_clkdev(clk[cspi1_ipg_gate], NULL, "imx27-cspi.0"); 231 clk_register_clkdev(clk[per2_gate], "per", "imx27-cspi.0");
232 clk_register_clkdev(clk[cspi2_ipg_gate], NULL, "imx27-cspi.1"); 232 clk_register_clkdev(clk[cspi1_ipg_gate], "ipg", "imx27-cspi.0");
233 clk_register_clkdev(clk[cspi3_ipg_gate], NULL, "imx27-cspi.2"); 233 clk_register_clkdev(clk[per2_gate], "per", "imx27-cspi.1");
234 clk_register_clkdev(clk[cspi2_ipg_gate], "ipg", "imx27-cspi.1");
235 clk_register_clkdev(clk[per2_gate], "per", "imx27-cspi.2");
236 clk_register_clkdev(clk[cspi3_ipg_gate], "ipg", "imx27-cspi.2");
234 clk_register_clkdev(clk[per3_gate], "per", "imx21-fb.0"); 237 clk_register_clkdev(clk[per3_gate], "per", "imx21-fb.0");
235 clk_register_clkdev(clk[lcdc_ipg_gate], "ipg", "imx21-fb.0"); 238 clk_register_clkdev(clk[lcdc_ipg_gate], "ipg", "imx21-fb.0");
236 clk_register_clkdev(clk[lcdc_ahb_gate], "ahb", "imx21-fb.0"); 239 clk_register_clkdev(clk[lcdc_ahb_gate], "ahb", "imx21-fb.0");
diff --git a/arch/arm/mach-integrator/common.h b/arch/arm/mach-integrator/common.h
index 79197d8b34aa..72516658be1e 100644
--- a/arch/arm/mach-integrator/common.h
+++ b/arch/arm/mach-integrator/common.h
@@ -1,10 +1,5 @@
1#include <linux/amba/serial.h> 1#include <linux/amba/serial.h>
2#ifdef CONFIG_ARCH_INTEGRATOR_AP
3extern struct amba_pl010_data ap_uart_data; 2extern struct amba_pl010_data ap_uart_data;
4#else
5/* Not used without Integrator/AP support anyway */
6struct amba_pl010_data ap_uart_data {};
7#endif
8void integrator_init_early(void); 3void integrator_init_early(void);
9int integrator_init(bool is_cp); 4int integrator_init(bool is_cp);
10void integrator_reserve(void); 5void integrator_reserve(void);
diff --git a/arch/arm/mach-integrator/core.c b/arch/arm/mach-integrator/core.c
index 39c060f75e47..81461d218717 100644
--- a/arch/arm/mach-integrator/core.c
+++ b/arch/arm/mach-integrator/core.c
@@ -71,7 +71,7 @@ int __init integrator_init(bool is_cp)
71 * hard-code them. The Integator/CP and forward have proper cell IDs. 71 * hard-code them. The Integator/CP and forward have proper cell IDs.
72 * Else we leave them undefined to the bus driver can autoprobe them. 72 * Else we leave them undefined to the bus driver can autoprobe them.
73 */ 73 */
74 if (!is_cp) { 74 if (!is_cp && IS_ENABLED(CONFIG_ARCH_INTEGRATOR_AP)) {
75 rtc_device.periphid = 0x00041030; 75 rtc_device.periphid = 0x00041030;
76 uart0_device.periphid = 0x00041010; 76 uart0_device.periphid = 0x00041010;
77 uart1_device.periphid = 0x00041010; 77 uart1_device.periphid = 0x00041010;
diff --git a/arch/arm/mach-integrator/integrator_ap.c b/arch/arm/mach-integrator/integrator_ap.c
index 11e2a4145807..592c168f4b62 100644
--- a/arch/arm/mach-integrator/integrator_ap.c
+++ b/arch/arm/mach-integrator/integrator_ap.c
@@ -94,7 +94,7 @@ void __iomem *ap_syscon_base;
94 * f1b00000 1b000000 GPIO 94 * f1b00000 1b000000 GPIO
95 */ 95 */
96 96
97static struct map_desc ap_io_desc[] __initdata = { 97static struct map_desc ap_io_desc[] __initdata __maybe_unused = {
98 { 98 {
99 .virtual = IO_ADDRESS(INTEGRATOR_HDR_BASE), 99 .virtual = IO_ADDRESS(INTEGRATOR_HDR_BASE),
100 .pfn = __phys_to_pfn(INTEGRATOR_HDR_BASE), 100 .pfn = __phys_to_pfn(INTEGRATOR_HDR_BASE),
@@ -613,7 +613,6 @@ static struct map_desc ap_io_desc_atag[] __initdata = {
613static void __init ap_map_io_atag(void) 613static void __init ap_map_io_atag(void)
614{ 614{
615 iotable_init(ap_io_desc_atag, ARRAY_SIZE(ap_io_desc_atag)); 615 iotable_init(ap_io_desc_atag, ARRAY_SIZE(ap_io_desc_atag));
616 ap_syscon_base = __io_address(INTEGRATOR_SC_BASE);
617 ap_map_io(); 616 ap_map_io();
618} 617}
619 618
@@ -685,6 +684,7 @@ static void __init ap_init(void)
685 684
686 platform_device_register(&cfi_flash_device); 685 platform_device_register(&cfi_flash_device);
687 686
687 ap_syscon_base = __io_address(INTEGRATOR_SC_BASE);
688 sc_dec = readl(ap_syscon_base + INTEGRATOR_SC_DEC_OFFSET); 688 sc_dec = readl(ap_syscon_base + INTEGRATOR_SC_DEC_OFFSET);
689 for (i = 0; i < 4; i++) { 689 for (i = 0; i < 4; i++) {
690 struct lm_device *lmdev; 690 struct lm_device *lmdev;
diff --git a/arch/arm/mach-integrator/integrator_cp.c b/arch/arm/mach-integrator/integrator_cp.c
index 7322838c0447..01a888d7b0b8 100644
--- a/arch/arm/mach-integrator/integrator_cp.c
+++ b/arch/arm/mach-integrator/integrator_cp.c
@@ -78,7 +78,7 @@ static void __iomem *intcp_con_base;
78 * fcb00000 cb000000 CP system control 78 * fcb00000 cb000000 CP system control
79 */ 79 */
80 80
81static struct map_desc intcp_io_desc[] __initdata = { 81static struct map_desc intcp_io_desc[] __initdata __maybe_unused = {
82 { 82 {
83 .virtual = IO_ADDRESS(INTEGRATOR_HDR_BASE), 83 .virtual = IO_ADDRESS(INTEGRATOR_HDR_BASE),
84 .pfn = __phys_to_pfn(INTEGRATOR_HDR_BASE), 84 .pfn = __phys_to_pfn(INTEGRATOR_HDR_BASE),
diff --git a/arch/arm/mach-msm/proc_comm.h b/arch/arm/mach-msm/proc_comm.h
index 12da4cacd4a8..e8d043a0e990 100644
--- a/arch/arm/mach-msm/proc_comm.h
+++ b/arch/arm/mach-msm/proc_comm.h
@@ -253,6 +253,6 @@ enum {
253 (((drvstr) & 0xF) << 17)) 253 (((drvstr) & 0xF) << 17))
254 254
255int msm_proc_comm(unsigned cmd, unsigned *data1, unsigned *data2); 255int msm_proc_comm(unsigned cmd, unsigned *data1, unsigned *data2);
256void __init proc_comm_boot_wait(void); 256void proc_comm_boot_wait(void);
257 257
258#endif 258#endif
diff --git a/arch/arm/mach-mvebu/Makefile b/arch/arm/mach-mvebu/Makefile
index 99df4df680fd..da93bcbc74c1 100644
--- a/arch/arm/mach-mvebu/Makefile
+++ b/arch/arm/mach-mvebu/Makefile
@@ -3,7 +3,8 @@ ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include \
3 3
4AFLAGS_coherency_ll.o := -Wa,-march=armv7-a 4AFLAGS_coherency_ll.o := -Wa,-march=armv7-a
5 5
6obj-y += system-controller.o 6obj-y += system-controller.o
7obj-$(CONFIG_MACH_ARMADA_370_XP) += armada-370-xp.o irq-armada-370-xp.o addr-map.o coherency.o coherency_ll.o pmsu.o 7obj-$(CONFIG_MACH_ARMADA_370_XP) += armada-370-xp.o
8obj-$(CONFIG_ARCH_MVEBU) += addr-map.o coherency.o coherency_ll.o pmsu.o irq-armada-370-xp.o
8obj-$(CONFIG_SMP) += platsmp.o headsmp.o 9obj-$(CONFIG_SMP) += platsmp.o headsmp.o
9obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o 10obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o
diff --git a/arch/arm/mach-omap2/omap-wakeupgen.c b/arch/arm/mach-omap2/omap-wakeupgen.c
index 5d3b4f4f81ae..8633a43acae2 100644
--- a/arch/arm/mach-omap2/omap-wakeupgen.c
+++ b/arch/arm/mach-omap2/omap-wakeupgen.c
@@ -46,7 +46,7 @@
46 46
47static void __iomem *wakeupgen_base; 47static void __iomem *wakeupgen_base;
48static void __iomem *sar_base; 48static void __iomem *sar_base;
49static DEFINE_SPINLOCK(wakeupgen_lock); 49static DEFINE_RAW_SPINLOCK(wakeupgen_lock);
50static unsigned int irq_target_cpu[MAX_IRQS]; 50static unsigned int irq_target_cpu[MAX_IRQS];
51static unsigned int irq_banks = MAX_NR_REG_BANKS; 51static unsigned int irq_banks = MAX_NR_REG_BANKS;
52static unsigned int max_irqs = MAX_IRQS; 52static unsigned int max_irqs = MAX_IRQS;
@@ -134,9 +134,9 @@ static void wakeupgen_mask(struct irq_data *d)
134{ 134{
135 unsigned long flags; 135 unsigned long flags;
136 136
137 spin_lock_irqsave(&wakeupgen_lock, flags); 137 raw_spin_lock_irqsave(&wakeupgen_lock, flags);
138 _wakeupgen_clear(d->irq, irq_target_cpu[d->irq]); 138 _wakeupgen_clear(d->irq, irq_target_cpu[d->irq]);
139 spin_unlock_irqrestore(&wakeupgen_lock, flags); 139 raw_spin_unlock_irqrestore(&wakeupgen_lock, flags);
140} 140}
141 141
142/* 142/*
@@ -146,9 +146,9 @@ static void wakeupgen_unmask(struct irq_data *d)
146{ 146{
147 unsigned long flags; 147 unsigned long flags;
148 148
149 spin_lock_irqsave(&wakeupgen_lock, flags); 149 raw_spin_lock_irqsave(&wakeupgen_lock, flags);
150 _wakeupgen_set(d->irq, irq_target_cpu[d->irq]); 150 _wakeupgen_set(d->irq, irq_target_cpu[d->irq]);
151 spin_unlock_irqrestore(&wakeupgen_lock, flags); 151 raw_spin_unlock_irqrestore(&wakeupgen_lock, flags);
152} 152}
153 153
154#ifdef CONFIG_HOTPLUG_CPU 154#ifdef CONFIG_HOTPLUG_CPU
@@ -189,7 +189,7 @@ static void wakeupgen_irqmask_all(unsigned int cpu, unsigned int set)
189{ 189{
190 unsigned long flags; 190 unsigned long flags;
191 191
192 spin_lock_irqsave(&wakeupgen_lock, flags); 192 raw_spin_lock_irqsave(&wakeupgen_lock, flags);
193 if (set) { 193 if (set) {
194 _wakeupgen_save_masks(cpu); 194 _wakeupgen_save_masks(cpu);
195 _wakeupgen_set_all(cpu, WKG_MASK_ALL); 195 _wakeupgen_set_all(cpu, WKG_MASK_ALL);
@@ -197,7 +197,7 @@ static void wakeupgen_irqmask_all(unsigned int cpu, unsigned int set)
197 _wakeupgen_set_all(cpu, WKG_UNMASK_ALL); 197 _wakeupgen_set_all(cpu, WKG_UNMASK_ALL);
198 _wakeupgen_restore_masks(cpu); 198 _wakeupgen_restore_masks(cpu);
199 } 199 }
200 spin_unlock_irqrestore(&wakeupgen_lock, flags); 200 raw_spin_unlock_irqrestore(&wakeupgen_lock, flags);
201} 201}
202#endif 202#endif
203 203
diff --git a/arch/arm/mach-omap2/timer.c b/arch/arm/mach-omap2/timer.c
index b8ad6e632bb8..265de51b43d9 100644
--- a/arch/arm/mach-omap2/timer.c
+++ b/arch/arm/mach-omap2/timer.c
@@ -228,7 +228,7 @@ static int __init omap_dm_timer_init_one(struct omap_dm_timer *timer,
228 int r = 0; 228 int r = 0;
229 229
230 if (of_have_populated_dt()) { 230 if (of_have_populated_dt()) {
231 np = omap_get_timer_dt(omap_timer_match, NULL); 231 np = omap_get_timer_dt(omap_timer_match, property);
232 if (!np) 232 if (!np)
233 return -ENODEV; 233 return -ENODEV;
234 234
diff --git a/arch/arm/mach-omap2/twl-common.c b/arch/arm/mach-omap2/twl-common.c
index e49b40b4c90a..6a7aec6d1174 100644
--- a/arch/arm/mach-omap2/twl-common.c
+++ b/arch/arm/mach-omap2/twl-common.c
@@ -23,6 +23,7 @@
23#include <linux/i2c.h> 23#include <linux/i2c.h>
24#include <linux/i2c/twl.h> 24#include <linux/i2c/twl.h>
25#include <linux/gpio.h> 25#include <linux/gpio.h>
26#include <linux/string.h>
26#include <linux/regulator/machine.h> 27#include <linux/regulator/machine.h>
27#include <linux/regulator/fixed.h> 28#include <linux/regulator/fixed.h>
28 29
@@ -56,7 +57,7 @@ void __init omap_pmic_init(int bus, u32 clkrate,
56 struct twl4030_platform_data *pmic_data) 57 struct twl4030_platform_data *pmic_data)
57{ 58{
58 omap_mux_init_signal("sys_nirq", OMAP_PIN_INPUT_PULLUP | OMAP_PIN_OFF_WAKEUPENABLE); 59 omap_mux_init_signal("sys_nirq", OMAP_PIN_INPUT_PULLUP | OMAP_PIN_OFF_WAKEUPENABLE);
59 strncpy(pmic_i2c_board_info.type, pmic_type, 60 strlcpy(pmic_i2c_board_info.type, pmic_type,
60 sizeof(pmic_i2c_board_info.type)); 61 sizeof(pmic_i2c_board_info.type));
61 pmic_i2c_board_info.irq = pmic_irq; 62 pmic_i2c_board_info.irq = pmic_irq;
62 pmic_i2c_board_info.platform_data = pmic_data; 63 pmic_i2c_board_info.platform_data = pmic_data;
diff --git a/arch/arm/mach-pxa/include/mach/palmtreo.h b/arch/arm/mach-pxa/include/mach/palmtreo.h
index 2d3f14e3be29..714b6574393e 100644
--- a/arch/arm/mach-pxa/include/mach/palmtreo.h
+++ b/arch/arm/mach-pxa/include/mach/palmtreo.h
@@ -38,13 +38,14 @@
38#define GPIO_NR_TREO_LCD_POWER 25 38#define GPIO_NR_TREO_LCD_POWER 25
39 39
40/* Treo680 specific GPIOs */ 40/* Treo680 specific GPIOs */
41#ifdef CONFIG_MACH_TREO680
42#define GPIO_NR_TREO680_SD_READONLY 33 41#define GPIO_NR_TREO680_SD_READONLY 33
43#define GPIO_NR_TREO680_SD_POWER 42 42#define GPIO_NR_TREO680_SD_POWER 42
44#define GPIO_NR_TREO680_VIBRATE_EN 44 43#define GPIO_NR_TREO680_VIBRATE_EN 44
45#define GPIO_NR_TREO680_KEYB_BL 24 44#define GPIO_NR_TREO680_KEYB_BL 24
46#define GPIO_NR_TREO680_BT_EN 43 45#define GPIO_NR_TREO680_BT_EN 43
47#endif /* CONFIG_MACH_TREO680 */ 46#define GPIO_NR_TREO680_LCD_POWER 77
47#define GPIO_NR_TREO680_LCD_EN 86
48#define GPIO_NR_TREO680_LCD_EN_N 25
48 49
49/* Centro685 specific GPIOs */ 50/* Centro685 specific GPIOs */
50#define GPIO_NR_CENTRO_SD_POWER 21 51#define GPIO_NR_CENTRO_SD_POWER 21
diff --git a/arch/arm/mach-pxa/include/mach/smemc.h b/arch/arm/mach-pxa/include/mach/smemc.h
index b7de471b273a..b802f285fe00 100644
--- a/arch/arm/mach-pxa/include/mach/smemc.h
+++ b/arch/arm/mach-pxa/include/mach/smemc.h
@@ -37,6 +37,7 @@
37#define CSADRCFG1 (SMEMC_VIRT + 0x84) /* Address Configuration Register for CS1 */ 37#define CSADRCFG1 (SMEMC_VIRT + 0x84) /* Address Configuration Register for CS1 */
38#define CSADRCFG2 (SMEMC_VIRT + 0x88) /* Address Configuration Register for CS2 */ 38#define CSADRCFG2 (SMEMC_VIRT + 0x88) /* Address Configuration Register for CS2 */
39#define CSADRCFG3 (SMEMC_VIRT + 0x8C) /* Address Configuration Register for CS3 */ 39#define CSADRCFG3 (SMEMC_VIRT + 0x8C) /* Address Configuration Register for CS3 */
40#define CSMSADRCFG (SMEMC_VIRT + 0xA0) /* Chip Select Configuration Register */
40 41
41/* 42/*
42 * More handy macros for PCMCIA 43 * More handy macros for PCMCIA
diff --git a/arch/arm/mach-pxa/palmtreo.c b/arch/arm/mach-pxa/palmtreo.c
index 3f3c48f2f7ce..577512845a6c 100644
--- a/arch/arm/mach-pxa/palmtreo.c
+++ b/arch/arm/mach-pxa/palmtreo.c
@@ -98,9 +98,6 @@ static unsigned long treo_pin_config[] __initdata = {
98 GPIO96_KP_MKOUT_6, 98 GPIO96_KP_MKOUT_6,
99 GPIO93_KP_DKIN_0 | WAKEUP_ON_LEVEL_HIGH, /* Hotsync button */ 99 GPIO93_KP_DKIN_0 | WAKEUP_ON_LEVEL_HIGH, /* Hotsync button */
100 100
101 /* LCD */
102 GPIOxx_LCD_TFT_16BPP,
103
104 /* Quick Capture Interface */ 101 /* Quick Capture Interface */
105 GPIO84_CIF_FV, 102 GPIO84_CIF_FV,
106 GPIO85_CIF_LV, 103 GPIO85_CIF_LV,
@@ -140,6 +137,12 @@ static unsigned long treo680_pin_config[] __initdata = {
140 /* MATRIX KEYPAD - different wake up source */ 137 /* MATRIX KEYPAD - different wake up source */
141 GPIO100_KP_MKIN_0 | WAKEUP_ON_LEVEL_HIGH, 138 GPIO100_KP_MKIN_0 | WAKEUP_ON_LEVEL_HIGH,
142 GPIO99_KP_MKIN_5, 139 GPIO99_KP_MKIN_5,
140
141 /* LCD... L_BIAS alt fn not configured on Treo680; is GPIO instead */
142 GPIOxx_LCD_16BPP,
143 GPIO74_LCD_FCLK,
144 GPIO75_LCD_LCLK,
145 GPIO76_LCD_PCLK,
143}; 146};
144#endif /* CONFIG_MACH_TREO680 */ 147#endif /* CONFIG_MACH_TREO680 */
145 148
@@ -155,6 +158,9 @@ static unsigned long centro685_pin_config[] __initdata = {
155 /* MATRIX KEYPAD - different wake up source */ 158 /* MATRIX KEYPAD - different wake up source */
156 GPIO100_KP_MKIN_0, 159 GPIO100_KP_MKIN_0,
157 GPIO99_KP_MKIN_5 | WAKEUP_ON_LEVEL_HIGH, 160 GPIO99_KP_MKIN_5 | WAKEUP_ON_LEVEL_HIGH,
161
162 /* LCD */
163 GPIOxx_LCD_TFT_16BPP,
158}; 164};
159#endif /* CONFIG_MACH_CENTRO */ 165#endif /* CONFIG_MACH_CENTRO */
160 166
@@ -328,7 +334,6 @@ static inline void palmtreo_uhc_init(void) {}
328/****************************************************************************** 334/******************************************************************************
329 * Vibra and LEDs 335 * Vibra and LEDs
330 ******************************************************************************/ 336 ******************************************************************************/
331#ifdef CONFIG_MACH_TREO680
332static struct gpio_led treo680_gpio_leds[] = { 337static struct gpio_led treo680_gpio_leds[] = {
333 { 338 {
334 .name = "treo680:vibra:vibra", 339 .name = "treo680:vibra:vibra",
@@ -379,21 +384,17 @@ static struct gpio_led_platform_data centro_gpio_led_info = {
379static struct platform_device palmtreo_leds = { 384static struct platform_device palmtreo_leds = {
380 .name = "leds-gpio", 385 .name = "leds-gpio",
381 .id = -1, 386 .id = -1,
382 .dev = {
383 .platform_data = &treo680_gpio_led_info,
384 }
385}; 387};
386 388
387static void __init palmtreo_leds_init(void) 389static void __init palmtreo_leds_init(void)
388{ 390{
389 if (machine_is_centro()) 391 if (machine_is_centro())
390 palmtreo_leds.dev.platform_data = &centro_gpio_led_info; 392 palmtreo_leds.dev.platform_data = &centro_gpio_led_info;
393 else if (machine_is_treo680())
394 palmtreo_leds.dev.platform_data = &treo680_gpio_led_info;
391 395
392 platform_device_register(&palmtreo_leds); 396 platform_device_register(&palmtreo_leds);
393} 397}
394#else
395static inline void palmtreo_leds_init(void) {}
396#endif
397 398
398/****************************************************************************** 399/******************************************************************************
399 * Machine init 400 * Machine init
@@ -424,10 +425,59 @@ static void __init palmphone_common_init(void)
424} 425}
425 426
426#ifdef CONFIG_MACH_TREO680 427#ifdef CONFIG_MACH_TREO680
428void __init treo680_gpio_init(void)
429{
430 unsigned int gpio;
431
432 /* drive all three lcd gpios high initially */
433 const unsigned long lcd_flags = GPIOF_INIT_HIGH | GPIOF_DIR_OUT;
434
435 /*
436 * LCD GPIO initialization...
437 */
438
439 /*
440 * This is likely the power to the lcd. Toggling it low/high appears to
441 * turn the lcd off/on. Can be toggled after lcd is initialized without
442 * any apparent adverse effects to the lcd operation. Note that this
443 * gpio line is used by the lcd controller as the L_BIAS signal, but
444 * treo680 configures it as gpio.
445 */
446 gpio = GPIO_NR_TREO680_LCD_POWER;
447 if (gpio_request_one(gpio, lcd_flags, "LCD power") < 0)
448 goto fail;
449
450 /*
451 * These two are called "enables", for lack of a better understanding.
452 * If either of these are toggled after the lcd is initialized, the
453 * image becomes degraded. N.B. The IPL shipped with the treo
454 * configures GPIO_NR_TREO680_LCD_EN_N as output and drives it high. If
455 * the IPL is ever reprogrammed, this initialization may be need to be
456 * revisited.
457 */
458 gpio = GPIO_NR_TREO680_LCD_EN;
459 if (gpio_request_one(gpio, lcd_flags, "LCD enable") < 0)
460 goto fail;
461 gpio = GPIO_NR_TREO680_LCD_EN_N;
462 if (gpio_request_one(gpio, lcd_flags, "LCD enable_n") < 0)
463 goto fail;
464
465 /* driving this low turns LCD on */
466 gpio_set_value(GPIO_NR_TREO680_LCD_EN_N, 0);
467
468 return;
469 fail:
470 pr_err("gpio %d initialization failed\n", gpio);
471 gpio_free(GPIO_NR_TREO680_LCD_POWER);
472 gpio_free(GPIO_NR_TREO680_LCD_EN);
473 gpio_free(GPIO_NR_TREO680_LCD_EN_N);
474}
475
427static void __init treo680_init(void) 476static void __init treo680_init(void)
428{ 477{
429 pxa2xx_mfp_config(ARRAY_AND_SIZE(treo680_pin_config)); 478 pxa2xx_mfp_config(ARRAY_AND_SIZE(treo680_pin_config));
430 palmphone_common_init(); 479 palmphone_common_init();
480 treo680_gpio_init();
431 palm27x_mmc_init(GPIO_NR_TREO_SD_DETECT_N, GPIO_NR_TREO680_SD_READONLY, 481 palm27x_mmc_init(GPIO_NR_TREO_SD_DETECT_N, GPIO_NR_TREO680_SD_READONLY,
432 GPIO_NR_TREO680_SD_POWER, 0); 482 GPIO_NR_TREO680_SD_POWER, 0);
433} 483}
diff --git a/arch/arm/mach-pxa/smemc.c b/arch/arm/mach-pxa/smemc.c
index 79923058d10f..f38aa890b2c9 100644
--- a/arch/arm/mach-pxa/smemc.c
+++ b/arch/arm/mach-pxa/smemc.c
@@ -40,6 +40,8 @@ static void pxa3xx_smemc_resume(void)
40 __raw_writel(csadrcfg[1], CSADRCFG1); 40 __raw_writel(csadrcfg[1], CSADRCFG1);
41 __raw_writel(csadrcfg[2], CSADRCFG2); 41 __raw_writel(csadrcfg[2], CSADRCFG2);
42 __raw_writel(csadrcfg[3], CSADRCFG3); 42 __raw_writel(csadrcfg[3], CSADRCFG3);
43 /* CSMSADRCFG wakes up in its default state (0), so we need to set it */
44 __raw_writel(0x2, CSMSADRCFG);
43} 45}
44 46
45static struct syscore_ops smemc_syscore_ops = { 47static struct syscore_ops smemc_syscore_ops = {
@@ -49,8 +51,19 @@ static struct syscore_ops smemc_syscore_ops = {
49 51
50static int __init smemc_init(void) 52static int __init smemc_init(void)
51{ 53{
52 if (cpu_is_pxa3xx()) 54 if (cpu_is_pxa3xx()) {
55 /*
56 * The only documentation we have on the
57 * Chip Select Configuration Register (CSMSADRCFG) is that
58 * it must be programmed to 0x2.
59 * Moreover, in the bit definitions, the second bit
60 * (CSMSADRCFG[1]) is called "SETALWAYS".
61 * Other bits are reserved in this register.
62 */
63 __raw_writel(0x2, CSMSADRCFG);
64
53 register_syscore_ops(&smemc_syscore_ops); 65 register_syscore_ops(&smemc_syscore_ops);
66 }
54 67
55 return 0; 68 return 0;
56} 69}
diff --git a/arch/arm/mach-pxa/spitz.c b/arch/arm/mach-pxa/spitz.c
index 2073f0e6db0d..7e2cb880daa6 100644
--- a/arch/arm/mach-pxa/spitz.c
+++ b/arch/arm/mach-pxa/spitz.c
@@ -732,7 +732,7 @@ static inline void spitz_lcd_init(void) {}
732#endif 732#endif
733 733
734/****************************************************************************** 734/******************************************************************************
735 * Framebuffer 735 * NAND Flash
736 ******************************************************************************/ 736 ******************************************************************************/
737#if defined(CONFIG_MTD_NAND_SHARPSL) || defined(CONFIG_MTD_NAND_SHARPSL_MODULE) 737#if defined(CONFIG_MTD_NAND_SHARPSL) || defined(CONFIG_MTD_NAND_SHARPSL_MODULE)
738static struct mtd_partition spitz_nand_partitions[] = { 738static struct mtd_partition spitz_nand_partitions[] = {
@@ -858,7 +858,7 @@ static inline void spitz_nor_init(void) {}
858#endif 858#endif
859 859
860/****************************************************************************** 860/******************************************************************************
861 * GPIO expander 861 * I2C devices
862 ******************************************************************************/ 862 ******************************************************************************/
863#if defined(CONFIG_I2C_PXA) || defined(CONFIG_I2C_PXA_MODULE) 863#if defined(CONFIG_I2C_PXA) || defined(CONFIG_I2C_PXA_MODULE)
864static struct pca953x_platform_data akita_pca953x_pdata = { 864static struct pca953x_platform_data akita_pca953x_pdata = {
diff --git a/arch/arm/mach-s3c24xx/Kconfig b/arch/arm/mach-s3c24xx/Kconfig
index 3445c4f42347..7079a70b1ab8 100644
--- a/arch/arm/mach-s3c24xx/Kconfig
+++ b/arch/arm/mach-s3c24xx/Kconfig
@@ -226,6 +226,7 @@ config MACH_QT2410
226config ARCH_SMDK2410 226config ARCH_SMDK2410
227 bool "SMDK2410/A9M2410" 227 bool "SMDK2410/A9M2410"
228 select S3C24XX_SMDK 228 select S3C24XX_SMDK
229 select S3C_DEV_USB_HOST
229 help 230 help
230 Say Y here if you are using the SMDK2410 or the derived module A9M2410 231 Say Y here if you are using the SMDK2410 or the derived module A9M2410
231 <http://www.fsforth.de> 232 <http://www.fsforth.de>
@@ -273,6 +274,7 @@ config S3C2412_DMA
273 274
274config S3C2412_PM 275config S3C2412_PM
275 bool 276 bool
277 select S3C2412_PM_SLEEP
276 help 278 help
277 Internal config node to apply S3C2412 power management 279 Internal config node to apply S3C2412 power management
278 280
diff --git a/arch/arm/mach-s3c24xx/common-s3c2443.c b/arch/arm/mach-s3c24xx/common-s3c2443.c
index aeb4a24ff3ed..f6b9f2ef01bd 100644
--- a/arch/arm/mach-s3c24xx/common-s3c2443.c
+++ b/arch/arm/mach-s3c24xx/common-s3c2443.c
@@ -132,7 +132,7 @@ static struct clk *clk_msysclk_sources[] = {
132 [3] = &clk_mpllref, 132 [3] = &clk_mpllref,
133}; 133};
134 134
135struct clksrc_clk clk_msysclk = { 135static struct clksrc_clk clk_msysclk = {
136 .clk = { 136 .clk = {
137 .name = "msysclk", 137 .name = "msysclk",
138 .parent = &clk_xtal, 138 .parent = &clk_xtal,
diff --git a/arch/arm/mach-s3c24xx/common.c b/arch/arm/mach-s3c24xx/common.c
index 0c9e9a785ef6..6bcf87f65f9e 100644
--- a/arch/arm/mach-s3c24xx/common.c
+++ b/arch/arm/mach-s3c24xx/common.c
@@ -197,7 +197,7 @@ static unsigned long s3c24xx_read_idcode_v4(void)
197 197
198static void s3c24xx_default_idle(void) 198static void s3c24xx_default_idle(void)
199{ 199{
200 unsigned long tmp; 200 unsigned long tmp = 0;
201 int i; 201 int i;
202 202
203 /* idle the system by using the idle mode which will wait for an 203 /* idle the system by using the idle mode which will wait for an
diff --git a/arch/arm/mach-s3c24xx/include/mach/debug-macro.S b/arch/arm/mach-s3c24xx/include/mach/debug-macro.S
index 4135de87d1f7..13ed33c69113 100644
--- a/arch/arm/mach-s3c24xx/include/mach/debug-macro.S
+++ b/arch/arm/mach-s3c24xx/include/mach/debug-macro.S
@@ -40,17 +40,17 @@
40 addeq \rd, \rx, #(S3C24XX_PA_GPIO - S3C24XX_PA_UART) 40 addeq \rd, \rx, #(S3C24XX_PA_GPIO - S3C24XX_PA_UART)
41 addne \rd, \rx, #(S3C24XX_VA_GPIO - S3C24XX_VA_UART) 41 addne \rd, \rx, #(S3C24XX_VA_GPIO - S3C24XX_VA_UART)
42 bic \rd, \rd, #0xff000 42 bic \rd, \rd, #0xff000
43 ldr \rd, [ \rd, # S3C2410_GSTATUS1 - S3C2410_GPIOREG(0) ] 43 ldr \rd, [\rd, # S3C2410_GSTATUS1 - S3C2410_GPIOREG(0)]
44 and \rd, \rd, #0x00ff0000 44 and \rd, \rd, #0x00ff0000
45 teq \rd, #0x00440000 @ is it 2440? 45 teq \rd, #0x00440000 @ is it 2440?
461004: 461004:
47 ldr \rd, [ \rx, # S3C2410_UFSTAT ] 47 ldr \rd, [\rx, # S3C2410_UFSTAT]
48 moveq \rd, \rd, lsr #SHIFT_2440TXF 48 moveq \rd, \rd, lsr #SHIFT_2440TXF
49 tst \rd, #S3C2410_UFSTAT_TXFULL 49 tst \rd, #S3C2410_UFSTAT_TXFULL
50 .endm 50 .endm
51 51
52 .macro fifo_full_s3c2410 rd, rx 52 .macro fifo_full_s3c2410 rd, rx
53 ldr \rd, [ \rx, # S3C2410_UFSTAT ] 53 ldr \rd, [\rx, # S3C2410_UFSTAT]
54 tst \rd, #S3C2410_UFSTAT_TXFULL 54 tst \rd, #S3C2410_UFSTAT_TXFULL
55 .endm 55 .endm
56 56
@@ -68,18 +68,18 @@
68 addeq \rd, \rx, #(S3C24XX_PA_GPIO - S3C24XX_PA_UART) 68 addeq \rd, \rx, #(S3C24XX_PA_GPIO - S3C24XX_PA_UART)
69 addne \rd, \rx, #(S3C24XX_VA_GPIO - S3C24XX_VA_UART) 69 addne \rd, \rx, #(S3C24XX_VA_GPIO - S3C24XX_VA_UART)
70 bic \rd, \rd, #0xff000 70 bic \rd, \rd, #0xff000
71 ldr \rd, [ \rd, # S3C2410_GSTATUS1 - S3C2410_GPIOREG(0) ] 71 ldr \rd, [\rd, # S3C2410_GSTATUS1 - S3C2410_GPIOREG(0)]
72 and \rd, \rd, #0x00ff0000 72 and \rd, \rd, #0x00ff0000
73 teq \rd, #0x00440000 @ is it 2440? 73 teq \rd, #0x00440000 @ is it 2440?
74 74
7510000: 7510000:
76 ldr \rd, [ \rx, # S3C2410_UFSTAT ] 76 ldr \rd, [\rx, # S3C2410_UFSTAT]
77 andne \rd, \rd, #S3C2410_UFSTAT_TXMASK 77 andne \rd, \rd, #S3C2410_UFSTAT_TXMASK
78 andeq \rd, \rd, #S3C2440_UFSTAT_TXMASK 78 andeq \rd, \rd, #S3C2440_UFSTAT_TXMASK
79 .endm 79 .endm
80 80
81 .macro fifo_level_s3c2410 rd, rx 81 .macro fifo_level_s3c2410 rd, rx
82 ldr \rd, [ \rx, # S3C2410_UFSTAT ] 82 ldr \rd, [\rx, # S3C2410_UFSTAT]
83 and \rd, \rd, #S3C2410_UFSTAT_TXMASK 83 and \rd, \rd, #S3C2410_UFSTAT_TXMASK
84 .endm 84 .endm
85 85
diff --git a/arch/arm/mach-s3c24xx/include/mach/entry-macro.S b/arch/arm/mach-s3c24xx/include/mach/entry-macro.S
index 7615a14773fa..6a21beeba1da 100644
--- a/arch/arm/mach-s3c24xx/include/mach/entry-macro.S
+++ b/arch/arm/mach-s3c24xx/include/mach/entry-macro.S
@@ -31,10 +31,10 @@
31 31
32 @@ try the interrupt offset register, since it is there 32 @@ try the interrupt offset register, since it is there
33 33
34 ldr \irqstat, [ \base, #INTPND ] 34 ldr \irqstat, [\base, #INTPND ]
35 teq \irqstat, #0 35 teq \irqstat, #0
36 beq 1002f 36 beq 1002f
37 ldr \irqnr, [ \base, #INTOFFSET ] 37 ldr \irqnr, [\base, #INTOFFSET ]
38 mov \tmp, #1 38 mov \tmp, #1
39 tst \irqstat, \tmp, lsl \irqnr 39 tst \irqstat, \tmp, lsl \irqnr
40 bne 1001f 40 bne 1001f
diff --git a/arch/arm/mach-s3c24xx/mach-osiris.c b/arch/arm/mach-s3c24xx/mach-osiris.c
index bb36d832bd3d..c52100ef2322 100644
--- a/arch/arm/mach-s3c24xx/mach-osiris.c
+++ b/arch/arm/mach-s3c24xx/mach-osiris.c
@@ -22,6 +22,7 @@
22#include <linux/clk.h> 22#include <linux/clk.h>
23#include <linux/i2c.h> 23#include <linux/i2c.h>
24#include <linux/io.h> 24#include <linux/io.h>
25#include <linux/platform_device.h>
25 26
26#include <linux/i2c/tps65010.h> 27#include <linux/i2c/tps65010.h>
27 28
diff --git a/arch/arm/mach-s3c24xx/pm-h1940.S b/arch/arm/mach-s3c24xx/pm-h1940.S
index c93bf2db9f4d..6183a688012b 100644
--- a/arch/arm/mach-s3c24xx/pm-h1940.S
+++ b/arch/arm/mach-s3c24xx/pm-h1940.S
@@ -30,4 +30,4 @@
30 30
31h1940_pm_return: 31h1940_pm_return:
32 mov r0, #S3C2410_PA_GPIO 32 mov r0, #S3C2410_PA_GPIO
33 ldr pc, [ r0, #S3C2410_GSTATUS3 - S3C24XX_VA_GPIO ] 33 ldr pc, [r0, #S3C2410_GSTATUS3 - S3C24XX_VA_GPIO]
diff --git a/arch/arm/mach-s3c24xx/pm-s3c2412.c b/arch/arm/mach-s3c24xx/pm-s3c2412.c
index c60f67a75aff..f5dc2b254a5a 100644
--- a/arch/arm/mach-s3c24xx/pm-s3c2412.c
+++ b/arch/arm/mach-s3c24xx/pm-s3c2412.c
@@ -48,7 +48,8 @@ static int s3c2412_cpu_suspend(unsigned long arg)
48 48
49 s3c2412_sleep_enter(); 49 s3c2412_sleep_enter();
50 50
51 panic("sleep resumed to originator?"); 51 pr_info("Failed to suspend the system\n");
52 return 1; /* Aborting suspend */
52} 53}
53 54
54static void s3c2412_pm_prepare(void) 55static void s3c2412_pm_prepare(void)
diff --git a/arch/arm/mach-s3c24xx/pm-s3c2416.c b/arch/arm/mach-s3c24xx/pm-s3c2416.c
index 1bd4817b8eb8..1a9e8dd194ff 100644
--- a/arch/arm/mach-s3c24xx/pm-s3c2416.c
+++ b/arch/arm/mach-s3c24xx/pm-s3c2416.c
@@ -34,7 +34,8 @@ static int s3c2416_cpu_suspend(unsigned long arg)
34 34
35 s3c2412_sleep_enter(); 35 s3c2412_sleep_enter();
36 36
37 panic("sleep resumed to originator?"); 37 pr_info("Failed to suspend the system\n");
38 return 1; /* Aborting suspend */
38} 39}
39 40
40static void s3c2416_pm_prepare(void) 41static void s3c2416_pm_prepare(void)
diff --git a/arch/arm/mach-s3c24xx/sleep-s3c2410.S b/arch/arm/mach-s3c24xx/sleep-s3c2410.S
index dd5b6388a5a5..65200ae72c90 100644
--- a/arch/arm/mach-s3c24xx/sleep-s3c2410.S
+++ b/arch/arm/mach-s3c24xx/sleep-s3c2410.S
@@ -45,9 +45,9 @@ ENTRY(s3c2410_cpu_suspend)
45 ldr r4, =S3C2410_REFRESH 45 ldr r4, =S3C2410_REFRESH
46 ldr r5, =S3C24XX_MISCCR 46 ldr r5, =S3C24XX_MISCCR
47 ldr r6, =S3C2410_CLKCON 47 ldr r6, =S3C2410_CLKCON
48 ldr r7, [ r4 ] @ get REFRESH (and ensure in TLB) 48 ldr r7, [r4] @ get REFRESH (and ensure in TLB)
49 ldr r8, [ r5 ] @ get MISCCR (and ensure in TLB) 49 ldr r8, [r5] @ get MISCCR (and ensure in TLB)
50 ldr r9, [ r6 ] @ get CLKCON (and ensure in TLB) 50 ldr r9, [r6] @ get CLKCON (and ensure in TLB)
51 51
52 orr r7, r7, #S3C2410_REFRESH_SELF @ SDRAM sleep command 52 orr r7, r7, #S3C2410_REFRESH_SELF @ SDRAM sleep command
53 orr r8, r8, #S3C2410_MISCCR_SDSLEEP @ SDRAM power-down signals 53 orr r8, r8, #S3C2410_MISCCR_SDSLEEP @ SDRAM power-down signals
@@ -61,8 +61,8 @@ ENTRY(s3c2410_cpu_suspend)
61 @@ align next bit of code to cache line 61 @@ align next bit of code to cache line
62 .align 5 62 .align 5
63s3c2410_do_sleep: 63s3c2410_do_sleep:
64 streq r7, [ r4 ] @ SDRAM sleep command 64 streq r7, [r4] @ SDRAM sleep command
65 streq r8, [ r5 ] @ SDRAM power-down config 65 streq r8, [r5] @ SDRAM power-down config
66 streq r9, [ r6 ] @ CPU sleep 66 streq r9, [r6] @ CPU sleep
671: beq 1b 671: beq 1b
68 mov pc, r14 68 mov pc, r14
diff --git a/arch/arm/mach-s3c24xx/sleep-s3c2412.S b/arch/arm/mach-s3c24xx/sleep-s3c2412.S
index c82418ed714d..5adaceb7da13 100644
--- a/arch/arm/mach-s3c24xx/sleep-s3c2412.S
+++ b/arch/arm/mach-s3c24xx/sleep-s3c2412.S
@@ -57,12 +57,12 @@ s3c2412_sleep_enter1:
57 * retry, as simply returning causes the system to lock. 57 * retry, as simply returning causes the system to lock.
58 */ 58 */
59 59
60 ldrne r9, [ r1 ] 60 ldrne r9, [r1]
61 strne r9, [ r1 ] 61 strne r9, [r1]
62 ldrne r9, [ r2 ] 62 ldrne r9, [r2]
63 strne r9, [ r2 ] 63 strne r9, [r2]
64 ldrne r9, [ r3 ] 64 ldrne r9, [r3]
65 strne r9, [ r3 ] 65 strne r9, [r3]
66 bne s3c2412_sleep_enter1 66 bne s3c2412_sleep_enter1
67 67
68 mov pc, r14 68 mov pc, r14
diff --git a/arch/arm/mach-s3c64xx/pm.c b/arch/arm/mach-s3c64xx/pm.c
index d2e1a16690bd..ce8499063228 100644
--- a/arch/arm/mach-s3c64xx/pm.c
+++ b/arch/arm/mach-s3c64xx/pm.c
@@ -296,7 +296,8 @@ static int s3c64xx_cpu_suspend(unsigned long arg)
296 296
297 /* we should never get past here */ 297 /* we should never get past here */
298 298
299 panic("sleep resumed to originator?"); 299 pr_info("Failed to suspend the system\n");
300 return 1; /* Aborting suspend */
300} 301}
301 302
302/* mapping of interrupts to parts of the wakeup mask */ 303/* mapping of interrupts to parts of the wakeup mask */
diff --git a/arch/arm/mach-s5p64x0/pm.c b/arch/arm/mach-s5p64x0/pm.c
index 9cba18bfe47b..97c2a08ad490 100644
--- a/arch/arm/mach-s5p64x0/pm.c
+++ b/arch/arm/mach-s5p64x0/pm.c
@@ -103,8 +103,8 @@ static int s5p64x0_cpu_suspend(unsigned long arg)
103 "mcr p15, 0, %0, c7, c10, 4\n\t" 103 "mcr p15, 0, %0, c7, c10, 4\n\t"
104 "mcr p15, 0, %0, c7, c0, 4" : : "r" (tmp)); 104 "mcr p15, 0, %0, c7, c0, 4" : : "r" (tmp));
105 105
106 /* we should never get past here */ 106 pr_info("Failed to suspend the system\n");
107 panic("sleep resumed to originator?"); 107 return 1; /* Aborting suspend */
108} 108}
109 109
110/* mapping of interrupts to parts of the wakeup mask */ 110/* mapping of interrupts to parts of the wakeup mask */
diff --git a/arch/arm/mach-s5pv210/include/mach/uncompress.h b/arch/arm/mach-s5pv210/include/mach/uncompress.h
index 08ff2fda1fb9..ef977ea8546d 100644
--- a/arch/arm/mach-s5pv210/include/mach/uncompress.h
+++ b/arch/arm/mach-s5pv210/include/mach/uncompress.h
@@ -19,6 +19,8 @@
19static void arch_detect_cpu(void) 19static void arch_detect_cpu(void)
20{ 20{
21 /* we do not need to do any cpu detection here at the moment. */ 21 /* we do not need to do any cpu detection here at the moment. */
22 fifo_mask = S5PV210_UFSTAT_TXMASK;
23 fifo_max = 63 << S5PV210_UFSTAT_TXSHIFT;
22} 24}
23 25
24#endif /* __ASM_ARCH_UNCOMPRESS_H */ 26#endif /* __ASM_ARCH_UNCOMPRESS_H */
diff --git a/arch/arm/mach-s5pv210/pm.c b/arch/arm/mach-s5pv210/pm.c
index 736bfb103cbc..2b68a67b6e95 100644
--- a/arch/arm/mach-s5pv210/pm.c
+++ b/arch/arm/mach-s5pv210/pm.c
@@ -104,8 +104,8 @@ static int s5pv210_cpu_suspend(unsigned long arg)
104 "mcr p15, 0, %0, c7, c10, 4\n\t" 104 "mcr p15, 0, %0, c7, c10, 4\n\t"
105 "wfi" : : "r" (tmp)); 105 "wfi" : : "r" (tmp));
106 106
107 /* we should never get past here */ 107 pr_info("Failed to suspend the system\n");
108 panic("sleep resumed to originator?"); 108 return 1; /* Aborting suspend */
109} 109}
110 110
111static void s5pv210_pm_prepare(void) 111static void s5pv210_pm_prepare(void)
diff --git a/arch/arm/mach-sa1100/lart.c b/arch/arm/mach-sa1100/lart.c
index f69f78fc3ddd..bca7e60b24d3 100644
--- a/arch/arm/mach-sa1100/lart.c
+++ b/arch/arm/mach-sa1100/lart.c
@@ -24,9 +24,6 @@
24 24
25#include "generic.h" 25#include "generic.h"
26 26
27
28#warning "include/asm/arch-sa1100/ide.h needs fixing for lart"
29
30static struct mcp_plat_data lart_mcp_data = { 27static struct mcp_plat_data lart_mcp_data = {
31 .mccr0 = MCCR0_ADM, 28 .mccr0 = MCCR0_ADM,
32 .sclk_rate = 11981000, 29 .sclk_rate = 11981000,
diff --git a/arch/arm/mach-ux500/cpu.c b/arch/arm/mach-ux500/cpu.c
index 721e7b4275f3..d4dcec53171a 100644
--- a/arch/arm/mach-ux500/cpu.c
+++ b/arch/arm/mach-ux500/cpu.c
@@ -71,13 +71,11 @@ void __init ux500_init_irq(void)
71 * Init clocks here so that they are available for system timer 71 * Init clocks here so that they are available for system timer
72 * initialization. 72 * initialization.
73 */ 73 */
74 if (cpu_is_u8500_family()) 74 if (cpu_is_u8500_family() || cpu_is_u9540())
75 db8500_prcmu_early_init(); 75 db8500_prcmu_early_init();
76 76
77 if (cpu_is_u8500_family()) 77 if (cpu_is_u8500_family() || cpu_is_u9540())
78 u8500_clk_init(); 78 u8500_clk_init();
79 else if (cpu_is_u9540())
80 u9540_clk_init();
81 else if (cpu_is_u8540()) 79 else if (cpu_is_u8540())
82 u8540_clk_init(); 80 u8540_clk_init();
83} 81}
diff --git a/arch/arm/mach-ux500/cpuidle.c b/arch/arm/mach-ux500/cpuidle.c
index b54884bd2549..ce9149302cc3 100644
--- a/arch/arm/mach-ux500/cpuidle.c
+++ b/arch/arm/mach-ux500/cpuidle.c
@@ -40,8 +40,10 @@ static inline int ux500_enter_idle(struct cpuidle_device *dev,
40 goto wfi; 40 goto wfi;
41 41
42 /* decouple the gic from the A9 cores */ 42 /* decouple the gic from the A9 cores */
43 if (prcmu_gic_decouple()) 43 if (prcmu_gic_decouple()) {
44 spin_unlock(&master_lock);
44 goto out; 45 goto out;
46 }
45 47
46 /* If an error occur, we will have to recouple the gic 48 /* If an error occur, we will have to recouple the gic
47 * manually */ 49 * manually */
diff --git a/arch/arm/mach-versatile/Kconfig b/arch/arm/mach-versatile/Kconfig
index 63d8e9f81b99..1dba3688275f 100644
--- a/arch/arm/mach-versatile/Kconfig
+++ b/arch/arm/mach-versatile/Kconfig
@@ -25,4 +25,9 @@ config MACH_VERSATILE_DT
25 Include support for the ARM(R) Versatile/PB platform, 25 Include support for the ARM(R) Versatile/PB platform,
26 using the device tree for discovery 26 using the device tree for discovery
27 27
28config MACH_VERSATILE_AUTO
29 def_bool y
30 depends on !ARCH_VERSATILE_PB && !MACH_VERSATILE_AB
31 select MACH_VERSATILE_DT
32
28endmenu 33endmenu
diff --git a/arch/arm/mach-versatile/core.c b/arch/arm/mach-versatile/core.c
index a78827b70270..43478c299cc8 100644
--- a/arch/arm/mach-versatile/core.c
+++ b/arch/arm/mach-versatile/core.c
@@ -127,7 +127,7 @@ void __init versatile_init_irq(void)
127 writel(PIC_MASK, VA_SIC_BASE + SIC_INT_PIC_ENABLE); 127 writel(PIC_MASK, VA_SIC_BASE + SIC_INT_PIC_ENABLE);
128} 128}
129 129
130static struct map_desc versatile_io_desc[] __initdata = { 130static struct map_desc versatile_io_desc[] __initdata __maybe_unused = {
131 { 131 {
132 .virtual = IO_ADDRESS(VERSATILE_SYS_BASE), 132 .virtual = IO_ADDRESS(VERSATILE_SYS_BASE),
133 .pfn = __phys_to_pfn(VERSATILE_SYS_BASE), 133 .pfn = __phys_to_pfn(VERSATILE_SYS_BASE),
diff --git a/arch/arm/mach-w90x900/include/mach/entry-macro.S b/arch/arm/mach-w90x900/include/mach/entry-macro.S
index e286daca6827..0ff612ac95ba 100644
--- a/arch/arm/mach-w90x900/include/mach/entry-macro.S
+++ b/arch/arm/mach-w90x900/include/mach/entry-macro.S
@@ -19,8 +19,8 @@
19 19
20 mov \base, #AIC_BA 20 mov \base, #AIC_BA
21 21
22 ldr \irqnr, [ \base, #AIC_IPER] 22 ldr \irqnr, [\base, #AIC_IPER]
23 ldr \irqnr, [ \base, #AIC_ISNR] 23 ldr \irqnr, [\base, #AIC_ISNR]
24 cmp \irqnr, #0 24 cmp \irqnr, #0
25 25
26 .endm 26 .endm
diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c
index 4136b20cba3c..e06c34bdc34a 100644
--- a/arch/arm/plat-omap/dma.c
+++ b/arch/arm/plat-omap/dma.c
@@ -2019,7 +2019,7 @@ static int omap_system_dma_probe(struct platform_device *pdev)
2019 errata = p->errata; 2019 errata = p->errata;
2020 2020
2021 if ((d->dev_caps & RESERVE_CHANNEL) && omap_dma_reserve_channels 2021 if ((d->dev_caps & RESERVE_CHANNEL) && omap_dma_reserve_channels
2022 && (omap_dma_reserve_channels <= dma_lch_count)) 2022 && (omap_dma_reserve_channels < d->lch_count))
2023 d->lch_count = omap_dma_reserve_channels; 2023 d->lch_count = omap_dma_reserve_channels;
2024 2024
2025 dma_lch_count = d->lch_count; 2025 dma_lch_count = d->lch_count;
diff --git a/arch/arm/plat-orion/mpp.c b/arch/arm/plat-orion/mpp.c
index e686fe76a96b..7310bcfb299f 100644
--- a/arch/arm/plat-orion/mpp.c
+++ b/arch/arm/plat-orion/mpp.c
@@ -49,7 +49,7 @@ void __init orion_mpp_conf(unsigned int *mpp_list, unsigned int variant_mask,
49 "number (%u)\n", num); 49 "number (%u)\n", num);
50 continue; 50 continue;
51 } 51 }
52 if (variant_mask & !(*mpp_list & variant_mask)) { 52 if (variant_mask && !(*mpp_list & variant_mask)) {
53 printk(KERN_WARNING 53 printk(KERN_WARNING
54 "orion_mpp_conf: requested MPP%u config " 54 "orion_mpp_conf: requested MPP%u config "
55 "unavailable on this hardware\n", num); 55 "unavailable on this hardware\n", num);
diff --git a/arch/arm/plat-samsung/include/plat/debug-macro.S b/arch/arm/plat-samsung/include/plat/debug-macro.S
index 207e275362a8..f3a9cff6d5d4 100644
--- a/arch/arm/plat-samsung/include/plat/debug-macro.S
+++ b/arch/arm/plat-samsung/include/plat/debug-macro.S
@@ -14,12 +14,12 @@
14/* The S5PV210/S5PC110 implementations are as belows. */ 14/* The S5PV210/S5PC110 implementations are as belows. */
15 15
16 .macro fifo_level_s5pv210 rd, rx 16 .macro fifo_level_s5pv210 rd, rx
17 ldr \rd, [ \rx, # S3C2410_UFSTAT ] 17 ldr \rd, [\rx, # S3C2410_UFSTAT]
18 and \rd, \rd, #S5PV210_UFSTAT_TXMASK 18 and \rd, \rd, #S5PV210_UFSTAT_TXMASK
19 .endm 19 .endm
20 20
21 .macro fifo_full_s5pv210 rd, rx 21 .macro fifo_full_s5pv210 rd, rx
22 ldr \rd, [ \rx, # S3C2410_UFSTAT ] 22 ldr \rd, [\rx, # S3C2410_UFSTAT]
23 tst \rd, #S5PV210_UFSTAT_TXFULL 23 tst \rd, #S5PV210_UFSTAT_TXFULL
24 .endm 24 .endm
25 25
@@ -27,7 +27,7 @@
27 * most widely re-used */ 27 * most widely re-used */
28 28
29 .macro fifo_level_s3c2440 rd, rx 29 .macro fifo_level_s3c2440 rd, rx
30 ldr \rd, [ \rx, # S3C2410_UFSTAT ] 30 ldr \rd, [\rx, # S3C2410_UFSTAT]
31 and \rd, \rd, #S3C2440_UFSTAT_TXMASK 31 and \rd, \rd, #S3C2440_UFSTAT_TXMASK
32 .endm 32 .endm
33 33
@@ -36,7 +36,7 @@
36#endif 36#endif
37 37
38 .macro fifo_full_s3c2440 rd, rx 38 .macro fifo_full_s3c2440 rd, rx
39 ldr \rd, [ \rx, # S3C2410_UFSTAT ] 39 ldr \rd, [\rx, # S3C2410_UFSTAT]
40 tst \rd, #S3C2440_UFSTAT_TXFULL 40 tst \rd, #S3C2440_UFSTAT_TXFULL
41 .endm 41 .endm
42 42
@@ -45,11 +45,11 @@
45#endif 45#endif
46 46
47 .macro senduart,rd,rx 47 .macro senduart,rd,rx
48 strb \rd, [\rx, # S3C2410_UTXH ] 48 strb \rd, [\rx, # S3C2410_UTXH]
49 .endm 49 .endm
50 50
51 .macro busyuart, rd, rx 51 .macro busyuart, rd, rx
52 ldr \rd, [ \rx, # S3C2410_UFCON ] 52 ldr \rd, [\rx, # S3C2410_UFCON]
53 tst \rd, #S3C2410_UFCON_FIFOMODE @ fifo enabled? 53 tst \rd, #S3C2410_UFCON_FIFOMODE @ fifo enabled?
54 beq 1001f @ 54 beq 1001f @
55 @ FIFO enabled... 55 @ FIFO enabled...
@@ -60,7 +60,7 @@
60 60
611001: 611001:
62 @ busy waiting for non fifo 62 @ busy waiting for non fifo
63 ldr \rd, [ \rx, # S3C2410_UTRSTAT ] 63 ldr \rd, [\rx, # S3C2410_UTRSTAT]
64 tst \rd, #S3C2410_UTRSTAT_TXFE 64 tst \rd, #S3C2410_UTRSTAT_TXFE
65 beq 1001b 65 beq 1001b
66 66
@@ -68,7 +68,7 @@
68 .endm 68 .endm
69 69
70 .macro waituart,rd,rx 70 .macro waituart,rd,rx
71 ldr \rd, [ \rx, # S3C2410_UFCON ] 71 ldr \rd, [\rx, # S3C2410_UFCON]
72 tst \rd, #S3C2410_UFCON_FIFOMODE @ fifo enabled? 72 tst \rd, #S3C2410_UFCON_FIFOMODE @ fifo enabled?
73 beq 1001f @ 73 beq 1001f @
74 @ FIFO enabled... 74 @ FIFO enabled...
@@ -79,7 +79,7 @@
79 b 1002f 79 b 1002f
801001: 801001:
81 @ idle waiting for non fifo 81 @ idle waiting for non fifo
82 ldr \rd, [ \rx, # S3C2410_UTRSTAT ] 82 ldr \rd, [\rx, # S3C2410_UTRSTAT]
83 tst \rd, #S3C2410_UTRSTAT_TXFE 83 tst \rd, #S3C2410_UTRSTAT_TXFE
84 beq 1001b 84 beq 1001b
85 85
diff --git a/arch/arm/plat-samsung/include/plat/fimc-core.h b/arch/arm/plat-samsung/include/plat/fimc-core.h
index 945a99d59563..1d6cb2b8b094 100644
--- a/arch/arm/plat-samsung/include/plat/fimc-core.h
+++ b/arch/arm/plat-samsung/include/plat/fimc-core.h
@@ -43,6 +43,8 @@ static inline void s3c_fimc_setname(int id, char *name)
43 s5p_device_fimc3.name = name; 43 s5p_device_fimc3.name = name;
44 break; 44 break;
45#endif 45#endif
46 default:
47 break;
46 } 48 }
47} 49}
48 50
diff --git a/arch/arm/plat-samsung/include/plat/sdhci.h b/arch/arm/plat-samsung/include/plat/sdhci.h
index 151cc9195cf6..9b87f38fc4f4 100644
--- a/arch/arm/plat-samsung/include/plat/sdhci.h
+++ b/arch/arm/plat-samsung/include/plat/sdhci.h
@@ -374,6 +374,8 @@ static inline void s3c_sdhci_setname(int id, char *name)
374 s3c_device_hsmmc3.name = name; 374 s3c_device_hsmmc3.name = name;
375 break; 375 break;
376#endif 376#endif
377 default:
378 break;
377 } 379 }
378} 380}
379 381
diff --git a/arch/arm/plat-samsung/pm.c b/arch/arm/plat-samsung/pm.c
index 15070284343e..002b1472293b 100644
--- a/arch/arm/plat-samsung/pm.c
+++ b/arch/arm/plat-samsung/pm.c
@@ -51,7 +51,7 @@ void s3c_pm_dbg(const char *fmt, ...)
51 char buff[256]; 51 char buff[256];
52 52
53 va_start(va, fmt); 53 va_start(va, fmt);
54 vsprintf(buff, fmt, va); 54 vsnprintf(buff, sizeof(buff), fmt, va);
55 va_end(va); 55 va_end(va);
56 56
57 printascii(buff); 57 printascii(buff);
@@ -243,6 +243,7 @@ int (*pm_cpu_sleep)(unsigned long);
243 243
244static int s3c_pm_enter(suspend_state_t state) 244static int s3c_pm_enter(suspend_state_t state)
245{ 245{
246 int ret;
246 /* ensure the debug is initialised (if enabled) */ 247 /* ensure the debug is initialised (if enabled) */
247 248
248 s3c_pm_debug_init(); 249 s3c_pm_debug_init();
@@ -300,7 +301,9 @@ static int s3c_pm_enter(suspend_state_t state)
300 * we resume as it saves its own register state and restores it 301 * we resume as it saves its own register state and restores it
301 * during the resume. */ 302 * during the resume. */
302 303
303 cpu_suspend(0, pm_cpu_sleep); 304 ret = cpu_suspend(0, pm_cpu_sleep);
305 if (ret)
306 return ret;
304 307
305 /* restore the system state */ 308 /* restore the system state */
306 309
diff --git a/arch/arm/plat-spear/Kconfig b/arch/arm/plat-spear/Kconfig
index 87dbd81bdf51..739d016eb273 100644
--- a/arch/arm/plat-spear/Kconfig
+++ b/arch/arm/plat-spear/Kconfig
@@ -10,6 +10,7 @@ choice
10 10
11config ARCH_SPEAR13XX 11config ARCH_SPEAR13XX
12 bool "ST SPEAr13xx with Device Tree" 12 bool "ST SPEAr13xx with Device Tree"
13 select ARCH_HAVE_CPUFREQ
13 select ARM_GIC 14 select ARM_GIC
14 select CPU_V7 15 select CPU_V7
15 select GPIO_SPEAR_SPICS 16 select GPIO_SPEAR_SPICS
diff --git a/drivers/gpio/gpio-samsung.c b/drivers/gpio/gpio-samsung.c
index 76be7eed79de..b2016ed941ac 100644
--- a/drivers/gpio/gpio-samsung.c
+++ b/drivers/gpio/gpio-samsung.c
@@ -3023,9 +3023,9 @@ static __init int samsung_gpiolib_init(void)
3023 */ 3023 */
3024 struct device_node *pctrl_np; 3024 struct device_node *pctrl_np;
3025 static const struct of_device_id exynos_pinctrl_ids[] = { 3025 static const struct of_device_id exynos_pinctrl_ids[] = {
3026 { .compatible = "samsung,pinctrl-exynos4210", }, 3026 { .compatible = "samsung,exynos4210-pinctrl", },
3027 { .compatible = "samsung,pinctrl-exynos4x12", }, 3027 { .compatible = "samsung,exynos4x12-pinctrl", },
3028 { .compatible = "samsung,pinctrl-exynos5440", }, 3028 { .compatible = "samsung,exynos5440-pinctrl", },
3029 }; 3029 };
3030 for_each_matching_node(pctrl_np, exynos_pinctrl_ids) 3030 for_each_matching_node(pctrl_np, exynos_pinctrl_ids)
3031 if (pctrl_np && of_device_is_available(pctrl_np)) 3031 if (pctrl_np && of_device_is_available(pctrl_np))
diff --git a/drivers/mfd/vexpress-sysreg.c b/drivers/mfd/vexpress-sysreg.c
index 77048b18439e..558c2928f261 100644
--- a/drivers/mfd/vexpress-sysreg.c
+++ b/drivers/mfd/vexpress-sysreg.c
@@ -313,7 +313,7 @@ static void vexpress_sysreg_config_complete(unsigned long data)
313} 313}
314 314
315 315
316void __init vexpress_sysreg_setup(struct device_node *node) 316void vexpress_sysreg_setup(struct device_node *node)
317{ 317{
318 if (WARN_ON(!vexpress_sysreg_base)) 318 if (WARN_ON(!vexpress_sysreg_base))
319 return; 319 return;
diff --git a/drivers/pinctrl/pinctrl-samsung.c b/drivers/pinctrl/pinctrl-samsung.c
index 5f8441ef59ca..f206df175656 100644
--- a/drivers/pinctrl/pinctrl-samsung.c
+++ b/drivers/pinctrl/pinctrl-samsung.c
@@ -944,9 +944,9 @@ static int samsung_pinctrl_probe(struct platform_device *pdev)
944} 944}
945 945
946static const struct of_device_id samsung_pinctrl_dt_match[] = { 946static const struct of_device_id samsung_pinctrl_dt_match[] = {
947 { .compatible = "samsung,pinctrl-exynos4210", 947 { .compatible = "samsung,exynos4210-pinctrl",
948 .data = (void *)exynos4210_pin_ctrl }, 948 .data = (void *)exynos4210_pin_ctrl },
949 { .compatible = "samsung,pinctrl-exynos4x12", 949 { .compatible = "samsung,exynos4x12-pinctrl",
950 .data = (void *)exynos4x12_pin_ctrl }, 950 .data = (void *)exynos4x12_pin_ctrl },
951 {}, 951 {},
952}; 952};
diff --git a/include/linux/platform_data/i2c-s3c2410.h b/include/linux/platform_data/i2c-s3c2410.h
index 51d52e767a19..2a50048c1c44 100644
--- a/include/linux/platform_data/i2c-s3c2410.h
+++ b/include/linux/platform_data/i2c-s3c2410.h
@@ -15,6 +15,8 @@
15 15
16#define S3C_IICFLG_FILTER (1<<0) /* enable s3c2440 filter */ 16#define S3C_IICFLG_FILTER (1<<0) /* enable s3c2440 filter */
17 17
18struct platform_device;
19
18/** 20/**
19 * struct s3c2410_platform_i2c - Platform data for s3c I2C. 21 * struct s3c2410_platform_i2c - Platform data for s3c I2C.
20 * @bus_num: The bus number to use (if possible). 22 * @bus_num: The bus number to use (if possible).
diff --git a/scripts/sortextable.h b/scripts/sortextable.h
index e4fd45b7e456..f5eb43d42926 100644
--- a/scripts/sortextable.h
+++ b/scripts/sortextable.h
@@ -182,7 +182,7 @@ do_func(Elf_Ehdr *ehdr, char const *const fname, table_sort_t custom_sort)
182 _r(&sort_needed_sym->st_value) - 182 _r(&sort_needed_sym->st_value) -
183 _r(&sort_needed_sec->sh_addr); 183 _r(&sort_needed_sec->sh_addr);
184 184
185#if 1 185#if 0
186 printf("sort done marker at %lx\n", 186 printf("sort done marker at %lx\n",
187 (unsigned long)((char *)sort_done_location - (char *)ehdr)); 187 (unsigned long)((char *)sort_done_location - (char *)ehdr));
188#endif 188#endif