Merge tag 'arm-imx-clk-fixes' of git://git.pengutronix.de/git/imx/linux-2.6 into...
authorArnd Bergmann <arnd@arndb.de>
Tue, 19 Feb 2013 21:45:33 +0000 (22:45 +0100)
committerArnd Bergmann <arnd@arndb.de>
Tue, 19 Feb 2013 21:45:33 +0000 (22:45 +0100)
ARM: i.MX: clock fixes

- fix wrong timer clock on i.MX25 leading to strange timing inconsistencies
- fix SPI clocks for i.MX27

* tag 'arm-imx-clk-fixes' of git://git.pengutronix.de/git/imx/linux-2.6:
  ARM: i.MX25: clk: parent per5_clk to AHB clock
  ARM: imx27: clk-imx27: SPI: Rename IPG clock and add PER clock

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
73 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/include/asm/smp_scu.h
arch/arm/kernel/smp_scu.c
arch/arm/mach-exynos/common.c
arch/arm/mach-exynos/pm.c
arch/arm/mach-highbank/highbank.c
arch/arm/mach-highbank/sysregs.h
arch/arm/mach-imx/Kconfig
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 212c255b93472ada8cba2016b014eea3b7aa8369..dec0dd523bd24f4a144ce58bff51c110ce456b3c 100644 (file)
@@ -1248,12 +1248,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>
@@ -1262,6 +1267,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 67874b82a4edf318ae3718ae6137393140405586..b934d90a61e4ae4f1ce585e7a5ce5b69715a175a 100644 (file)
@@ -261,7 +261,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"
@@ -1450,6 +1451,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 73cf03aa981e1b665d9a40f4f80847335ca49441..b11105c8599a3e4da870b278b9f3b0e468aedd8f 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 4eb6d005ffaa4b625c9f86fc8532b046d0cf1f6a..86dff32a073755f46c40c379d27a29f9aab5b829 100644 (file)
@@ -7,8 +7,14 @@
 
 #ifndef __ASSEMBLER__
 unsigned int scu_get_core_count(void __iomem *);
-void scu_enable(void __iomem *);
 int scu_power_mode(void __iomem *, unsigned int);
+
+#ifdef CONFIG_SMP
+void scu_enable(void __iomem *scu_base);
+#else
+static inline void scu_enable(void __iomem *scu_base) {}
+#endif
+
 #endif
 
 #endif
index b9f015e843d8d10c461197c4399663942fb721e9..45eac87ed66a692859e7431af684f0b33b3ffeed 100644 (file)
@@ -75,7 +75,7 @@ void scu_enable(void __iomem *scu_base)
 int scu_power_mode(void __iomem *scu_base, unsigned int mode)
 {
        unsigned int val;
-       int cpu = cpu_logical_map(smp_processor_id());
+       int cpu = MPIDR_AFFINITY_LEVEL(cpu_logical_map(smp_processor_id()), 0);
 
        if (mode > 3 || mode == 1 || cpu > 3)
                return -EINVAL;
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 981dc1e1da518b1ddf5f6340085837ad07d7e444..e6c06128293962b24adbe84892e19d4a876ff373 100644 (file)
@@ -28,6 +28,7 @@
 
 #include <asm/arch_timer.h>
 #include <asm/cacheflush.h>
+#include <asm/cputype.h>
 #include <asm/smp_plat.h>
 #include <asm/smp_twd.h>
 #include <asm/hardware/arm_timer.h>
@@ -59,7 +60,7 @@ static void __init highbank_scu_map_io(void)
 
 void highbank_set_cpu_jump(int cpu, void *jump_addr)
 {
-       cpu = cpu_logical_map(cpu);
+       cpu = MPIDR_AFFINITY_LEVEL(cpu_logical_map(cpu), 0);
        writel(virt_to_phys(jump_addr), HB_JUMP_TABLE_VIRT(cpu));
        __cpuc_flush_dcache_area(HB_JUMP_TABLE_VIRT(cpu), 16);
        outer_clean_range(HB_JUMP_TABLE_PHYS(cpu),
index 70af9d13fcefefb1fad252c1a8c8a2bffa71ef3b..5995df7f2622eaa20382d7ad0e90483675a6b5eb 100644 (file)
@@ -37,7 +37,7 @@ extern void __iomem *sregs_base;
 
 static inline void highbank_set_core_pwr(void)
 {
-       int cpu = cpu_logical_map(smp_processor_id());
+       int cpu = MPIDR_AFFINITY_LEVEL(cpu_logical_map(smp_processor_id()), 0);
        if (scu_base_addr)
                scu_power_mode(scu_base_addr, SCU_PM_POWEROFF);
        else
@@ -46,7 +46,7 @@ static inline void highbank_set_core_pwr(void)
 
 static inline void highbank_clear_core_pwr(void)
 {
-       int cpu = cpu_logical_map(smp_processor_id());
+       int cpu = MPIDR_AFFINITY_LEVEL(cpu_logical_map(smp_processor_id()), 0);
        if (scu_base_addr)
                scu_power_mode(scu_base_addr, SCU_PM_NORMAL);
        else
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 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 25df14a9e268b94aa30d39480d5fac0258b21925..d1e80d0fd671fd0cb80d414f00ad68af5a228e4b 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 5d5929450366a894aa2abea0ecee82113c75ac67..60c092cfdae3a9322d80aecad31a85b4d125319a 100644 (file)
@@ -114,7 +114,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 fd7b24cd89084d923dd2cc1cc2a581695a040deb..044d2da34e4e4033363340b0340523a1a8445b13 100644 (file)
@@ -947,9 +947,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