Merge tag 'fixes-non-critical' of git://git.kernel.org/pub/scm/linux/kernel/git/arm...
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 21 Feb 2013 22:54:55 +0000 (14:54 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 21 Feb 2013 22:54:55 +0000 (14:54 -0800)
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
  ...

71 files changed:
Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt
MAINTAINERS
arch/arm/Kconfig
arch/arm/boot/dts/at91sam9n12.dtsi
arch/arm/boot/dts/at91sam9x5.dtsi
arch/arm/boot/dts/dove.dtsi
arch/arm/boot/dts/exynos4210.dtsi
arch/arm/boot/dts/exynos4x12-pinctrl.dtsi
arch/arm/boot/dts/exynos4x12.dtsi
arch/arm/boot/dts/exynos5440.dtsi
arch/arm/boot/dts/imx6q.dtsi
arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts
arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts
arch/arm/configs/marzen_defconfig
arch/arm/configs/mvebu_defconfig
arch/arm/configs/shark_defconfig
arch/arm/configs/u8500_defconfig
arch/arm/include/asm/dma.h
arch/arm/include/asm/memory.h
arch/arm/mach-exynos/common.c
arch/arm/mach-exynos/pm.c
arch/arm/mach-imx/Kconfig
arch/arm/mach-imx/clk-imx25.c
arch/arm/mach-imx/clk-imx27.c
arch/arm/mach-integrator/common.h
arch/arm/mach-integrator/core.c
arch/arm/mach-integrator/integrator_ap.c
arch/arm/mach-integrator/integrator_cp.c
arch/arm/mach-msm/proc_comm.h
arch/arm/mach-mvebu/Makefile
arch/arm/mach-omap2/omap-wakeupgen.c
arch/arm/mach-omap2/timer.c
arch/arm/mach-omap2/twl-common.c
arch/arm/mach-pxa/include/mach/palmtreo.h
arch/arm/mach-pxa/include/mach/smemc.h
arch/arm/mach-pxa/palmtreo.c
arch/arm/mach-pxa/smemc.c
arch/arm/mach-pxa/spitz.c
arch/arm/mach-s3c24xx/Kconfig
arch/arm/mach-s3c24xx/common-s3c2443.c
arch/arm/mach-s3c24xx/common.c
arch/arm/mach-s3c24xx/include/mach/debug-macro.S
arch/arm/mach-s3c24xx/include/mach/entry-macro.S
arch/arm/mach-s3c24xx/mach-osiris.c
arch/arm/mach-s3c24xx/pm-h1940.S
arch/arm/mach-s3c24xx/pm-s3c2412.c
arch/arm/mach-s3c24xx/pm-s3c2416.c
arch/arm/mach-s3c24xx/sleep-s3c2410.S
arch/arm/mach-s3c24xx/sleep-s3c2412.S
arch/arm/mach-s3c64xx/pm.c
arch/arm/mach-s5p64x0/pm.c
arch/arm/mach-s5pv210/include/mach/uncompress.h
arch/arm/mach-s5pv210/pm.c
arch/arm/mach-sa1100/lart.c
arch/arm/mach-ux500/cpu.c
arch/arm/mach-ux500/cpuidle.c
arch/arm/mach-versatile/Kconfig
arch/arm/mach-versatile/core.c
arch/arm/mach-w90x900/include/mach/entry-macro.S
arch/arm/plat-omap/dma.c
arch/arm/plat-orion/mpp.c
arch/arm/plat-samsung/include/plat/debug-macro.S
arch/arm/plat-samsung/include/plat/fimc-core.h
arch/arm/plat-samsung/include/plat/sdhci.h
arch/arm/plat-samsung/pm.c
arch/arm/plat-spear/Kconfig
drivers/gpio/gpio-samsung.c
drivers/mfd/vexpress-sysreg.c
drivers/pinctrl/pinctrl-samsung.c
include/linux/platform_data/i2c-s3c2410.h
scripts/sortextable.h

index e97a27856b214d85268eb3bc4070403a5484681a..4598a47aa0cd130d1a01ab78027c867fb8a5f971 100644 (file)
@@ -7,9 +7,9 @@ on-chip controllers onto these pads.
 
 Required Properties:
 - compatible: should be one of the following.
-  - "samsung,pinctrl-exynos4210": for Exynos4210 compatible pin-controller.
-  - "samsung,pinctrl-exynos4x12": for Exynos4x12 compatible pin-controller.
-  - "samsung,pinctrl-exynos5250": for Exynos5250 compatible pin-controller.
+  - "samsung,exynos4210-pinctrl": for Exynos4210 compatible pin-controller.
+  - "samsung,exynos4x12-pinctrl": for Exynos4x12 compatible pin-controller.
+  - "samsung,exynos5250-pinctrl": for Exynos5250 compatible pin-controller.
 
 - reg: Base address of the pin controller hardware module and length of
   the address space it occupies.
@@ -142,7 +142,7 @@ the following format 'pinctrl{n}' where n is a unique number for the alias.
 Example: A pin-controller node with pin banks:
 
        pinctrl_0: pinctrl@11400000 {
-               compatible = "samsung,pinctrl-exynos4210";
+               compatible = "samsung,exynos4210-pinctrl";
                reg = <0x11400000 0x1000>;
                interrupts = <0 47 0>;
 
@@ -185,7 +185,7 @@ Example: A pin-controller node with pin banks:
 Example 1: A pin-controller node with pin groups.
 
        pinctrl_0: pinctrl@11400000 {
-               compatible = "samsung,pinctrl-exynos4210";
+               compatible = "samsung,exynos4210-pinctrl";
                reg = <0x11400000 0x1000>;
                interrupts = <0 47 0>;
 
@@ -230,7 +230,7 @@ Example 1: A pin-controller node with pin groups.
 Example 2: A pin-controller node with external wakeup interrupt controller node.
 
        pinctrl_1: pinctrl@11000000 {
-               compatible = "samsung,pinctrl-exynos4210";
+               compatible = "samsung,exynos4210-pinctrl";
                reg = <0x11000000 0x1000>;
                interrupts = <0 46 0>
 
index f5b9851755a24d8f59001746d3dbd05e6997ad87..22b754a8b4b31e149f074dd53bc908b7b8564310 100644 (file)
@@ -1256,12 +1256,17 @@ M:      Tony Prisk <linux@prisktech.co.nz>
 L:     linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 S:     Maintained
 F:     arch/arm/mach-vt8500/
+F:     drivers/clocksource/vt8500_timer.c
+F:     drivers/gpio/gpio-vt8500.c
+F:     drivers/mmc/host/wmt-sdmmc.c
+F:     drivers/pwm/pwm-vt8500.c
+F:     drivers/rtc/rtc-vt8500.c
+F:     drivers/tty/serial/vt8500_serial.c
+F:     drivers/usb/host/ehci-vt8500.c
+F:     drivers/usb/host/uhci-platform.c
 F:     drivers/video/vt8500lcdfb.*
 F:     drivers/video/wm8505fb*
 F:     drivers/video/wmt_ge_rops.*
-F:     drivers/tty/serial/vt8500_serial.c
-F:     drivers/rtc/rtc-vt8500.c
-F:     drivers/mmc/host/wmt-sdmmc.c
 
 ARM/ZIPIT Z2 SUPPORT
 M:     Marek Vasut <marek.vasut@gmail.com>
@@ -1270,6 +1275,14 @@ S:       Maintained
 F:     arch/arm/mach-pxa/z2.c
 F:     arch/arm/mach-pxa/include/mach/z2.h
 
+ARM/ZYNQ ARCHITECTURE
+M:     Michal Simek <michal.simek@xilinx.com>
+L:     linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
+W:     http://wiki.xilinx.com
+T:     git git://git.xilinx.com/linux-xlnx.git
+S:     Supported
+F:     arch/arm/mach-zynq/
+
 ARM64 PORT (AARCH64 ARCHITECTURE)
 M:     Catalin Marinas <catalin.marinas@arm.com>
 M:     Will Deacon <will.deacon@arm.com>
index f410cb16dd2232c84e65ea713a1382cb8a2d48ad..09238c83e6d63c55f56a3aa28978606328941c74 100644 (file)
@@ -260,7 +260,8 @@ config MMU
 #
 choice
        prompt "ARM system type"
-       default ARCH_MULTIPLATFORM
+       default ARCH_VERSATILE if !MMU
+       default ARCH_MULTIPLATFORM if MMU
 
 config ARCH_MULTIPLATFORM
        bool "Allow multiple platforms to be selected"
@@ -1449,6 +1450,10 @@ config ISA_DMA
        bool
        select ISA_DMA_API
 
+config ARCH_NO_VIRT_TO_BUS
+       def_bool y
+       depends on !ARCH_RPC && !ARCH_NETWINDER && !ARCH_SHARK
+
 # Select ISA DMA interface
 config ISA_DMA_API
        bool
index 80e29c605d4e53de1a8f948b5acb0eb975aee641..4801717566dd880e35583f75da3716f91f1b1d80 100644 (file)
                                compatible = "atmel,at91sam9260-usart";
                                reg = <0xf801c000 0x4000>;
                                interrupts = <5 4 5>;
-                               atmel,use-dma-rx;
-                               atmel,use-dma-tx;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_usart0>;
                                status = "disabled";
                                compatible = "atmel,at91sam9260-usart";
                                reg = <0xf8020000 0x4000>;
                                interrupts = <6 4 5>;
-                               atmel,use-dma-rx;
-                               atmel,use-dma-tx;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_usart1>;
                                status = "disabled";
                                compatible = "atmel,at91sam9260-usart";
                                reg = <0xf8024000 0x4000>;
                                interrupts = <7 4 5>;
-                               atmel,use-dma-rx;
-                               atmel,use-dma-tx;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_usart2>;
                                status = "disabled";
                                compatible = "atmel,at91sam9260-usart";
                                reg = <0xf8028000 0x4000>;
                                interrupts = <8 4 5>;
-                               atmel,use-dma-rx;
-                               atmel,use-dma-tx;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_usart3>;
                                status = "disabled";
index 8ecca6948d811f827e623e48f039238dad9fe6bf..d112c3af8ce214280113a3633f85daf589e34b4a 100644 (file)
                                };
 
                                usart3 {
-                                       pinctrl_uart3: usart3-0 {
+                                       pinctrl_usart3: usart3-0 {
                                                atmel,pins =
-                                                       <2 23 0x2 0x1   /* PC22 periph B with pullup */
+                                                       <2 22 0x2 0x1   /* PC22 periph B with pullup */
                                                         2 23 0x2 0x0>; /* PC23 periph B */
                                        };
 
                                compatible = "atmel,at91sam9260-usart";
                                reg = <0xf801c000 0x200>;
                                interrupts = <5 4 5>;
-                               atmel,use-dma-rx;
-                               atmel,use-dma-tx;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_usart0>;
                                status = "disabled";
                                compatible = "atmel,at91sam9260-usart";
                                reg = <0xf8020000 0x200>;
                                interrupts = <6 4 5>;
-                               atmel,use-dma-rx;
-                               atmel,use-dma-tx;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_usart1>;
                                status = "disabled";
                                compatible = "atmel,at91sam9260-usart";
                                reg = <0xf8024000 0x200>;
                                interrupts = <7 4 5>;
-                               atmel,use-dma-rx;
-                               atmel,use-dma-tx;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_usart2>;
                                status = "disabled";
index 42eac1ff3cc82a02c5f52fddba478e76d83548d8..740630f9cd6584544dbc1d6ef2f26a6f6befe365 100644 (file)
@@ -93,6 +93,7 @@
                        reg = <0xd0400 0x20>;
                        ngpios = <32>;
                        interrupt-controller;
+                       #interrupt-cells = <2>;
                        interrupts = <12>, <13>, <14>, <60>;
                };
 
                        reg = <0xd0420 0x20>;
                        ngpios = <32>;
                        interrupt-controller;
+                       #interrupt-cells = <2>;
                        interrupts = <61>;
                };
 
index e31bfc4a6f097233fa5e20fa870726d302c4b3a4..2feffc70814cb9223f052528752be9abeb66c07a 100644 (file)
        };
 
        pinctrl_0: pinctrl@11400000 {
-               compatible = "samsung,pinctrl-exynos4210";
+               compatible = "samsung,exynos4210-pinctrl";
                reg = <0x11400000 0x1000>;
                interrupts = <0 47 0>;
        };
 
        pinctrl_1: pinctrl@11000000 {
-               compatible = "samsung,pinctrl-exynos4210";
+               compatible = "samsung,exynos4210-pinctrl";
                reg = <0x11000000 0x1000>;
                interrupts = <0 46 0>;
 
@@ -66,7 +66,7 @@
        };
 
        pinctrl_2: pinctrl@03860000 {
-               compatible = "samsung,pinctrl-exynos4210";
+               compatible = "samsung,exynos4210-pinctrl";
                reg = <0x03860000 0x1000>;
        };
 
index 8e6115adcd97e70203a85ca07fca574f89b066b5..099cec79e2ae43906c077b9500a12dcbb8d14ab8 100644 (file)
 
                sd4_bus8: sd4-bus-width8 {
                        samsung,pins = "gpk1-3", "gpk1-4", "gpk1-5", "gpk1-6";
-                       samsung,pin-function = <3>;
+                       samsung,pin-function = <4>;
                        samsung,pin-pud = <4>;
                        samsung,pin-drv = <3>;
                };
index 179a62e46c9d40b5e2259f5bc63f49879705cb59..9a87806949093e717b1084e1704f14db33767e06 100644 (file)
        };
 
        pinctrl_0: pinctrl@11400000 {
-               compatible = "samsung,pinctrl-exynos4x12";
+               compatible = "samsung,exynos4x12-pinctrl";
                reg = <0x11400000 0x1000>;
                interrupts = <0 47 0>;
        };
 
        pinctrl_1: pinctrl@11000000 {
-               compatible = "samsung,pinctrl-exynos4x12";
+               compatible = "samsung,exynos4x12-pinctrl";
                reg = <0x11000000 0x1000>;
                interrupts = <0 46 0>;
 
        };
 
        pinctrl_2: pinctrl@03860000 {
-               compatible = "samsung,pinctrl-exynos4x12";
+               compatible = "samsung,exynos4x12-pinctrl";
                reg = <0x03860000 0x1000>;
                interrupt-parent = <&combiner>;
                interrupts = <10 0>;
        };
 
        pinctrl_3: pinctrl@106E0000 {
-               compatible = "samsung,pinctrl-exynos4x12";
+               compatible = "samsung,exynos4x12-pinctrl";
                reg = <0x106E0000 0x1000>;
                interrupts = <0 72 0>;
        };
index 024269de8ee5c9e69ee9265add66c05c6ac289ef..5f3562ad67463a89a2bac80a81b1ac01c46907af 100644 (file)
@@ -86,7 +86,7 @@
        };
 
        pinctrl {
-               compatible = "samsung,pinctrl-exynos5440";
+               compatible = "samsung,exynos5440-pinctrl";
                reg = <0xE0000 0x1000>;
                interrupt-controller;
                #interrupt-cells = <2>;
        rtc {
                compatible = "samsung,s3c6410-rtc";
                reg = <0x130000 0x1000>;
-               interrupts = <0 16 0>, <0 17 0>;
+               interrupts = <0 17 0>, <0 16 0>;
        };
 };
index d6265ca971190b06b2217199d4d98321ddb2d6d8..ff1205ea57190385fefb75fbc320851c669fae1f 100644 (file)
                                compatible = "fsl,imx6q-fec";
                                reg = <0x02188000 0x4000>;
                                interrupts = <0 118 0x04 0 119 0x04>;
-                               clocks = <&clks 117>, <&clks 117>, <&clks 177>;
+                               clocks = <&clks 117>, <&clks 117>, <&clks 190>;
                                clock-names = "ipg", "ahb", "ptp";
                                status = "disabled";
                        };
index a3d37ec2655d80efccae49ee9f85ca9c9b1213b1..73187173117c5a942b6b1201f9a22703cd1e979a 100644 (file)
@@ -70,7 +70,7 @@
                compatible = "arm,sp805", "arm,primecell";
                status = "disabled";
                reg = <0 0x2b060000 0 0x1000>;
-               interrupts = <98>;
+               interrupts = <0 98 4>;
                clocks = <&oscclk7>;
                clock-names = "apb_pclk";
        };
index cf8071ad22d5fb5acfd1382f82d16e606c28e068..dfe371ec2749843cef7726f5fb5e75d55e670456 100644 (file)
@@ -72,7 +72,7 @@
        wdt@2a490000 {
                compatible = "arm,sp805", "arm,primecell";
                reg = <0 0x2a490000 0 0x1000>;
-               interrupts = <98>;
+               interrupts = <0 98 4>;
                clocks = <&oscclk6a>, <&oscclk6a>;
                clock-names = "wdogclk", "apb_pclk";
        };
index 728a43c446f8a5e2acd25f66ae03c2bd867fa0fb..afb17d630d4444563a76e30007fa369ca6a08c53 100644 (file)
@@ -83,7 +83,6 @@ CONFIG_USB=y
 CONFIG_USB_RCAR_PHY=y
 CONFIG_MMC=y
 CONFIG_MMC_SDHI=y
-CONFIG_USB=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_OHCI_HCD=y
 CONFIG_USB_OHCI_HCD_PLATFORM=y
index b5bc96cb65a79d87c2f65814e9cc4fecd69e4df1..cbd91bce1ca9f13ebbb0da7a4eb92ec2f42724b8 100644 (file)
@@ -33,6 +33,8 @@ CONFIG_MVNETA=y
 CONFIG_MARVELL_PHY=y
 CONFIG_SERIAL_8250=y
 CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_I2C=y
+CONFIG_I2C_MV64XXX=y
 CONFIG_SERIAL_8250_DW=y
 CONFIG_GPIOLIB=y
 CONFIG_GPIO_SYSFS=y
index caa07db90cf59b21f50cad09fcdd4c33bfedb460..e319b2c56f11f86e45504d800bf358550bcd0484 100644 (file)
@@ -73,7 +73,6 @@ CONFIG_PARTITION_ADVANCED=y
 CONFIG_NLS_CODEPAGE_437=m
 CONFIG_NLS_CODEPAGE_850=m
 CONFIG_NLS_ISO8859_1=m
-# CONFIG_ENABLE_WARN_DEPRECATED is not set
 # CONFIG_ENABLE_MUST_CHECK is not set
 CONFIG_DEBUG_KERNEL=y
 # CONFIG_SCHED_DEBUG is not set
index 231dca604737e1564913c48edda18176f9aa00f8..426270fe080da3e1fad7dedad400f5b0b243c50a 100644 (file)
@@ -66,9 +66,9 @@ CONFIG_SPI=y
 CONFIG_SPI_PL022=y
 CONFIG_GPIO_STMPE=y
 CONFIG_GPIO_TC3589X=y
-CONFIG_POWER_SUPPLY=y
-CONFIG_AB8500_BM=y
-CONFIG_AB8500_BATTERY_THERM_ON_BATCTRL=y
+# CONFIG_POWER_SUPPLY is not set
+# CONFIG_AB8500_BM is not set
+# CONFIG_AB8500_BATTERY_THERM_ON_BATCTRL is not set
 CONFIG_THERMAL=y
 CONFIG_CPU_THERMAL=y
 CONFIG_MFD_STMPE=y
index 5694a0d6576bd41c8a11f95351382e675944338b..58b8c6a0ab1fe3985772746932a1713e29bd1ea0 100644 (file)
@@ -105,7 +105,7 @@ extern void set_dma_sg(unsigned int chan, struct scatterlist *sg, int nr_sg);
  */
 extern void __set_dma_addr(unsigned int chan, void *addr);
 #define set_dma_addr(chan, addr)                               \
-       __set_dma_addr(chan, bus_to_virt(addr))
+       __set_dma_addr(chan, (void *)__bus_to_virt(addr))
 
 /* Set the DMA byte count for this channel
  *
index 64c770d24198462c0260ccf87d771fd96fc512cd..57870ab313c52cd103b327363b0191e76efad9f6 100644 (file)
@@ -245,6 +245,7 @@ static inline void *phys_to_virt(phys_addr_t x)
 #define __bus_to_pfn(x)        __phys_to_pfn(x)
 #endif
 
+#ifdef CONFIG_VIRT_TO_BUS
 static inline __deprecated unsigned long virt_to_bus(void *x)
 {
        return __virt_to_bus((unsigned long)x);
@@ -254,6 +255,7 @@ static inline __deprecated void *bus_to_virt(unsigned long x)
 {
        return (void *)__bus_to_virt(x);
 }
+#endif
 
 /*
  * Conversion between a struct page and a physical address.
index 1a89824a5f781bfef84f7afc9167c41874198798..0c7e3ad7ba93fb8583b4ce16a1c71ea44f47a118 100644 (file)
@@ -299,6 +299,7 @@ void exynos4_restart(char mode, const char *cmd)
 
 void exynos5_restart(char mode, const char *cmd)
 {
+       struct device_node *np;
        u32 val;
        void __iomem *addr;
 
@@ -306,8 +307,9 @@ void exynos5_restart(char mode, const char *cmd)
                val = 0x1;
                addr = EXYNOS_SWRESET;
        } else if (of_machine_is_compatible("samsung,exynos5440")) {
-               val = (0x10 << 20) | (0x1 << 16);
-               addr = EXYNOS5440_SWRESET;
+               np = of_find_compatible_node(NULL, NULL, "samsung,exynos5440-clock");
+               addr = of_iomap(np, 0) + 0xcc;
+               val = (0xfff << 20) | (0x1 << 16);
        } else {
                pr_err("%s: cannot support non-DT\n", __func__);
                return;
@@ -1031,8 +1033,8 @@ static int __init exynos_init_irq_eint(void)
         * interrupt support code here can be completely removed.
         */
        static const struct of_device_id exynos_pinctrl_ids[] = {
-               { .compatible = "samsung,pinctrl-exynos4210", },
-               { .compatible = "samsung,pinctrl-exynos4x12", },
+               { .compatible = "samsung,exynos4210-pinctrl", },
+               { .compatible = "samsung,exynos4x12-pinctrl", },
        };
        struct device_node *pctrl_np, *wkup_np;
        const char *wkup_compat = "samsung,exynos4210-wakeup-eint";
index b9b539cac81e12869523ceb6c8e5e0817f6092a0..5106ab83e593f8c3902d77a19b5efff00b46d4db 100644 (file)
@@ -91,8 +91,8 @@ static int exynos_cpu_suspend(unsigned long arg)
        /* issue the standby signal into the pm unit. */
        cpu_do_idle();
 
-       /* we should never get past here */
-       panic("sleep resumed to originator?");
+       pr_info("Failed to suspend the system\n");
+       return 1; /* Aborting suspend */
 }
 
 static void exynos_pm_prepare(void)
@@ -282,6 +282,8 @@ static void exynos_pm_resume(void)
        if (!(tmp & S5P_CENTRAL_LOWPWR_CFG)) {
                tmp |= S5P_CENTRAL_LOWPWR_CFG;
                __raw_writel(tmp, S5P_CENTRAL_SEQ_CONFIGURATION);
+               /* clear the wakeup state register */
+               __raw_writel(0x0, S5P_WAKEUP_STAT);
                /* No need to perform below restore code */
                goto early_wakeup;
        }
index 0a2349dc70184021e268db86ef9c3cb0e966f8a3..64b40a4615b54da5bc60f79e2f09cb44e91e92e2 100644 (file)
@@ -488,7 +488,7 @@ config MACH_MX31ADS_WM1133_EV1
        bool "Support Wolfson Microelectronics 1133-EV1 module"
        depends on MACH_MX31ADS
        depends on MFD_WM8350_I2C
-       depends on REGULATOR_WM8350
+       depends on REGULATOR_WM8350 = y
        select MFD_WM8350_CONFIG_MODE_0
        select MFD_WM8352_CONFIG_MODE_0
        help
index 2c570cdaae7b1f9152f6cb1e0dd122882cfac028..69858c78f40d07ff5a4ef7a2ae724b09813a19f5 100644 (file)
@@ -224,6 +224,9 @@ static int __init __mx25_clocks_init(unsigned long osc_rate)
 
        clk_prepare_enable(clk[emi_ahb]);
 
+       /* Clock source for gpt must be derived from AHB */
+       clk_set_parent(clk[per5_sel], clk[ahb]);
+
        clk_register_clkdev(clk[ipg], "ipg", "imx-gpt.0");
        clk_register_clkdev(clk[gpt_ipg_per], "per", "imx-gpt.0");
 
index 1ffe3b534e51562aca68b587c383bb3df00b38a8..e30369a58e4e81d244f9246cd83f63031b2fda5d 100644 (file)
@@ -228,9 +228,12 @@ int __init mx27_clocks_init(unsigned long fref)
        clk_register_clkdev(clk[sdhc2_ipg_gate], "ipg", "imx21-mmc.1");
        clk_register_clkdev(clk[per2_gate], "per", "imx21-mmc.2");
        clk_register_clkdev(clk[sdhc2_ipg_gate], "ipg", "imx21-mmc.2");
-       clk_register_clkdev(clk[cspi1_ipg_gate], NULL, "imx27-cspi.0");
-       clk_register_clkdev(clk[cspi2_ipg_gate], NULL, "imx27-cspi.1");
-       clk_register_clkdev(clk[cspi3_ipg_gate], NULL, "imx27-cspi.2");
+       clk_register_clkdev(clk[per2_gate], "per", "imx27-cspi.0");
+       clk_register_clkdev(clk[cspi1_ipg_gate], "ipg", "imx27-cspi.0");
+       clk_register_clkdev(clk[per2_gate], "per", "imx27-cspi.1");
+       clk_register_clkdev(clk[cspi2_ipg_gate], "ipg", "imx27-cspi.1");
+       clk_register_clkdev(clk[per2_gate], "per", "imx27-cspi.2");
+       clk_register_clkdev(clk[cspi3_ipg_gate], "ipg", "imx27-cspi.2");
        clk_register_clkdev(clk[per3_gate], "per", "imx21-fb.0");
        clk_register_clkdev(clk[lcdc_ipg_gate], "ipg", "imx21-fb.0");
        clk_register_clkdev(clk[lcdc_ahb_gate], "ahb", "imx21-fb.0");
index 79197d8b34aa1b013e6fb6125017ec5921413410..72516658be1e6965d7f37d39b7feeff957690575 100644 (file)
@@ -1,10 +1,5 @@
 #include <linux/amba/serial.h>
-#ifdef CONFIG_ARCH_INTEGRATOR_AP
 extern struct amba_pl010_data ap_uart_data;
-#else
-/* Not used without Integrator/AP support anyway */
-struct amba_pl010_data ap_uart_data {};
-#endif
 void integrator_init_early(void);
 int integrator_init(bool is_cp);
 void integrator_reserve(void);
index 39c060f75e470b79136cf3cdf3bc2c4f603d63b5..81461d218717495b44de65136be0f6be946add32 100644 (file)
@@ -71,7 +71,7 @@ int __init integrator_init(bool is_cp)
         * hard-code them. The Integator/CP and forward have proper cell IDs.
         * Else we leave them undefined to the bus driver can autoprobe them.
         */
-       if (!is_cp) {
+       if (!is_cp && IS_ENABLED(CONFIG_ARCH_INTEGRATOR_AP)) {
                rtc_device.periphid     = 0x00041030;
                uart0_device.periphid   = 0x00041010;
                uart1_device.periphid   = 0x00041010;
index 11e2a4145807876b79883fe4c0a45a76ba42a693..592c168f4b62873f9f7403d14a55f99ffdfdd594 100644 (file)
@@ -94,7 +94,7 @@ void __iomem *ap_syscon_base;
  * f1b00000    1b000000        GPIO
  */
 
-static struct map_desc ap_io_desc[] __initdata = {
+static struct map_desc ap_io_desc[] __initdata __maybe_unused = {
        {
                .virtual        = IO_ADDRESS(INTEGRATOR_HDR_BASE),
                .pfn            = __phys_to_pfn(INTEGRATOR_HDR_BASE),
@@ -613,7 +613,6 @@ static struct map_desc ap_io_desc_atag[] __initdata = {
 static void __init ap_map_io_atag(void)
 {
        iotable_init(ap_io_desc_atag, ARRAY_SIZE(ap_io_desc_atag));
-       ap_syscon_base = __io_address(INTEGRATOR_SC_BASE);
        ap_map_io();
 }
 
@@ -685,6 +684,7 @@ static void __init ap_init(void)
 
        platform_device_register(&cfi_flash_device);
 
+       ap_syscon_base = __io_address(INTEGRATOR_SC_BASE);
        sc_dec = readl(ap_syscon_base + INTEGRATOR_SC_DEC_OFFSET);
        for (i = 0; i < 4; i++) {
                struct lm_device *lmdev;
index 7322838c0447dabe3c29d7b5b703af5d49771f31..01a888d7b0b85fec94d4bf019c4110c9371cb6ca 100644 (file)
@@ -78,7 +78,7 @@ static void __iomem *intcp_con_base;
  * fcb00000    cb000000        CP system control
  */
 
-static struct map_desc intcp_io_desc[] __initdata = {
+static struct map_desc intcp_io_desc[] __initdata __maybe_unused = {
        {
                .virtual        = IO_ADDRESS(INTEGRATOR_HDR_BASE),
                .pfn            = __phys_to_pfn(INTEGRATOR_HDR_BASE),
index 12da4cacd4a8141b7119fe9335cf3eafaee40ce1..e8d043a0e9906e3969a9011c25b573f75e86a8d3 100644 (file)
@@ -253,6 +253,6 @@ enum {
                (((drvstr) & 0xF) << 17))
 
 int msm_proc_comm(unsigned cmd, unsigned *data1, unsigned *data2);
-void __init proc_comm_boot_wait(void);
+void proc_comm_boot_wait(void);
 
 #endif
index 99df4df680fda3b54e3dce605ea3793d3f6bd26b..da93bcbc74c196256f3a504c6c9dd485701bd4f4 100644 (file)
@@ -3,7 +3,8 @@ ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include \
 
 AFLAGS_coherency_ll.o          := -Wa,-march=armv7-a
 
-obj-y += system-controller.o
-obj-$(CONFIG_MACH_ARMADA_370_XP) += armada-370-xp.o irq-armada-370-xp.o addr-map.o coherency.o coherency_ll.o pmsu.o
+obj-y                           += system-controller.o
+obj-$(CONFIG_MACH_ARMADA_370_XP) += armada-370-xp.o
+obj-$(CONFIG_ARCH_MVEBU)        += addr-map.o coherency.o coherency_ll.o pmsu.o irq-armada-370-xp.o 
 obj-$(CONFIG_SMP)                += platsmp.o headsmp.o
 obj-$(CONFIG_HOTPLUG_CPU)        += hotplug.o
index 5d3b4f4f81aed8ad94ddd158ca9682907faf342b..8633a43acae28bb54cb5a88e08363d36d0475f8d 100644 (file)
@@ -46,7 +46,7 @@
 
 static void __iomem *wakeupgen_base;
 static void __iomem *sar_base;
-static DEFINE_SPINLOCK(wakeupgen_lock);
+static DEFINE_RAW_SPINLOCK(wakeupgen_lock);
 static unsigned int irq_target_cpu[MAX_IRQS];
 static unsigned int irq_banks = MAX_NR_REG_BANKS;
 static unsigned int max_irqs = MAX_IRQS;
@@ -134,9 +134,9 @@ static void wakeupgen_mask(struct irq_data *d)
 {
        unsigned long flags;
 
-       spin_lock_irqsave(&wakeupgen_lock, flags);
+       raw_spin_lock_irqsave(&wakeupgen_lock, flags);
        _wakeupgen_clear(d->irq, irq_target_cpu[d->irq]);
-       spin_unlock_irqrestore(&wakeupgen_lock, flags);
+       raw_spin_unlock_irqrestore(&wakeupgen_lock, flags);
 }
 
 /*
@@ -146,9 +146,9 @@ static void wakeupgen_unmask(struct irq_data *d)
 {
        unsigned long flags;
 
-       spin_lock_irqsave(&wakeupgen_lock, flags);
+       raw_spin_lock_irqsave(&wakeupgen_lock, flags);
        _wakeupgen_set(d->irq, irq_target_cpu[d->irq]);
-       spin_unlock_irqrestore(&wakeupgen_lock, flags);
+       raw_spin_unlock_irqrestore(&wakeupgen_lock, flags);
 }
 
 #ifdef CONFIG_HOTPLUG_CPU
@@ -189,7 +189,7 @@ static void wakeupgen_irqmask_all(unsigned int cpu, unsigned int set)
 {
        unsigned long flags;
 
-       spin_lock_irqsave(&wakeupgen_lock, flags);
+       raw_spin_lock_irqsave(&wakeupgen_lock, flags);
        if (set) {
                _wakeupgen_save_masks(cpu);
                _wakeupgen_set_all(cpu, WKG_MASK_ALL);
@@ -197,7 +197,7 @@ static void wakeupgen_irqmask_all(unsigned int cpu, unsigned int set)
                _wakeupgen_set_all(cpu, WKG_UNMASK_ALL);
                _wakeupgen_restore_masks(cpu);
        }
-       spin_unlock_irqrestore(&wakeupgen_lock, flags);
+       raw_spin_unlock_irqrestore(&wakeupgen_lock, flags);
 }
 #endif
 
index b8ad6e632bb84d9ed3ede854cefeeebe6b4cc00c..265de51b43d9a2dd498672d32544dd27d1946a82 100644 (file)
@@ -228,7 +228,7 @@ static int __init omap_dm_timer_init_one(struct omap_dm_timer *timer,
        int r = 0;
 
        if (of_have_populated_dt()) {
-               np = omap_get_timer_dt(omap_timer_match, NULL);
+               np = omap_get_timer_dt(omap_timer_match, property);
                if (!np)
                        return -ENODEV;
 
index e49b40b4c90a23c9522d00ce2aab8ba01a4de39a..6a7aec6d117439164d8b859f2c04c95b2d98d436 100644 (file)
@@ -23,6 +23,7 @@
 #include <linux/i2c.h>
 #include <linux/i2c/twl.h>
 #include <linux/gpio.h>
+#include <linux/string.h>
 #include <linux/regulator/machine.h>
 #include <linux/regulator/fixed.h>
 
@@ -56,7 +57,7 @@ void __init omap_pmic_init(int bus, u32 clkrate,
                           struct twl4030_platform_data *pmic_data)
 {
        omap_mux_init_signal("sys_nirq", OMAP_PIN_INPUT_PULLUP | OMAP_PIN_OFF_WAKEUPENABLE);
-       strncpy(pmic_i2c_board_info.type, pmic_type,
+       strlcpy(pmic_i2c_board_info.type, pmic_type,
                sizeof(pmic_i2c_board_info.type));
        pmic_i2c_board_info.irq = pmic_irq;
        pmic_i2c_board_info.platform_data = pmic_data;
index 2d3f14e3be29a99859ac18dd9404df76f12ff472..714b6574393e88efa2089de95a98f5d15a7b3a5d 100644 (file)
 #define GPIO_NR_TREO_LCD_POWER 25
 
 /* Treo680 specific GPIOs */
-#ifdef CONFIG_MACH_TREO680
 #define GPIO_NR_TREO680_SD_READONLY    33
 #define GPIO_NR_TREO680_SD_POWER       42
 #define GPIO_NR_TREO680_VIBRATE_EN     44
 #define GPIO_NR_TREO680_KEYB_BL                24
 #define GPIO_NR_TREO680_BT_EN          43
-#endif /* CONFIG_MACH_TREO680 */
+#define GPIO_NR_TREO680_LCD_POWER      77
+#define GPIO_NR_TREO680_LCD_EN         86
+#define GPIO_NR_TREO680_LCD_EN_N       25
 
 /* Centro685 specific GPIOs */
 #define GPIO_NR_CENTRO_SD_POWER                21
index b7de471b273a240e275103dff330498f40f3f036..b802f285fe00e6dd3b39af77e3b351d3a4343316 100644 (file)
@@ -37,6 +37,7 @@
 #define CSADRCFG1      (SMEMC_VIRT + 0x84)  /* Address Configuration Register for CS1 */
 #define CSADRCFG2      (SMEMC_VIRT + 0x88)  /* Address Configuration Register for CS2 */
 #define CSADRCFG3      (SMEMC_VIRT + 0x8C)  /* Address Configuration Register for CS3 */
+#define CSMSADRCFG     (SMEMC_VIRT + 0xA0)  /* Chip Select Configuration Register */
 
 /*
  * More handy macros for PCMCIA
index 3f3c48f2f7ceabd5f256169b5cc56d62524c40f4..577512845a6c17d1acbd7263ce75942360b090b9 100644 (file)
@@ -98,9 +98,6 @@ static unsigned long treo_pin_config[] __initdata = {
        GPIO96_KP_MKOUT_6,
        GPIO93_KP_DKIN_0 | WAKEUP_ON_LEVEL_HIGH,        /* Hotsync button */
 
-       /* LCD */
-       GPIOxx_LCD_TFT_16BPP,
-
        /* Quick Capture Interface */
        GPIO84_CIF_FV,
        GPIO85_CIF_LV,
@@ -140,6 +137,12 @@ static unsigned long treo680_pin_config[] __initdata = {
        /* MATRIX KEYPAD - different wake up source */
        GPIO100_KP_MKIN_0 | WAKEUP_ON_LEVEL_HIGH,
        GPIO99_KP_MKIN_5,
+
+       /* LCD... L_BIAS alt fn not configured on Treo680; is GPIO instead */
+       GPIOxx_LCD_16BPP,
+       GPIO74_LCD_FCLK,
+       GPIO75_LCD_LCLK,
+       GPIO76_LCD_PCLK,
 };
 #endif /* CONFIG_MACH_TREO680 */
 
@@ -155,6 +158,9 @@ static unsigned long centro685_pin_config[] __initdata = {
        /* MATRIX KEYPAD - different wake up source */
        GPIO100_KP_MKIN_0,
        GPIO99_KP_MKIN_5 | WAKEUP_ON_LEVEL_HIGH,
+
+       /* LCD */
+       GPIOxx_LCD_TFT_16BPP,
 };
 #endif /* CONFIG_MACH_CENTRO */
 
@@ -328,7 +334,6 @@ static inline void palmtreo_uhc_init(void) {}
 /******************************************************************************
  * Vibra and LEDs
  ******************************************************************************/
-#ifdef CONFIG_MACH_TREO680
 static struct gpio_led treo680_gpio_leds[] = {
        {
                .name                   = "treo680:vibra:vibra",
@@ -379,21 +384,17 @@ static struct gpio_led_platform_data centro_gpio_led_info = {
 static struct platform_device palmtreo_leds = {
        .name   = "leds-gpio",
        .id     = -1,
-       .dev    = {
-               .platform_data  = &treo680_gpio_led_info,
-       }
 };
 
 static void __init palmtreo_leds_init(void)
 {
        if (machine_is_centro())
                palmtreo_leds.dev.platform_data = &centro_gpio_led_info;
+       else if (machine_is_treo680())
+               palmtreo_leds.dev.platform_data = &treo680_gpio_led_info;
 
        platform_device_register(&palmtreo_leds);
 }
-#else
-static inline void palmtreo_leds_init(void) {}
-#endif
 
 /******************************************************************************
  * Machine init
@@ -424,10 +425,59 @@ static void __init palmphone_common_init(void)
 }
 
 #ifdef CONFIG_MACH_TREO680
+void __init treo680_gpio_init(void)
+{
+       unsigned int gpio;
+
+       /* drive all three lcd gpios high initially */
+       const unsigned long lcd_flags = GPIOF_INIT_HIGH | GPIOF_DIR_OUT;
+
+       /*
+        * LCD GPIO initialization...
+        */
+
+       /*
+        * This is likely the power to the lcd.  Toggling it low/high appears to
+        * turn the lcd off/on.  Can be toggled after lcd is initialized without
+        * any apparent adverse effects to the lcd operation.  Note that this
+        * gpio line is used by the lcd controller as the L_BIAS signal, but
+        * treo680 configures it as gpio.
+        */
+       gpio = GPIO_NR_TREO680_LCD_POWER;
+       if (gpio_request_one(gpio, lcd_flags, "LCD power") < 0)
+               goto fail;
+
+       /*
+        * These two are called "enables", for lack of a better understanding.
+        * If either of these are toggled after the lcd is initialized, the
+        * image becomes degraded.  N.B. The IPL shipped with the treo
+        * configures GPIO_NR_TREO680_LCD_EN_N as output and drives it high.  If
+        * the IPL is ever reprogrammed, this initialization may be need to be
+        * revisited.
+        */
+       gpio = GPIO_NR_TREO680_LCD_EN;
+       if (gpio_request_one(gpio, lcd_flags, "LCD enable") < 0)
+               goto fail;
+       gpio = GPIO_NR_TREO680_LCD_EN_N;
+       if (gpio_request_one(gpio, lcd_flags, "LCD enable_n") < 0)
+               goto fail;
+
+       /* driving this low turns LCD on */
+       gpio_set_value(GPIO_NR_TREO680_LCD_EN_N, 0);
+
+       return;
+ fail:
+       pr_err("gpio %d initialization failed\n", gpio);
+       gpio_free(GPIO_NR_TREO680_LCD_POWER);
+       gpio_free(GPIO_NR_TREO680_LCD_EN);
+       gpio_free(GPIO_NR_TREO680_LCD_EN_N);
+}
+
 static void __init treo680_init(void)
 {
        pxa2xx_mfp_config(ARRAY_AND_SIZE(treo680_pin_config));
        palmphone_common_init();
+       treo680_gpio_init();
        palm27x_mmc_init(GPIO_NR_TREO_SD_DETECT_N, GPIO_NR_TREO680_SD_READONLY,
                        GPIO_NR_TREO680_SD_POWER, 0);
 }
index 79923058d10f1352d8fd420180fc86ceca06957c..f38aa890b2c915a1114bfe9c6bd281ee3bfdee57 100644 (file)
@@ -40,6 +40,8 @@ static void pxa3xx_smemc_resume(void)
        __raw_writel(csadrcfg[1], CSADRCFG1);
        __raw_writel(csadrcfg[2], CSADRCFG2);
        __raw_writel(csadrcfg[3], CSADRCFG3);
+       /* CSMSADRCFG wakes up in its default state (0), so we need to set it */
+       __raw_writel(0x2, CSMSADRCFG);
 }
 
 static struct syscore_ops smemc_syscore_ops = {
@@ -49,8 +51,19 @@ static struct syscore_ops smemc_syscore_ops = {
 
 static int __init smemc_init(void)
 {
-       if (cpu_is_pxa3xx())
+       if (cpu_is_pxa3xx()) {
+               /*
+                * The only documentation we have on the
+                * Chip Select Configuration Register (CSMSADRCFG) is that
+                * it must be programmed to 0x2.
+                * Moreover, in the bit definitions, the second bit
+                * (CSMSADRCFG[1]) is called "SETALWAYS".
+                * Other bits are reserved in this register.
+                */
+               __raw_writel(0x2, CSMSADRCFG);
+
                register_syscore_ops(&smemc_syscore_ops);
+       }
 
        return 0;
 }
index 2073f0e6db0d22e87659a435ea4510469a610b65..7e2cb880daa63dd0c8e5801a37f316d2e774d09e 100644 (file)
@@ -732,7 +732,7 @@ static inline void spitz_lcd_init(void) {}
 #endif
 
 /******************************************************************************
- * Framebuffer
+ * NAND Flash
  ******************************************************************************/
 #if defined(CONFIG_MTD_NAND_SHARPSL) || defined(CONFIG_MTD_NAND_SHARPSL_MODULE)
 static struct mtd_partition spitz_nand_partitions[] = {
@@ -858,7 +858,7 @@ static inline void spitz_nor_init(void) {}
 #endif
 
 /******************************************************************************
- * GPIO expander
+ * I2C devices
  ******************************************************************************/
 #if defined(CONFIG_I2C_PXA) || defined(CONFIG_I2C_PXA_MODULE)
 static struct pca953x_platform_data akita_pca953x_pdata = {
index 3445c4f423475d4488854012a0e101d1ef4c9200..7079a70b1ab894db66888e7fdd3b8764c35e55fe 100644 (file)
@@ -226,6 +226,7 @@ config MACH_QT2410
 config ARCH_SMDK2410
        bool "SMDK2410/A9M2410"
        select S3C24XX_SMDK
+       select S3C_DEV_USB_HOST
        help
          Say Y here if you are using the SMDK2410 or the derived module A9M2410
          <http://www.fsforth.de>
@@ -273,6 +274,7 @@ config S3C2412_DMA
 
 config S3C2412_PM
        bool
+       select S3C2412_PM_SLEEP
        help
          Internal config node to apply S3C2412 power management
 
index aeb4a24ff3edffb7cb79f308cc85911c555427e0..f6b9f2ef01bdde960504230f36f6db6a594a05a6 100644 (file)
@@ -132,7 +132,7 @@ static struct clk *clk_msysclk_sources[] = {
        [3] = &clk_mpllref,
 };
 
-struct clksrc_clk clk_msysclk = {
+static struct clksrc_clk clk_msysclk = {
        .clk    = {
                .name           = "msysclk",
                .parent         = &clk_xtal,
index 0c9e9a785ef6e85d7e41260e09de23f1397a0871..6bcf87f65f9e41c7cb86dfd064495eb3a76820af 100644 (file)
@@ -197,7 +197,7 @@ static unsigned long s3c24xx_read_idcode_v4(void)
 
 static void s3c24xx_default_idle(void)
 {
-       unsigned long tmp;
+       unsigned long tmp = 0;
        int i;
 
        /* idle the system by using the idle mode which will wait for an
index 4135de87d1f7468e47f10a107b855c252dc6e7e9..13ed33c69113a3c6a5f70af6b9739d30d6f0b53b 100644 (file)
                addeq   \rd, \rx, #(S3C24XX_PA_GPIO - S3C24XX_PA_UART)
                addne   \rd, \rx, #(S3C24XX_VA_GPIO - S3C24XX_VA_UART)
                bic     \rd, \rd, #0xff000
-               ldr     \rd, [ \rd, # S3C2410_GSTATUS1 - S3C2410_GPIOREG(0) ]
+               ldr     \rd, [\rd, # S3C2410_GSTATUS1 - S3C2410_GPIOREG(0)]
                and     \rd, \rd, #0x00ff0000
                teq     \rd, #0x00440000                @ is it 2440?
 1004:
-               ldr     \rd, [ \rx, # S3C2410_UFSTAT ]
+               ldr     \rd, [\rx, # S3C2410_UFSTAT]
                moveq   \rd, \rd, lsr #SHIFT_2440TXF
                tst     \rd, #S3C2410_UFSTAT_TXFULL
        .endm
 
        .macro  fifo_full_s3c2410 rd, rx
-               ldr     \rd, [ \rx, # S3C2410_UFSTAT ]
+               ldr     \rd, [\rx, # S3C2410_UFSTAT]
                tst     \rd, #S3C2410_UFSTAT_TXFULL
        .endm
 
                addeq   \rd, \rx, #(S3C24XX_PA_GPIO - S3C24XX_PA_UART)
                addne   \rd, \rx, #(S3C24XX_VA_GPIO - S3C24XX_VA_UART)
                bic     \rd, \rd, #0xff000
-               ldr     \rd, [ \rd, # S3C2410_GSTATUS1 - S3C2410_GPIOREG(0) ]
+               ldr     \rd, [\rd, # S3C2410_GSTATUS1 - S3C2410_GPIOREG(0)]
                and     \rd, \rd, #0x00ff0000
                teq     \rd, #0x00440000                @ is it 2440?
 
 10000:
-               ldr     \rd, [ \rx, # S3C2410_UFSTAT ]
+               ldr     \rd, [\rx, # S3C2410_UFSTAT]
                andne   \rd, \rd, #S3C2410_UFSTAT_TXMASK
                andeq   \rd, \rd, #S3C2440_UFSTAT_TXMASK
        .endm
 
        .macro fifo_level_s3c2410 rd, rx
-               ldr     \rd, [ \rx, # S3C2410_UFSTAT ]
+               ldr     \rd, [\rx, # S3C2410_UFSTAT]
                and     \rd, \rd, #S3C2410_UFSTAT_TXMASK
        .endm
 
index 7615a14773fa5a647f9e498b9ec37411b008fb8d..6a21beeba1daad180c4655547a50e9cdfbee8ec0 100644 (file)
 
                @@ try the interrupt offset register, since it is there
 
-               ldr     \irqstat, [ \base, #INTPND ]
+               ldr     \irqstat, [\base, #INTPND ]
                teq     \irqstat, #0
                beq     1002f
-               ldr     \irqnr, [ \base, #INTOFFSET ]
+               ldr     \irqnr, [\base, #INTOFFSET ]
                mov     \tmp, #1
                tst     \irqstat, \tmp, lsl \irqnr
                bne     1001f
index bb36d832bd3d022f4bcfc7efd4d173586919ee58..c52100ef2322a7304098457f50e4fbe052a05fca 100644 (file)
@@ -22,6 +22,7 @@
 #include <linux/clk.h>
 #include <linux/i2c.h>
 #include <linux/io.h>
+#include <linux/platform_device.h>
 
 #include <linux/i2c/tps65010.h>
 
index c93bf2db9f4d551aee9d4882ce9a1056097538e7..6183a688012b2a5fdac22b6ce24ebfced4d73c1f 100644 (file)
@@ -30,4 +30,4 @@
 
 h1940_pm_return:
        mov     r0, #S3C2410_PA_GPIO
-       ldr     pc, [ r0, #S3C2410_GSTATUS3 - S3C24XX_VA_GPIO ]
+       ldr     pc, [r0, #S3C2410_GSTATUS3 - S3C24XX_VA_GPIO]
index c60f67a75afff8ba291d712091a744696e64893c..f5dc2b254a5a0b1a072aac5687c1cc3c86c708f9 100644 (file)
@@ -48,7 +48,8 @@ static int s3c2412_cpu_suspend(unsigned long arg)
 
        s3c2412_sleep_enter();
 
-       panic("sleep resumed to originator?");
+       pr_info("Failed to suspend the system\n");
+       return 1; /* Aborting suspend */
 }
 
 static void s3c2412_pm_prepare(void)
index 1bd4817b8eb8bef37a762e9fa870a1b8900522d5..1a9e8dd194ff87b09025990d89a3774ad12156b8 100644 (file)
@@ -34,7 +34,8 @@ static int s3c2416_cpu_suspend(unsigned long arg)
 
        s3c2412_sleep_enter();
 
-       panic("sleep resumed to originator?");
+       pr_info("Failed to suspend the system\n");
+       return 1; /* Aborting suspend */
 }
 
 static void s3c2416_pm_prepare(void)
index dd5b6388a5a555826e80eab1eae0710040d954f6..65200ae72c908d24eaf4df1a0dc7edcf6dd316b6 100644 (file)
@@ -45,9 +45,9 @@ ENTRY(s3c2410_cpu_suspend)
        ldr     r4, =S3C2410_REFRESH
        ldr     r5, =S3C24XX_MISCCR
        ldr     r6, =S3C2410_CLKCON
-       ldr     r7, [ r4 ]              @ get REFRESH (and ensure in TLB)
-       ldr     r8, [ r5 ]              @ get MISCCR (and ensure in TLB)
-       ldr     r9, [ r6 ]              @ get CLKCON (and ensure in TLB)
+       ldr     r7, [r4]                @ get REFRESH (and ensure in TLB)
+       ldr     r8, [r5]                @ get MISCCR (and ensure in TLB)
+       ldr     r9, [r6]                @ get CLKCON (and ensure in TLB)
 
        orr     r7, r7, #S3C2410_REFRESH_SELF   @ SDRAM sleep command
        orr     r8, r8, #S3C2410_MISCCR_SDSLEEP @ SDRAM power-down signals
@@ -61,8 +61,8 @@ ENTRY(s3c2410_cpu_suspend)
        @@ align next bit of code to cache line
        .align  5
 s3c2410_do_sleep:
-       streq   r7, [ r4 ]                      @ SDRAM sleep command
-       streq   r8, [ r5 ]                      @ SDRAM power-down config
-       streq   r9, [ r6 ]                      @ CPU sleep
+       streq   r7, [r4]                        @ SDRAM sleep command
+       streq   r8, [r5]                        @ SDRAM power-down config
+       streq   r9, [r6]                        @ CPU sleep
 1:     beq     1b
        mov     pc, r14
index c82418ed714d5c0d6976cedb598cfd0a4ea09d85..5adaceb7da1303c19a02b796e795aeb0aa124dd5 100644 (file)
@@ -57,12 +57,12 @@ s3c2412_sleep_enter1:
         * retry, as simply returning causes the system to lock.
        */
 
-       ldrne   r9, [ r1 ]
-       strne   r9, [ r1 ]
-       ldrne   r9, [ r2 ]
-       strne   r9, [ r2 ]
-       ldrne   r9, [ r3 ]
-       strne   r9, [ r3 ]
+       ldrne   r9, [r1]
+       strne   r9, [r1]
+       ldrne   r9, [r2]
+       strne   r9, [r2]
+       ldrne   r9, [r3]
+       strne   r9, [r3]
        bne     s3c2412_sleep_enter1
 
        mov     pc, r14
index d2e1a16690bd5807f961d6804b61dddfeb029fc7..ce8499063228eadadff2df6e1a3790152bab9616 100644 (file)
@@ -296,7 +296,8 @@ static int s3c64xx_cpu_suspend(unsigned long arg)
 
        /* we should never get past here */
 
-       panic("sleep resumed to originator?");
+       pr_info("Failed to suspend the system\n");
+       return 1; /* Aborting suspend */
 }
 
 /* mapping of interrupts to parts of the wakeup mask */
index 9cba18bfe47bbd56bc197518fdd48496f5980664..97c2a08ad4903a6e23839bc96b12e454f8c1135a 100644 (file)
@@ -103,8 +103,8 @@ static int s5p64x0_cpu_suspend(unsigned long arg)
            "mcr p15, 0, %0, c7, c10, 4\n\t"
            "mcr p15, 0, %0, c7, c0, 4" : : "r" (tmp));
 
-       /* we should never get past here */
-       panic("sleep resumed to originator?");
+       pr_info("Failed to suspend the system\n");
+       return 1; /* Aborting suspend */
 }
 
 /* mapping of interrupts to parts of the wakeup mask */
index 08ff2fda1fb9a186030e196d10372fa05afb0ddf..ef977ea8546d63e3d858c19b82331f235f453907 100644 (file)
@@ -19,6 +19,8 @@
 static void arch_detect_cpu(void)
 {
        /* we do not need to do any cpu detection here at the moment. */
+       fifo_mask = S5PV210_UFSTAT_TXMASK;
+       fifo_max = 63 << S5PV210_UFSTAT_TXSHIFT;
 }
 
 #endif /* __ASM_ARCH_UNCOMPRESS_H */
index 736bfb103cbc4acc3e38f057bd018cc841e2b420..2b68a67b6e953fe992494f9bcca2744c6abb1e8a 100644 (file)
@@ -104,8 +104,8 @@ static int s5pv210_cpu_suspend(unsigned long arg)
            "mcr p15, 0, %0, c7, c10, 4\n\t"
            "wfi" : : "r" (tmp));
 
-       /* we should never get past here */
-       panic("sleep resumed to originator?");
+       pr_info("Failed to suspend the system\n");
+       return 1; /* Aborting suspend */
 }
 
 static void s5pv210_pm_prepare(void)
index f69f78fc3ddd2b15ee681c6f5670a383f9a322f8..bca7e60b24d3ec4fbb6c3b209f4c6a5b4f82a062 100644 (file)
@@ -24,9 +24,6 @@
 
 #include "generic.h"
 
-
-#warning "include/asm/arch-sa1100/ide.h needs fixing for lart"
-
 static struct mcp_plat_data lart_mcp_data = {
        .mccr0          = MCCR0_ADM,
        .sclk_rate      = 11981000,
index 721e7b4275f3bc6496ff4ccb29fc419b572719f7..d4dcec53171ac7abef0bfee7eb8061bb1fe90db5 100644 (file)
@@ -71,13 +71,11 @@ void __init ux500_init_irq(void)
         * Init clocks here so that they are available for system timer
         * initialization.
         */
-       if (cpu_is_u8500_family())
+       if (cpu_is_u8500_family() || cpu_is_u9540())
                db8500_prcmu_early_init();
 
-       if (cpu_is_u8500_family())
+       if (cpu_is_u8500_family() || cpu_is_u9540())
                u8500_clk_init();
-       else if (cpu_is_u9540())
-               u9540_clk_init();
        else if (cpu_is_u8540())
                u8540_clk_init();
 }
index b54884bd254987f105d5f8ab0701b458ece1396e..ce9149302cc3c73f7f3247714d2791ff9770a4b4 100644 (file)
@@ -40,8 +40,10 @@ static inline int ux500_enter_idle(struct cpuidle_device *dev,
                        goto wfi;
 
                /* decouple the gic from the A9 cores */
-               if (prcmu_gic_decouple())
+               if (prcmu_gic_decouple()) {
+                       spin_unlock(&master_lock);
                        goto out;
+               }
 
                /* If an error occur, we will have to recouple the gic
                 * manually */
index 63d8e9f81b99aa73970c9985dd657ec4a42705a9..1dba3688275f962e90576c41b14d5cb2f883d4cd 100644 (file)
@@ -25,4 +25,9 @@ config MACH_VERSATILE_DT
          Include support for the ARM(R) Versatile/PB platform,
          using the device tree for discovery
 
+config MACH_VERSATILE_AUTO
+       def_bool y
+       depends on !ARCH_VERSATILE_PB && !MACH_VERSATILE_AB
+       select MACH_VERSATILE_DT
+
 endmenu
index a78827b70270e9eaeaf3c9796cd076f01f4f7910..43478c299cc816ad379e8ef10c7e780b0a826c48 100644 (file)
@@ -127,7 +127,7 @@ void __init versatile_init_irq(void)
        writel(PIC_MASK, VA_SIC_BASE + SIC_INT_PIC_ENABLE);
 }
 
-static struct map_desc versatile_io_desc[] __initdata = {
+static struct map_desc versatile_io_desc[] __initdata __maybe_unused = {
        {
                .virtual        =  IO_ADDRESS(VERSATILE_SYS_BASE),
                .pfn            = __phys_to_pfn(VERSATILE_SYS_BASE),
index e286daca68279c5f8dd08efe30d5140b7c5d075c..0ff612ac95ba198eaf4964622abe17364d954694 100644 (file)
@@ -19,8 +19,8 @@
 
                mov     \base, #AIC_BA
 
-               ldr     \irqnr, [ \base, #AIC_IPER]
-               ldr     \irqnr, [ \base, #AIC_ISNR]
+               ldr     \irqnr, [\base, #AIC_IPER]
+               ldr     \irqnr, [\base, #AIC_ISNR]
                cmp     \irqnr, #0
 
        .endm
index 4136b20cba3cc257534900894a1a8767baab585e..e06c34bdc34aa11c2bcac80097391dddfb552f5d 100644 (file)
@@ -2019,7 +2019,7 @@ static int omap_system_dma_probe(struct platform_device *pdev)
        errata                  = p->errata;
 
        if ((d->dev_caps & RESERVE_CHANNEL) && omap_dma_reserve_channels
-                       && (omap_dma_reserve_channels <= dma_lch_count))
+                       && (omap_dma_reserve_channels < d->lch_count))
                d->lch_count    = omap_dma_reserve_channels;
 
        dma_lch_count           = d->lch_count;
index e686fe76a96b169c705322fcf2419844cabb76d2..7310bcfb299f8228a8ec6cd1e0a1666402425d89 100644 (file)
@@ -49,7 +49,7 @@ void __init orion_mpp_conf(unsigned int *mpp_list, unsigned int variant_mask,
                                        "number (%u)\n", num);
                        continue;
                }
-               if (variant_mask & !(*mpp_list & variant_mask)) {
+               if (variant_mask && !(*mpp_list & variant_mask)) {
                        printk(KERN_WARNING
                               "orion_mpp_conf: requested MPP%u config "
                               "unavailable on this hardware\n", num);
index 207e275362a82f94844d58afccd725caada2a77f..f3a9cff6d5d44f421bd6107220d6da6f0cd61e25 100644 (file)
 /* The S5PV210/S5PC110 implementations are as belows. */
 
        .macro fifo_level_s5pv210 rd, rx
-               ldr     \rd, [ \rx, # S3C2410_UFSTAT ]
+               ldr     \rd, [\rx, # S3C2410_UFSTAT]
                and     \rd, \rd, #S5PV210_UFSTAT_TXMASK
        .endm
 
        .macro  fifo_full_s5pv210 rd, rx
-               ldr     \rd, [ \rx, # S3C2410_UFSTAT ]
+               ldr     \rd, [\rx, # S3C2410_UFSTAT]
                tst     \rd, #S5PV210_UFSTAT_TXFULL
        .endm
 
@@ -27,7 +27,7 @@
  * most widely re-used */
 
        .macro fifo_level_s3c2440 rd, rx
-               ldr     \rd, [ \rx, # S3C2410_UFSTAT ]
+               ldr     \rd, [\rx, # S3C2410_UFSTAT]
                and     \rd, \rd, #S3C2440_UFSTAT_TXMASK
        .endm
 
@@ -36,7 +36,7 @@
 #endif
 
        .macro  fifo_full_s3c2440 rd, rx
-               ldr     \rd, [ \rx, # S3C2410_UFSTAT ]
+               ldr     \rd, [\rx, # S3C2410_UFSTAT]
                tst     \rd, #S3C2440_UFSTAT_TXFULL
        .endm
 
 #endif
 
        .macro  senduart,rd,rx
-               strb    \rd, [\rx, # S3C2410_UTXH ]
+               strb    \rd, [\rx, # S3C2410_UTXH]
        .endm
 
        .macro  busyuart, rd, rx
-               ldr     \rd, [ \rx, # S3C2410_UFCON ]
+               ldr     \rd, [\rx, # S3C2410_UFCON]
                tst     \rd, #S3C2410_UFCON_FIFOMODE    @ fifo enabled?
                beq     1001f                           @
                @ FIFO enabled...
@@ -60,7 +60,7 @@
 
 1001:
                @ busy waiting for non fifo
-               ldr     \rd, [ \rx, # S3C2410_UTRSTAT ]
+               ldr     \rd, [\rx, # S3C2410_UTRSTAT]
                tst     \rd, #S3C2410_UTRSTAT_TXFE
                beq     1001b
 
@@ -68,7 +68,7 @@
        .endm
 
        .macro  waituart,rd,rx
-               ldr     \rd, [ \rx, # S3C2410_UFCON ]
+               ldr     \rd, [\rx, # S3C2410_UFCON]
                tst     \rd, #S3C2410_UFCON_FIFOMODE    @ fifo enabled?
                beq     1001f                           @
                @ FIFO enabled...
@@ -79,7 +79,7 @@
                b       1002f
 1001:
                @ idle waiting for non fifo
-               ldr     \rd, [ \rx, # S3C2410_UTRSTAT ]
+               ldr     \rd, [\rx, # S3C2410_UTRSTAT]
                tst     \rd, #S3C2410_UTRSTAT_TXFE
                beq     1001b
 
index 945a99d59563999829bf6942928c1748c00d78fa..1d6cb2b8b094deb005611e3a0d8be2f85e561952 100644 (file)
@@ -43,6 +43,8 @@ static inline void s3c_fimc_setname(int id, char *name)
                s5p_device_fimc3.name = name;
                break;
 #endif
+       default:
+               break;
        }
 }
 
index 151cc9195cf6d4f56fb4af70c9721abe075d545b..9b87f38fc4f400e24332d00bffabe08e6cfb56cd 100644 (file)
@@ -374,6 +374,8 @@ static inline void s3c_sdhci_setname(int id, char *name)
                s3c_device_hsmmc3.name = name;
                break;
 #endif
+       default:
+               break;
        }
 }
 
index 15070284343ee43070c7130d3f8ce6bff6a0b4ff..002b1472293b4e34459e7563dd3edd8af0ecf93b 100644 (file)
@@ -51,7 +51,7 @@ void s3c_pm_dbg(const char *fmt, ...)
        char buff[256];
 
        va_start(va, fmt);
-       vsprintf(buff, fmt, va);
+       vsnprintf(buff, sizeof(buff), fmt, va);
        va_end(va);
 
        printascii(buff);
@@ -243,6 +243,7 @@ int (*pm_cpu_sleep)(unsigned long);
 
 static int s3c_pm_enter(suspend_state_t state)
 {
+       int ret;
        /* ensure the debug is initialised (if enabled) */
 
        s3c_pm_debug_init();
@@ -300,7 +301,9 @@ static int s3c_pm_enter(suspend_state_t state)
         * we resume as it saves its own register state and restores it
         * during the resume.  */
 
-       cpu_suspend(0, pm_cpu_sleep);
+       ret = cpu_suspend(0, pm_cpu_sleep);
+       if (ret)
+               return ret;
 
        /* restore the system state */
 
index 87dbd81bdf5130541604e348ef847fabfa6afaef..739d016eb273faf8a22859856767901ce7e8beef 100644 (file)
@@ -10,6 +10,7 @@ choice
 
 config ARCH_SPEAR13XX
        bool "ST SPEAr13xx with Device Tree"
+       select ARCH_HAVE_CPUFREQ
        select ARM_GIC
        select CPU_V7
        select GPIO_SPEAR_SPICS
index 76be7eed79dec2683e244a0a9f60a1688241e1ab..b2016ed941ac250178cadcb69a4e0112faf95832 100644 (file)
@@ -3023,9 +3023,9 @@ static __init int samsung_gpiolib_init(void)
        */
        struct device_node *pctrl_np;
        static const struct of_device_id exynos_pinctrl_ids[] = {
-               { .compatible = "samsung,pinctrl-exynos4210", },
-               { .compatible = "samsung,pinctrl-exynos4x12", },
-               { .compatible = "samsung,pinctrl-exynos5440", },
+               { .compatible = "samsung,exynos4210-pinctrl", },
+               { .compatible = "samsung,exynos4x12-pinctrl", },
+               { .compatible = "samsung,exynos5440-pinctrl", },
        };
        for_each_matching_node(pctrl_np, exynos_pinctrl_ids)
                if (pctrl_np && of_device_is_available(pctrl_np))
index 77048b18439e3e6467b79f7ba4b2b3ac06e36a6e..558c2928f2613f9011b00dafcbac5da71e0551d4 100644 (file)
@@ -313,7 +313,7 @@ static void vexpress_sysreg_config_complete(unsigned long data)
 }
 
 
-void __init vexpress_sysreg_setup(struct device_node *node)
+void vexpress_sysreg_setup(struct device_node *node)
 {
        if (WARN_ON(!vexpress_sysreg_base))
                return;
index 5f8441ef59ca1aee98ec117cf13935cae19b2d73..f206df1756568b2e0727ac06ac65ae07d5a83b0e 100644 (file)
@@ -944,9 +944,9 @@ static int samsung_pinctrl_probe(struct platform_device *pdev)
 }
 
 static const struct of_device_id samsung_pinctrl_dt_match[] = {
-       { .compatible = "samsung,pinctrl-exynos4210",
+       { .compatible = "samsung,exynos4210-pinctrl",
                .data = (void *)exynos4210_pin_ctrl },
-       { .compatible = "samsung,pinctrl-exynos4x12",
+       { .compatible = "samsung,exynos4x12-pinctrl",
                .data = (void *)exynos4x12_pin_ctrl },
        {},
 };
index 51d52e767a1955b52dc83e2510f1b5aec13ea1be..2a50048c1c44a4aa5e67b3889be7209458484d87 100644 (file)
@@ -15,6 +15,8 @@
 
 #define S3C_IICFLG_FILTER      (1<<0)  /* enable s3c2440 filter */
 
+struct platform_device;
+
 /**
  *     struct s3c2410_platform_i2c - Platform data for s3c I2C.
  *     @bus_num: The bus number to use (if possible).
index e4fd45b7e4568bf95b3b828df81767862b88a7a1..f5eb43d429267f5bfeeaf0c27eab24e2e07f0f84 100644 (file)
@@ -182,7 +182,7 @@ do_func(Elf_Ehdr *ehdr, char const *const fname, table_sort_t custom_sort)
                _r(&sort_needed_sym->st_value) -
                _r(&sort_needed_sec->sh_addr);
 
-#if 1
+#if 0
        printf("sort done marker at %lx\n",
               (unsigned long)((char *)sort_done_location - (char *)ehdr));
 #endif