aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-02-21 17:54:55 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2013-02-21 17:54:55 -0500
commitb24174b0cbbe383c5bb6097aeb24480b8fd2d338 (patch)
tree2df02e72b7166dadb19b766435dbe7568d97e946 /arch/arm
parent7ed214ac2095f561a94335ca672b6c42a1ea40ff (diff)
parentbe8fd292f9b1ed787a04cb4437f7faef16c4afef (diff)
Merge tag 'fixes-non-critical' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull non-critical ARM SoC bug fixes from Arnd Bergmann: "Bug fixes that did not make it into v3.8, mostly because they were not considered important enough, and in some cases because bugs only show up in combination with other patches destined for 3.9. This includes a few larger patches for GPIO on the Marvell PXA platform and a lot of Samsung specific bug fixes, as well as a series from Arnd to fix older build warnings." * tag 'fixes-non-critical' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (54 commits) ARM: SPEAr13xx: Enable CONFIG_ARCH_HAS_CPUFREQ ARM: imx: MACH_MX31ADS_WM1133_EV1 needs REGULATOR_WM8350 scripts/sortextable: silence script output ARM: s3c: i2c: add platform_device forward declaration ARM: mvebu: allow selecting mvebu without Armada XP ARM: pick Versatile by default for !MMU ARM: integrator: fix build with INTEGRATOR_AP off ARM: integrator/versatile: fix NOMMU warnings ARM: sa1100: don't warn about mach/ide.h ARM: shmobile: fix defconfig warning on CONFIG_USB ARM: w90x900: fix legacy assembly syntax ARM: samsung: fix assembly syntax for new gas ARM: disable virt_to_bus/virt_to_bus almost everywhere ARM: dts: Correct pin configuration of SD 4 for exynos4x12-pinctrl ARM: SAMSUNG: Silence empty switch warning in fimc-core.h ARM: SAMSUNG: Silence empty switch warning in sdhci.h ARM: msm: proc_comm_boot_wait should not be __init arm: vt8500: Update MAINTAINERS entry for arch-vt8500 ARM: integrator: ensure ap_syscon_base is initialised when !CONFIG_MMU ARM: S5PV210: Fix early uart output in fifo mode ...
Diffstat (limited to 'arch/arm')
-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
64 files changed, 221 insertions, 136 deletions
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