aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2014-03-21 13:32:54 -0400
committerArnd Bergmann <arnd@arndb.de>2014-03-21 20:10:19 -0400
commit600a1dfae24746ccd8b1617742ef7b98099f83b8 (patch)
tree67eeaa58816681ed37257499bbfce23dd8db5844
parentb44ce3b0f9c3883e7c537793b808feee9a2a00fb (diff)
parent9f3ba4567e8d11de89673afea174d206ca9446f6 (diff)
Merge branch 'randconfig-fixes' into next/fixes-non-critical
This is the first batch of a much longer series of bug fixes found during randconfig testing. This part are all the simple patches that are applicable for the arm-soc tree, while most other fixes will likely go through other maintainers. * randconfig-fixes: (50 commits) ARM: tegra: make debug_ll code build for ARMv6 ARM: sunxi: fix build for THUMB2_KERNEL ARM: exynos: add missing include of linux/module.h ARM: exynos: fix l2x0 saved regs handling ARM: samsung: select CRC32 for SAMSUNG_PM_CHECK ARM: samsung: select ATAGS where necessary ARM: samsung: fix SAMSUNG_PM_DEBUG Kconfig logic ARM: samsung: allow serial driver to be disabled ARM: s5pv210: enable IDE support in MACH_TORBRECK ARM: s5p64x0: fix building with only one soc type ARM: s3c64xx: select power domains only when used ARM: s3c64xx: MACH_SMDK6400 needs HSMMC1 ARM: s3c24xx: osiris dvs needs tps65010 ARM: s3c24xx: fix gta02 build error ARM: s3c24xx: MINI2440 needs I2C for EEPROM_AT24 ARM: integrator: only select pl01x if TTY is enabled ARM: realview: fix sparsemem build ARM: footbridge: make screen_info setup conditional ARM: footbridge: fix build with PCI disabled ARM: footbridge: don't build floppy code for addin mode ... Signed-off-by: Arnd Bergmann <arnd@arndb.de>
-rw-r--r--arch/arm/Kconfig9
-rw-r--r--arch/arm/configs/davinci_all_defconfig2
-rw-r--r--arch/arm/include/asm/smp.h1
-rw-r--r--arch/arm/include/debug/tegra.S18
-rw-r--r--arch/arm/mach-at91/Kconfig23
-rw-r--r--arch/arm/mach-at91/Kconfig.non_dt8
-rw-r--r--arch/arm/mach-at91/at91sam9260_devices.c6
-rw-r--r--arch/arm/mach-at91/sam9_smc.c3
-rw-r--r--arch/arm/mach-at91/setup.c2
-rw-r--r--arch/arm/mach-davinci/Kconfig5
-rw-r--r--arch/arm/mach-davinci/board-dm644x-evm.c11
-rw-r--r--arch/arm/mach-ep93xx/core.c1
-rw-r--r--arch/arm/mach-exynos/common.c6
-rw-r--r--arch/arm/mach-exynos/cpuidle.c1
-rw-r--r--arch/arm/mach-footbridge/Kconfig2
-rw-r--r--arch/arm/mach-footbridge/Makefile3
-rw-r--r--arch/arm/mach-footbridge/cats-hw.c2
-rw-r--r--arch/arm/mach-hisi/Makefile3
-rw-r--r--arch/arm/mach-hisi/hotplug.c2
-rw-r--r--arch/arm/mach-integrator/Kconfig8
-rw-r--r--arch/arm/mach-ixp4xx/common.c6
-rw-r--r--arch/arm/mach-ixp4xx/goramo_mlr.c7
-rw-r--r--arch/arm/mach-ixp4xx/include/mach/io.h3
-rw-r--r--arch/arm/mach-ixp4xx/omixp-setup.c2
-rw-r--r--arch/arm/mach-ks8695/board-og.c3
-rw-r--r--arch/arm/mach-lpc32xx/common.c1
-rw-r--r--arch/arm/mach-msm/dma.c3
-rw-r--r--arch/arm/mach-msm/io.c2
-rw-r--r--arch/arm/mach-mvebu/armada-370-xp.c1
-rw-r--r--arch/arm/mach-omap1/board-h2.c3
-rw-r--r--arch/arm/mach-omap1/board-osk.c3
-rw-r--r--arch/arm/mach-omap1/pm.c6
-rw-r--r--arch/arm/mach-orion5x/Kconfig1
-rw-r--r--arch/arm/mach-orion5x/dns323-setup.c2
-rw-r--r--arch/arm/mach-pxa/Kconfig9
-rw-r--r--arch/arm/mach-pxa/balloon3.c1
-rw-r--r--arch/arm/mach-pxa/colibri-evalboard.c1
-rw-r--r--arch/arm/mach-realview/include/mach/memory.h2
-rw-r--r--arch/arm/mach-s3c24xx/Kconfig4
-rw-r--r--arch/arm/mach-s3c24xx/mach-gta02.c2
-rw-r--r--arch/arm/mach-s3c64xx/Kconfig3
-rw-r--r--arch/arm/mach-s3c64xx/irq-pm.c12
-rw-r--r--arch/arm/mach-s5p64x0/common.c18
-rw-r--r--arch/arm/mach-s5p64x0/common.h5
-rw-r--r--arch/arm/mach-s5p64x0/irq-pm.c6
-rw-r--r--arch/arm/mach-s5pv210/Kconfig1
-rw-r--r--arch/arm/mach-sunxi/Makefile2
-rw-r--r--arch/arm/mach-sunxi/headsmp.S9
-rw-r--r--arch/arm/mach-sunxi/platsmp.c2
-rw-r--r--arch/arm/mm/Kconfig2
-rw-r--r--arch/arm/plat-samsung/Kconfig6
-rw-r--r--arch/arm/plat-samsung/init.c4
-rw-r--r--include/linux/pxa2xx_ssp.h2
53 files changed, 159 insertions, 91 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index e25419817791..3dad96105ce4 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -420,6 +420,7 @@ config ARCH_EFM32
420 bool "Energy Micro efm32" 420 bool "Energy Micro efm32"
421 depends on !MMU 421 depends on !MMU
422 select ARCH_REQUIRE_GPIOLIB 422 select ARCH_REQUIRE_GPIOLIB
423 select AUTO_ZRELADDR
423 select ARM_NVIC 424 select ARM_NVIC
424 # CLKSRC_MMIO is wrong here, but needed until a proper fix is merged, 425 # CLKSRC_MMIO is wrong here, but needed until a proper fix is merged,
425 # i.e. CLKSRC_EFM32 selecting CLKSRC_MMIO 426 # i.e. CLKSRC_EFM32 selecting CLKSRC_MMIO
@@ -697,6 +698,7 @@ config ARCH_RPC
697 select ARCH_MAY_HAVE_PC_FDC 698 select ARCH_MAY_HAVE_PC_FDC
698 select ARCH_SPARSEMEM_ENABLE 699 select ARCH_SPARSEMEM_ENABLE
699 select ARCH_USES_GETTIMEOFFSET 700 select ARCH_USES_GETTIMEOFFSET
701 select CPU_SA110
700 select FIQ 702 select FIQ
701 select HAVE_IDE 703 select HAVE_IDE
702 select HAVE_PATA_PLATFORM 704 select HAVE_PATA_PLATFORM
@@ -731,6 +733,7 @@ config ARCH_S3C24XX
731 bool "Samsung S3C24XX SoCs" 733 bool "Samsung S3C24XX SoCs"
732 select ARCH_HAS_CPUFREQ 734 select ARCH_HAS_CPUFREQ
733 select ARCH_REQUIRE_GPIOLIB 735 select ARCH_REQUIRE_GPIOLIB
736 select ATAGS
734 select CLKDEV_LOOKUP 737 select CLKDEV_LOOKUP
735 select CLKSRC_SAMSUNG_PWM 738 select CLKSRC_SAMSUNG_PWM
736 select GENERIC_CLOCKEVENTS 739 select GENERIC_CLOCKEVENTS
@@ -753,6 +756,7 @@ config ARCH_S3C64XX
753 select ARCH_REQUIRE_GPIOLIB 756 select ARCH_REQUIRE_GPIOLIB
754 select ARM_AMBA 757 select ARM_AMBA
755 select ARM_VIC 758 select ARM_VIC
759 select ATAGS
756 select CLKDEV_LOOKUP 760 select CLKDEV_LOOKUP
757 select CLKSRC_SAMSUNG_PWM 761 select CLKSRC_SAMSUNG_PWM
758 select COMMON_CLK 762 select COMMON_CLK
@@ -764,7 +768,7 @@ config ARCH_S3C64XX
764 select HAVE_TCM 768 select HAVE_TCM
765 select NO_IOPORT 769 select NO_IOPORT
766 select PLAT_SAMSUNG 770 select PLAT_SAMSUNG
767 select PM_GENERIC_DOMAINS 771 select PM_GENERIC_DOMAINS if PM
768 select S3C_DEV_NAND 772 select S3C_DEV_NAND
769 select S3C_GPIO_TRACK 773 select S3C_GPIO_TRACK
770 select SAMSUNG_ATAGS 774 select SAMSUNG_ATAGS
@@ -776,6 +780,7 @@ config ARCH_S3C64XX
776 780
777config ARCH_S5P64X0 781config ARCH_S5P64X0
778 bool "Samsung S5P6440 S5P6450" 782 bool "Samsung S5P6440 S5P6450"
783 select ATAGS
779 select CLKDEV_LOOKUP 784 select CLKDEV_LOOKUP
780 select CLKSRC_SAMSUNG_PWM 785 select CLKSRC_SAMSUNG_PWM
781 select CPU_V6 786 select CPU_V6
@@ -794,6 +799,7 @@ config ARCH_S5P64X0
794config ARCH_S5PC100 799config ARCH_S5PC100
795 bool "Samsung S5PC100" 800 bool "Samsung S5PC100"
796 select ARCH_REQUIRE_GPIOLIB 801 select ARCH_REQUIRE_GPIOLIB
802 select ATAGS
797 select CLKDEV_LOOKUP 803 select CLKDEV_LOOKUP
798 select CLKSRC_SAMSUNG_PWM 804 select CLKSRC_SAMSUNG_PWM
799 select CPU_V7 805 select CPU_V7
@@ -813,6 +819,7 @@ config ARCH_S5PV210
813 select ARCH_HAS_CPUFREQ 819 select ARCH_HAS_CPUFREQ
814 select ARCH_HAS_HOLES_MEMORYMODEL 820 select ARCH_HAS_HOLES_MEMORYMODEL
815 select ARCH_SPARSEMEM_ENABLE 821 select ARCH_SPARSEMEM_ENABLE
822 select ATAGS
816 select CLKDEV_LOOKUP 823 select CLKDEV_LOOKUP
817 select CLKSRC_SAMSUNG_PWM 824 select CLKSRC_SAMSUNG_PWM
818 select CPU_V7 825 select CPU_V7
diff --git a/arch/arm/configs/davinci_all_defconfig b/arch/arm/configs/davinci_all_defconfig
index ab2f7378352c..932b932c8856 100644
--- a/arch/arm/configs/davinci_all_defconfig
+++ b/arch/arm/configs/davinci_all_defconfig
@@ -198,3 +198,5 @@ CONFIG_DEBUG_ERRORS=y
198# CONFIG_CRYPTO_ANSI_CPRNG is not set 198# CONFIG_CRYPTO_ANSI_CPRNG is not set
199# CONFIG_CRYPTO_HW is not set 199# CONFIG_CRYPTO_HW is not set
200CONFIG_CRC_T10DIF=m 200CONFIG_CRC_T10DIF=m
201CONFIG_GPIO_PCA953X=y
202CONFIG_KEYBOARD_GPIO_POLLED=y
diff --git a/arch/arm/include/asm/smp.h b/arch/arm/include/asm/smp.h
index 22a3b9b5d4a1..4157aec4e307 100644
--- a/arch/arm/include/asm/smp.h
+++ b/arch/arm/include/asm/smp.h
@@ -74,6 +74,7 @@ struct secondary_data {
74}; 74};
75extern struct secondary_data secondary_data; 75extern struct secondary_data secondary_data;
76extern volatile int pen_release; 76extern volatile int pen_release;
77extern void secondary_startup(void);
77 78
78extern int __cpu_disable(void); 79extern int __cpu_disable(void);
79 80
diff --git a/arch/arm/include/debug/tegra.S b/arch/arm/include/debug/tegra.S
index f98763f0bc17..3bc80599c022 100644
--- a/arch/arm/include/debug/tegra.S
+++ b/arch/arm/include/debug/tegra.S
@@ -53,8 +53,7 @@
53 53
54#define checkuart(rp, rv, lhu, bit, uart) \ 54#define checkuart(rp, rv, lhu, bit, uart) \
55 /* Load address of CLK_RST register */ \ 55 /* Load address of CLK_RST register */ \
56 movw rp, #TEGRA_CLK_RST_DEVICES_##lhu & 0xffff ; \ 56 ldr rp, =TEGRA_CLK_RST_DEVICES_##lhu ; \
57 movt rp, #TEGRA_CLK_RST_DEVICES_##lhu >> 16 ; \
58 /* Load value from CLK_RST register */ \ 57 /* Load value from CLK_RST register */ \
59 ldr rp, [rp, #0] ; \ 58 ldr rp, [rp, #0] ; \
60 /* Test UART's reset bit */ \ 59 /* Test UART's reset bit */ \
@@ -62,8 +61,7 @@
62 /* If set, can't use UART; jump to save no UART */ \ 61 /* If set, can't use UART; jump to save no UART */ \
63 bne 90f ; \ 62 bne 90f ; \
64 /* Load address of CLK_OUT_ENB register */ \ 63 /* Load address of CLK_OUT_ENB register */ \
65 movw rp, #TEGRA_CLK_OUT_ENB_##lhu & 0xffff ; \ 64 ldr rp, =TEGRA_CLK_OUT_ENB_##lhu ; \
66 movt rp, #TEGRA_CLK_OUT_ENB_##lhu >> 16 ; \
67 /* Load value from CLK_OUT_ENB register */ \ 65 /* Load value from CLK_OUT_ENB register */ \
68 ldr rp, [rp, #0] ; \ 66 ldr rp, [rp, #0] ; \
69 /* Test UART's clock enable bit */ \ 67 /* Test UART's clock enable bit */ \
@@ -71,8 +69,7 @@
71 /* If clear, can't use UART; jump to save no UART */ \ 69 /* If clear, can't use UART; jump to save no UART */ \
72 beq 90f ; \ 70 beq 90f ; \
73 /* Passed all tests, load address of UART registers */ \ 71 /* Passed all tests, load address of UART registers */ \
74 movw rp, #TEGRA_UART##uart##_BASE & 0xffff ; \ 72 ldr rp, =TEGRA_UART##uart##_BASE ; \
75 movt rp, #TEGRA_UART##uart##_BASE >> 16 ; \
76 /* Jump to save UART address */ \ 73 /* Jump to save UART address */ \
77 b 91f 74 b 91f
78 75
@@ -90,15 +87,16 @@
90 87
91#ifdef CONFIG_TEGRA_DEBUG_UART_AUTO_ODMDATA 88#ifdef CONFIG_TEGRA_DEBUG_UART_AUTO_ODMDATA
92 /* Check ODMDATA */ 89 /* Check ODMDATA */
9310: movw \rp, #TEGRA_PMC_SCRATCH20 & 0xffff 9010: ldr \rp, =TEGRA_PMC_SCRATCH20
94 movt \rp, #TEGRA_PMC_SCRATCH20 >> 16
95 ldr \rp, [\rp, #0] @ Load PMC_SCRATCH20 91 ldr \rp, [\rp, #0] @ Load PMC_SCRATCH20
96 ubfx \rv, \rp, #18, #2 @ 19:18 are console type 92 lsr \rv, \rp, #18 @ 19:18 are console type
93 and \rv, \rv, #3
97 cmp \rv, #2 @ 2 and 3 mean DCC, UART 94 cmp \rv, #2 @ 2 and 3 mean DCC, UART
98 beq 11f @ some boards swap the meaning 95 beq 11f @ some boards swap the meaning
99 cmp \rv, #3 @ so accept either 96 cmp \rv, #3 @ so accept either
100 bne 90f 97 bne 90f
10111: ubfx \rv, \rp, #15, #3 @ 17:15 are UART ID 9811: lsr \rv, \rp, #15 @ 17:15 are UART ID
99 and \rv, #7
102 cmp \rv, #0 @ UART 0? 100 cmp \rv, #0 @ UART 0?
103 beq 20f 101 beq 20f
104 cmp \rv, #1 @ UART 1? 102 cmp \rv, #1 @ UART 1?
diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig
index 4f0e800e7e71..9968f208b7df 100644
--- a/arch/arm/mach-at91/Kconfig
+++ b/arch/arm/mach-at91/Kconfig
@@ -57,6 +57,7 @@ config SOC_SAMA5
57 select GENERIC_CLOCKEVENTS 57 select GENERIC_CLOCKEVENTS
58 select MULTI_IRQ_HANDLER 58 select MULTI_IRQ_HANDLER
59 select SPARSE_IRQ 59 select SPARSE_IRQ
60 select USE_OF
60 61
61menu "Atmel AT91 System-on-Chip" 62menu "Atmel AT91 System-on-Chip"
62 63
@@ -64,11 +65,22 @@ choice
64 65
65 prompt "Core type" 66 prompt "Core type"
66 67
68config ARCH_AT91X40
69 bool "ARM7 AT91X40"
70 depends on !MMU
71 select CPU_ARM7TDMI
72 select ARCH_USES_GETTIMEOFFSET
73 select MULTI_IRQ_HANDLER
74 select SPARSE_IRQ
75
76 help
77 Select this if you are using one of Atmel's AT91X40 SoC.
78
67config SOC_SAM_V4_V5 79config SOC_SAM_V4_V5
68 bool "ARM7/ARM9" 80 bool "ARM9 AT91SAM9/AT91RM9200"
69 help 81 help
70 Select this if you are using one of Atmel's AT91SAM9, AT91RM9200 82 Select this if you are using one of Atmel's AT91SAM9 or
71 or AT91X40 SoC. 83 AT91RM9200 SoC.
72 84
73config SOC_SAM_V7 85config SOC_SAM_V7
74 bool "Cortex A5" 86 bool "Cortex A5"
@@ -179,9 +191,12 @@ config SOC_AT91SAM9N12
179 Select this if you are using Atmel's AT91SAM9N12 SoC. 191 Select this if you are using Atmel's AT91SAM9N12 SoC.
180 192
181# ---------------------------------------------------------- 193# ----------------------------------------------------------
194endif # SOC_SAM_V4_V5
195
182 196
197if SOC_SAM_V4_V5 || ARCH_AT91X40
183source arch/arm/mach-at91/Kconfig.non_dt 198source arch/arm/mach-at91/Kconfig.non_dt
184endif # SOC_SAM_V4_V5 199endif
185 200
186comment "Generic Board Type" 201comment "Generic Board Type"
187 202
diff --git a/arch/arm/mach-at91/Kconfig.non_dt b/arch/arm/mach-at91/Kconfig.non_dt
index 1f73e9b527da..44ace320d2e1 100644
--- a/arch/arm/mach-at91/Kconfig.non_dt
+++ b/arch/arm/mach-at91/Kconfig.non_dt
@@ -5,6 +5,7 @@ config HAVE_AT91_DATAFLASH_CARD
5 5
6choice 6choice
7 prompt "Atmel AT91 Processor Devices for non DT boards" 7 prompt "Atmel AT91 Processor Devices for non DT boards"
8 depends on !ARCH_AT91X40
8 9
9config ARCH_AT91_NONE 10config ARCH_AT91_NONE
10 bool "None" 11 bool "None"
@@ -39,13 +40,6 @@ config ARCH_AT91SAM9G45
39 select SOC_AT91SAM9G45 40 select SOC_AT91SAM9G45
40 select AT91_USE_OLD_CLK 41 select AT91_USE_OLD_CLK
41 42
42config ARCH_AT91X40
43 bool "AT91x40"
44 depends on !MMU
45 select ARCH_USES_GETTIMEOFFSET
46 select MULTI_IRQ_HANDLER
47 select SPARSE_IRQ
48
49endchoice 43endchoice
50 44
51config ARCH_AT91SAM9G20 45config ARCH_AT91SAM9G20
diff --git a/arch/arm/mach-at91/at91sam9260_devices.c b/arch/arm/mach-at91/at91sam9260_devices.c
index eda8d1679d40..8a4c6656b608 100644
--- a/arch/arm/mach-at91/at91sam9260_devices.c
+++ b/arch/arm/mach-at91/at91sam9260_devices.c
@@ -1255,12 +1255,8 @@ void __init at91_add_device_cf(struct at91_cf_data *data)
1255 at91_set_A_periph(AT91_PIN_PC10, 0); /* CFRNW */ 1255 at91_set_A_periph(AT91_PIN_PC10, 0); /* CFRNW */
1256 at91_set_A_periph(AT91_PIN_PC15, 1); /* NWAIT */ 1256 at91_set_A_periph(AT91_PIN_PC15, 1); /* NWAIT */
1257 1257
1258 if (data->flags & AT91_CF_TRUE_IDE) 1258 if (IS_ENABLED(CONFIG_PATA_AT91) && (data->flags & AT91_CF_TRUE_IDE)
1259#if defined(CONFIG_PATA_AT91) || defined(CONFIG_PATA_AT91_MODULE)
1260 pdev->name = "pata_at91"; 1259 pdev->name = "pata_at91";
1261#else
1262#warning "board requires AT91_CF_TRUE_IDE: enable pata_at91"
1263#endif
1264 else 1260 else
1265 pdev->name = "at91_cf"; 1261 pdev->name = "at91_cf";
1266 1262
diff --git a/arch/arm/mach-at91/sam9_smc.c b/arch/arm/mach-at91/sam9_smc.c
index b26156bf15db..826315af6d11 100644
--- a/arch/arm/mach-at91/sam9_smc.c
+++ b/arch/arm/mach-at91/sam9_smc.c
@@ -36,6 +36,7 @@ void sam9_smc_write_mode(int id, int cs,
36{ 36{
37 sam9_smc_cs_write_mode(AT91_SMC_CS(id, cs), config); 37 sam9_smc_cs_write_mode(AT91_SMC_CS(id, cs), config);
38} 38}
39EXPORT_SYMBOL_GPL(sam9_smc_write_mode);
39 40
40static void sam9_smc_cs_configure(void __iomem *base, 41static void sam9_smc_cs_configure(void __iomem *base,
41 struct sam9_smc_config *config) 42 struct sam9_smc_config *config)
@@ -69,6 +70,7 @@ void sam9_smc_configure(int id, int cs,
69{ 70{
70 sam9_smc_cs_configure(AT91_SMC_CS(id, cs), config); 71 sam9_smc_cs_configure(AT91_SMC_CS(id, cs), config);
71} 72}
73EXPORT_SYMBOL_GPL(sam9_smc_configure);
72 74
73static void sam9_smc_cs_read_mode(void __iomem *base, 75static void sam9_smc_cs_read_mode(void __iomem *base,
74 struct sam9_smc_config *config) 76 struct sam9_smc_config *config)
@@ -84,6 +86,7 @@ void sam9_smc_read_mode(int id, int cs,
84{ 86{
85 sam9_smc_cs_read_mode(AT91_SMC_CS(id, cs), config); 87 sam9_smc_cs_read_mode(AT91_SMC_CS(id, cs), config);
86} 88}
89EXPORT_SYMBOL_GPL(sam9_smc_read_mode);
87 90
88static void sam9_smc_cs_read(void __iomem *base, 91static void sam9_smc_cs_read(void __iomem *base,
89 struct sam9_smc_config *config) 92 struct sam9_smc_config *config)
diff --git a/arch/arm/mach-at91/setup.c b/arch/arm/mach-at91/setup.c
index f7ca97b7291e..f7a07a58ebb6 100644
--- a/arch/arm/mach-at91/setup.c
+++ b/arch/arm/mach-at91/setup.c
@@ -351,7 +351,7 @@ void __init at91_ioremap_matrix(u32 base_addr)
351 panic("Impossible to ioremap at91_matrix_base\n"); 351 panic("Impossible to ioremap at91_matrix_base\n");
352} 352}
353 353
354#if defined(CONFIG_OF) 354#if defined(CONFIG_OF) && !defined(CONFIG_ARCH_AT91X40)
355static struct of_device_id rstc_ids[] = { 355static struct of_device_id rstc_ids[] = {
356 { .compatible = "atmel,at91sam9260-rstc", .data = at91sam9_alt_restart }, 356 { .compatible = "atmel,at91sam9260-rstc", .data = at91sam9_alt_restart },
357 { .compatible = "atmel,at91sam9g45-rstc", .data = at91sam9g45_restart }, 357 { .compatible = "atmel,at91sam9g45-rstc", .data = at91sam9g45_restart },
diff --git a/arch/arm/mach-davinci/Kconfig b/arch/arm/mach-davinci/Kconfig
index a075b3e0c5c7..626d2b82d0f3 100644
--- a/arch/arm/mach-davinci/Kconfig
+++ b/arch/arm/mach-davinci/Kconfig
@@ -214,11 +214,6 @@ config DA850_WL12XX
214 Say Y if you want to use a wl1271 expansion card connected to the 214 Say Y if you want to use a wl1271 expansion card connected to the
215 AM18x EVM. 215 AM18x EVM.
216 216
217config GPIO_PCA953X
218 default MACH_DAVINCI_DA850_EVM
219
220config KEYBOARD_GPIO_POLLED
221 default MACH_DAVINCI_DA850_EVM
222 217
223config MACH_TNETV107X 218config MACH_TNETV107X
224 bool "TI TNETV107X Reference Platform" 219 bool "TI TNETV107X Reference Platform"
diff --git a/arch/arm/mach-davinci/board-dm644x-evm.c b/arch/arm/mach-davinci/board-dm644x-evm.c
index 987605b78556..3de4dc9a1698 100644
--- a/arch/arm/mach-davinci/board-dm644x-evm.c
+++ b/arch/arm/mach-davinci/board-dm644x-evm.c
@@ -799,11 +799,12 @@ static __init void davinci_evm_init(void)
799 /* irlml6401 switches over 1A, in under 8 msec */ 799 /* irlml6401 switches over 1A, in under 8 msec */
800 davinci_setup_usb(1000, 8); 800 davinci_setup_usb(1000, 8);
801 801
802 soc_info->emac_pdata->phy_id = DM644X_EVM_PHY_ID; 802 if (IS_BUILTIN(CONFIG_PHYLIB)) {
803 /* Register the fixup for PHY on DaVinci */ 803 soc_info->emac_pdata->phy_id = DM644X_EVM_PHY_ID;
804 phy_register_fixup_for_uid(LXT971_PHY_ID, LXT971_PHY_MASK, 804 /* Register the fixup for PHY on DaVinci */
805 davinci_phy_fixup); 805 phy_register_fixup_for_uid(LXT971_PHY_ID, LXT971_PHY_MASK,
806 806 davinci_phy_fixup);
807 }
807} 808}
808 809
809MACHINE_START(DAVINCI_EVM, "DaVinci DM644x EVM") 810MACHINE_START(DAVINCI_EVM, "DaVinci DM644x EVM")
diff --git a/arch/arm/mach-ep93xx/core.c b/arch/arm/mach-ep93xx/core.c
index 157ba88433c9..fd021ba539fe 100644
--- a/arch/arm/mach-ep93xx/core.c
+++ b/arch/arm/mach-ep93xx/core.c
@@ -242,6 +242,7 @@ unsigned int ep93xx_chip_revision(void)
242 v >>= EP93XX_SYSCON_SYSCFG_REV_SHIFT; 242 v >>= EP93XX_SYSCON_SYSCFG_REV_SHIFT;
243 return v; 243 return v;
244} 244}
245EXPORT_SYMBOL_GPL(ep93xx_chip_revision);
245 246
246/************************************************************************* 247/*************************************************************************
247 * EP93xx GPIO 248 * EP93xx GPIO
diff --git a/arch/arm/mach-exynos/common.c b/arch/arm/mach-exynos/common.c
index f18be40e5b21..8d0042c9d4d3 100644
--- a/arch/arm/mach-exynos/common.c
+++ b/arch/arm/mach-exynos/common.c
@@ -404,8 +404,10 @@ static int __init exynos4_l2x0_cache_init(void)
404 if (ret) 404 if (ret)
405 return ret; 405 return ret;
406 406
407 l2x0_regs_phys = virt_to_phys(&l2x0_saved_regs); 407 if (IS_ENABLED(CONFIG_S5P_SLEEP)) {
408 clean_dcache_area(&l2x0_regs_phys, sizeof(unsigned long)); 408 l2x0_regs_phys = virt_to_phys(&l2x0_saved_regs);
409 clean_dcache_area(&l2x0_regs_phys, sizeof(unsigned long));
410 }
409 return 0; 411 return 0;
410} 412}
411early_initcall(exynos4_l2x0_cache_init); 413early_initcall(exynos4_l2x0_cache_init);
diff --git a/arch/arm/mach-exynos/cpuidle.c b/arch/arm/mach-exynos/cpuidle.c
index f57cb91f02aa..93d2decc112d 100644
--- a/arch/arm/mach-exynos/cpuidle.c
+++ b/arch/arm/mach-exynos/cpuidle.c
@@ -14,6 +14,7 @@
14#include <linux/cpu_pm.h> 14#include <linux/cpu_pm.h>
15#include <linux/io.h> 15#include <linux/io.h>
16#include <linux/export.h> 16#include <linux/export.h>
17#include <linux/module.h>
17#include <linux/time.h> 18#include <linux/time.h>
18#include <linux/platform_device.h> 19#include <linux/platform_device.h>
19 20
diff --git a/arch/arm/mach-footbridge/Kconfig b/arch/arm/mach-footbridge/Kconfig
index fba55fb9f47d..07152d00fc50 100644
--- a/arch/arm/mach-footbridge/Kconfig
+++ b/arch/arm/mach-footbridge/Kconfig
@@ -52,6 +52,7 @@ config ARCH_EBSA285_HOST
52 select FOOTBRIDGE_HOST 52 select FOOTBRIDGE_HOST
53 select ISA 53 select ISA
54 select ISA_DMA 54 select ISA_DMA
55 select ARCH_MAY_HAVE_PC_FDC
55 select PCI 56 select PCI
56 help 57 help
57 Say Y here if you intend to run this kernel on the EBSA285 card 58 Say Y here if you intend to run this kernel on the EBSA285 card
@@ -94,6 +95,5 @@ config FOOTBRIDGE_ADDIN
94# EBSA285 board in either host or addin mode 95# EBSA285 board in either host or addin mode
95config ARCH_EBSA285 96config ARCH_EBSA285
96 bool 97 bool
97 select ARCH_MAY_HAVE_PC_FDC
98 98
99endif 99endif
diff --git a/arch/arm/mach-footbridge/Makefile b/arch/arm/mach-footbridge/Makefile
index 0b64dd430d61..c3faa3bc84dd 100644
--- a/arch/arm/mach-footbridge/Makefile
+++ b/arch/arm/mach-footbridge/Makefile
@@ -4,11 +4,12 @@
4 4
5# Object file lists. 5# Object file lists.
6 6
7obj-y := common.o dc21285.o dma.o isa-irq.o 7obj-y := common.o dma.o isa-irq.o
8obj-m := 8obj-m :=
9obj-n := 9obj-n :=
10obj- := 10obj- :=
11 11
12pci-y += dc21285.o
12pci-$(CONFIG_ARCH_CATS) += cats-pci.o 13pci-$(CONFIG_ARCH_CATS) += cats-pci.o
13pci-$(CONFIG_ARCH_EBSA285_HOST) += ebsa285-pci.o 14pci-$(CONFIG_ARCH_EBSA285_HOST) += ebsa285-pci.o
14pci-$(CONFIG_ARCH_NETWINDER) += netwinder-pci.o 15pci-$(CONFIG_ARCH_NETWINDER) += netwinder-pci.o
diff --git a/arch/arm/mach-footbridge/cats-hw.c b/arch/arm/mach-footbridge/cats-hw.c
index 9669cc0b6318..da0415094856 100644
--- a/arch/arm/mach-footbridge/cats-hw.c
+++ b/arch/arm/mach-footbridge/cats-hw.c
@@ -78,9 +78,11 @@ __initcall(cats_hw_init);
78static void __init 78static void __init
79fixup_cats(struct tag *tags, char **cmdline, struct meminfo *mi) 79fixup_cats(struct tag *tags, char **cmdline, struct meminfo *mi)
80{ 80{
81#if defined(CONFIG_VGA_CONSOLE) || defined(CONFIG_DUMMY_CONSOLE)
81 screen_info.orig_video_lines = 25; 82 screen_info.orig_video_lines = 25;
82 screen_info.orig_video_points = 16; 83 screen_info.orig_video_points = 16;
83 screen_info.orig_y = 24; 84 screen_info.orig_y = 24;
85#endif
84} 86}
85 87
86MACHINE_START(CATS, "Chalice-CATS") 88MACHINE_START(CATS, "Chalice-CATS")
diff --git a/arch/arm/mach-hisi/Makefile b/arch/arm/mach-hisi/Makefile
index 6870058d0a48..2ae1b59267c2 100644
--- a/arch/arm/mach-hisi/Makefile
+++ b/arch/arm/mach-hisi/Makefile
@@ -3,5 +3,4 @@
3# 3#
4 4
5obj-y += hisilicon.o 5obj-y += hisilicon.o
6obj-$(CONFIG_SMP) += platsmp.o 6obj-$(CONFIG_SMP) += platsmp.o hotplug.o
7obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o
diff --git a/arch/arm/mach-hisi/hotplug.c b/arch/arm/mach-hisi/hotplug.c
index b909854eee7f..abd441b0c604 100644
--- a/arch/arm/mach-hisi/hotplug.c
+++ b/arch/arm/mach-hisi/hotplug.c
@@ -178,6 +178,7 @@ static inline void cpu_enter_lowpower(void)
178 : "cc"); 178 : "cc");
179} 179}
180 180
181#ifdef CONFIG_HOTPLUG_CPU
181void hi3xxx_cpu_die(unsigned int cpu) 182void hi3xxx_cpu_die(unsigned int cpu)
182{ 183{
183 cpu_enter_lowpower(); 184 cpu_enter_lowpower();
@@ -198,3 +199,4 @@ int hi3xxx_cpu_kill(unsigned int cpu)
198 hi3xxx_set_cpu(cpu, false); 199 hi3xxx_set_cpu(cpu, false);
199 return 1; 200 return 1;
200} 201}
202#endif
diff --git a/arch/arm/mach-integrator/Kconfig b/arch/arm/mach-integrator/Kconfig
index abeff25532ab..271a255864d2 100644
--- a/arch/arm/mach-integrator/Kconfig
+++ b/arch/arm/mach-integrator/Kconfig
@@ -6,8 +6,8 @@ config ARCH_INTEGRATOR_AP
6 bool "Support Integrator/AP and Integrator/PP2 platforms" 6 bool "Support Integrator/AP and Integrator/PP2 platforms"
7 select CLKSRC_MMIO 7 select CLKSRC_MMIO
8 select MIGHT_HAVE_PCI 8 select MIGHT_HAVE_PCI
9 select SERIAL_AMBA_PL010 9 select SERIAL_AMBA_PL010 if TTY
10 select SERIAL_AMBA_PL010_CONSOLE 10 select SERIAL_AMBA_PL010_CONSOLE if TTY
11 select SOC_BUS 11 select SOC_BUS
12 help 12 help
13 Include support for the ARM(R) Integrator/AP and 13 Include support for the ARM(R) Integrator/AP and
@@ -18,8 +18,8 @@ config ARCH_INTEGRATOR_CP
18 select ARCH_CINTEGRATOR 18 select ARCH_CINTEGRATOR
19 select ARM_TIMER_SP804 19 select ARM_TIMER_SP804
20 select PLAT_VERSATILE_CLCD 20 select PLAT_VERSATILE_CLCD
21 select SERIAL_AMBA_PL011 21 select SERIAL_AMBA_PL011 if TTY
22 select SERIAL_AMBA_PL011_CONSOLE 22 select SERIAL_AMBA_PL011_CONSOLE if TTY
23 select SOC_BUS 23 select SOC_BUS
24 help 24 help
25 Include support for the ARM(R) Integrator CP platform. 25 Include support for the ARM(R) Integrator CP platform.
diff --git a/arch/arm/mach-ixp4xx/common.c b/arch/arm/mach-ixp4xx/common.c
index df82a2b4a546..eef39c7ad0cf 100644
--- a/arch/arm/mach-ixp4xx/common.c
+++ b/arch/arm/mach-ixp4xx/common.c
@@ -100,7 +100,7 @@ void __init ixp4xx_map_io(void)
100#define IXP4XX_GPIO_CLK_0 14 100#define IXP4XX_GPIO_CLK_0 14
101#define IXP4XX_GPIO_CLK_1 15 101#define IXP4XX_GPIO_CLK_1 15
102 102
103static void gpio_line_config(u8 line, u32 direction) 103void gpio_line_config(u8 line, u32 direction)
104{ 104{
105 if (direction == IXP4XX_GPIO_IN) 105 if (direction == IXP4XX_GPIO_IN)
106 *IXP4XX_GPIO_GPOER |= (1 << line); 106 *IXP4XX_GPIO_GPOER |= (1 << line);
@@ -108,12 +108,12 @@ static void gpio_line_config(u8 line, u32 direction)
108 *IXP4XX_GPIO_GPOER &= ~(1 << line); 108 *IXP4XX_GPIO_GPOER &= ~(1 << line);
109} 109}
110 110
111static void gpio_line_get(u8 line, int *value) 111void gpio_line_get(u8 line, int *value)
112{ 112{
113 *value = (*IXP4XX_GPIO_GPINR >> line) & 0x1; 113 *value = (*IXP4XX_GPIO_GPINR >> line) & 0x1;
114} 114}
115 115
116static void gpio_line_set(u8 line, int value) 116void gpio_line_set(u8 line, int value)
117{ 117{
118 if (value == IXP4XX_GPIO_HIGH) 118 if (value == IXP4XX_GPIO_HIGH)
119 *IXP4XX_GPIO_GPOUTR |= (1 << line); 119 *IXP4XX_GPIO_GPOUTR |= (1 << line);
diff --git a/arch/arm/mach-ixp4xx/goramo_mlr.c b/arch/arm/mach-ixp4xx/goramo_mlr.c
index e54ff491c105..5a635c657ea2 100644
--- a/arch/arm/mach-ixp4xx/goramo_mlr.c
+++ b/arch/arm/mach-ixp4xx/goramo_mlr.c
@@ -17,6 +17,13 @@
17#include <asm/mach/pci.h> 17#include <asm/mach/pci.h>
18#include <asm/system_info.h> 18#include <asm/system_info.h>
19 19
20#define IXP4XX_GPIO_OUT 0x1
21#define IXP4XX_GPIO_IN 0x2
22
23void gpio_line_config(u8 line, u32 direction);
24void gpio_line_get(u8 line, int *value);
25void gpio_line_set(u8 line, int value);
26
20#define SLOT_ETHA 0x0B /* IDSEL = AD21 */ 27#define SLOT_ETHA 0x0B /* IDSEL = AD21 */
21#define SLOT_ETHB 0x0C /* IDSEL = AD20 */ 28#define SLOT_ETHB 0x0C /* IDSEL = AD20 */
22#define SLOT_MPCI 0x0D /* IDSEL = AD19 */ 29#define SLOT_MPCI 0x0D /* IDSEL = AD19 */
diff --git a/arch/arm/mach-ixp4xx/include/mach/io.h b/arch/arm/mach-ixp4xx/include/mach/io.h
index 5cf30d1b78d2..559c69a47731 100644
--- a/arch/arm/mach-ixp4xx/include/mach/io.h
+++ b/arch/arm/mach-ixp4xx/include/mach/io.h
@@ -48,9 +48,10 @@ extern int ixp4xx_pci_write(u32 addr, u32 cmd, u32 data);
48 * fallback to the default. 48 * fallback to the default.
49 */ 49 */
50 50
51extern unsigned long pcibios_min_mem;
51static inline int is_pci_memory(u32 addr) 52static inline int is_pci_memory(u32 addr)
52{ 53{
53 return (addr >= PCIBIOS_MIN_MEM) && (addr <= 0x4FFFFFFF); 54 return (addr >= pcibios_min_mem) && (addr <= 0x4FFFFFFF);
54} 55}
55 56
56#define writeb(v, p) __indirect_writeb(v, p) 57#define writeb(v, p) __indirect_writeb(v, p)
diff --git a/arch/arm/mach-ixp4xx/omixp-setup.c b/arch/arm/mach-ixp4xx/omixp-setup.c
index 75ef03dc9964..2d494b454376 100644
--- a/arch/arm/mach-ixp4xx/omixp-setup.c
+++ b/arch/arm/mach-ixp4xx/omixp-setup.c
@@ -17,9 +17,7 @@
17#include <linux/serial_8250.h> 17#include <linux/serial_8250.h>
18#include <linux/mtd/mtd.h> 18#include <linux/mtd/mtd.h>
19#include <linux/mtd/partitions.h> 19#include <linux/mtd/partitions.h>
20#ifdef CONFIG_LEDS_CLASS
21#include <linux/leds.h> 20#include <linux/leds.h>
22#endif
23 21
24#include <asm/setup.h> 22#include <asm/setup.h>
25#include <asm/memory.h> 23#include <asm/memory.h>
diff --git a/arch/arm/mach-ks8695/board-og.c b/arch/arm/mach-ks8695/board-og.c
index 002bc619bb68..f2658168eeff 100644
--- a/arch/arm/mach-ks8695/board-og.c
+++ b/arch/arm/mach-ks8695/board-og.c
@@ -44,7 +44,8 @@ static void __init og_register_pci(void)
44 if (machine_is_im4004()) 44 if (machine_is_im4004())
45 ks8695_gpio_interrupt(KS8695_GPIO_1, IRQ_TYPE_LEVEL_LOW); 45 ks8695_gpio_interrupt(KS8695_GPIO_1, IRQ_TYPE_LEVEL_LOW);
46 46
47 ks8695_init_pci(&og_pci); 47 if (IS_ENABLED(CONFIG_PCI))
48 ks8695_init_pci(&og_pci);
48} 49}
49 50
50/* 51/*
diff --git a/arch/arm/mach-lpc32xx/common.c b/arch/arm/mach-lpc32xx/common.c
index d7aa54c25c59..de03620d7fa7 100644
--- a/arch/arm/mach-lpc32xx/common.c
+++ b/arch/arm/mach-lpc32xx/common.c
@@ -99,6 +99,7 @@ u32 lpc32xx_return_iram_size(void)
99 99
100 return iram_size; 100 return iram_size;
101} 101}
102EXPORT_SYMBOL_GPL(lpc32xx_return_iram_size);
102 103
103/* 104/*
104 * Computes PLL rate from PLL register and input clock 105 * Computes PLL rate from PLL register and input clock
diff --git a/arch/arm/mach-msm/dma.c b/arch/arm/mach-msm/dma.c
index f8f6adfa07c6..fb9762464718 100644
--- a/arch/arm/mach-msm/dma.c
+++ b/arch/arm/mach-msm/dma.c
@@ -18,6 +18,7 @@
18#include <linux/io.h> 18#include <linux/io.h>
19#include <linux/interrupt.h> 19#include <linux/interrupt.h>
20#include <linux/completion.h> 20#include <linux/completion.h>
21#include <linux/module.h>
21#include <mach/dma.h> 22#include <mach/dma.h>
22#include <mach/msm_iomap.h> 23#include <mach/msm_iomap.h>
23 24
@@ -77,6 +78,7 @@ void msm_dmov_stop_cmd(unsigned id, struct msm_dmov_cmd *cmd, int graceful)
77{ 78{
78 writel((graceful << 31), DMOV_FLUSH0(id)); 79 writel((graceful << 31), DMOV_FLUSH0(id));
79} 80}
81EXPORT_SYMBOL_GPL(msm_dmov_stop_cmd);
80 82
81void msm_dmov_enqueue_cmd(unsigned id, struct msm_dmov_cmd *cmd) 83void msm_dmov_enqueue_cmd(unsigned id, struct msm_dmov_cmd *cmd)
82{ 84{
@@ -115,6 +117,7 @@ void msm_dmov_enqueue_cmd(unsigned id, struct msm_dmov_cmd *cmd)
115 } 117 }
116 spin_unlock_irqrestore(&msm_dmov_lock, irq_flags); 118 spin_unlock_irqrestore(&msm_dmov_lock, irq_flags);
117} 119}
120EXPORT_SYMBOL_GPL(msm_dmov_enqueue_cmd);
118 121
119struct msm_dmov_exec_cmdptr_cmd { 122struct msm_dmov_exec_cmdptr_cmd {
120 struct msm_dmov_cmd dmov_cmd; 123 struct msm_dmov_cmd dmov_cmd;
diff --git a/arch/arm/mach-msm/io.c b/arch/arm/mach-msm/io.c
index adc8971c7266..34e09474636d 100644
--- a/arch/arm/mach-msm/io.c
+++ b/arch/arm/mach-msm/io.c
@@ -78,8 +78,10 @@ void __init msm_map_common_io(void)
78 asm("mcr p15, 0, %0, c15, c2, 4" : : "r" (0)); 78 asm("mcr p15, 0, %0, c15, c2, 4" : : "r" (0));
79#if defined(CONFIG_DEBUG_MSM_UART1) || defined(CONFIG_DEBUG_MSM_UART2) || \ 79#if defined(CONFIG_DEBUG_MSM_UART1) || defined(CONFIG_DEBUG_MSM_UART2) || \
80 defined(CONFIG_DEBUG_MSM_UART3) 80 defined(CONFIG_DEBUG_MSM_UART3)
81#ifdef CONFIG_MMU
81 debug_ll_addr(&msm_io_desc[size - 1].pfn, 82 debug_ll_addr(&msm_io_desc[size - 1].pfn,
82 &msm_io_desc[size - 1].virtual); 83 &msm_io_desc[size - 1].virtual);
84#endif
83 msm_io_desc[size - 1].pfn = __phys_to_pfn(msm_io_desc[size - 1].pfn); 85 msm_io_desc[size - 1].pfn = __phys_to_pfn(msm_io_desc[size - 1].pfn);
84#endif 86#endif
85 iotable_init(msm_io_desc, size); 87 iotable_init(msm_io_desc, size);
diff --git a/arch/arm/mach-mvebu/armada-370-xp.c b/arch/arm/mach-mvebu/armada-370-xp.c
index f6c9d1d85c14..5b793ebb0a24 100644
--- a/arch/arm/mach-mvebu/armada-370-xp.c
+++ b/arch/arm/mach-mvebu/armada-370-xp.c
@@ -21,6 +21,7 @@
21#include <linux/clocksource.h> 21#include <linux/clocksource.h>
22#include <linux/dma-mapping.h> 22#include <linux/dma-mapping.h>
23#include <linux/mbus.h> 23#include <linux/mbus.h>
24#include <linux/signal.h>
24#include <linux/slab.h> 25#include <linux/slab.h>
25#include <asm/hardware/cache-l2x0.h> 26#include <asm/hardware/cache-l2x0.h>
26#include <asm/mach/arch.h> 27#include <asm/mach/arch.h>
diff --git a/arch/arm/mach-omap1/board-h2.c b/arch/arm/mach-omap1/board-h2.c
index fd90cafc2e36..65d2acb31498 100644
--- a/arch/arm/mach-omap1/board-h2.c
+++ b/arch/arm/mach-omap1/board-h2.c
@@ -318,6 +318,9 @@ static void __init h2_init_smc91x(void)
318 318
319static int tps_setup(struct i2c_client *client, void *context) 319static int tps_setup(struct i2c_client *client, void *context)
320{ 320{
321 if (!IS_BUILTIN(CONFIG_TPS65010))
322 return -ENOSYS;
323
321 tps65010_config_vregs1(TPS_LDO2_ENABLE | TPS_VLDO2_3_0V | 324 tps65010_config_vregs1(TPS_LDO2_ENABLE | TPS_VLDO2_3_0V |
322 TPS_LDO1_ENABLE | TPS_VLDO1_3_0V); 325 TPS_LDO1_ENABLE | TPS_VLDO1_3_0V);
323 326
diff --git a/arch/arm/mach-omap1/board-osk.c b/arch/arm/mach-omap1/board-osk.c
index d68909b095f1..3a0262156e93 100644
--- a/arch/arm/mach-omap1/board-osk.c
+++ b/arch/arm/mach-omap1/board-osk.c
@@ -191,6 +191,9 @@ static struct platform_device osk5912_tps_leds = {
191 191
192static int osk_tps_setup(struct i2c_client *client, void *context) 192static int osk_tps_setup(struct i2c_client *client, void *context)
193{ 193{
194 if (!IS_BUILTIN(CONFIG_TPS65010))
195 return -ENOSYS;
196
194 /* Set GPIO 1 HIGH to disable VBUS power supply; 197 /* Set GPIO 1 HIGH to disable VBUS power supply;
195 * OHCI driver powers it up/down as needed. 198 * OHCI driver powers it up/down as needed.
196 */ 199 */
diff --git a/arch/arm/mach-omap1/pm.c b/arch/arm/mach-omap1/pm.c
index 40a1ae319610..dbee729e3b6d 100644
--- a/arch/arm/mach-omap1/pm.c
+++ b/arch/arm/mach-omap1/pm.c
@@ -71,7 +71,11 @@ static unsigned int mpui7xx_sleep_save[MPUI7XX_SLEEP_SAVE_SIZE];
71static unsigned int mpui1510_sleep_save[MPUI1510_SLEEP_SAVE_SIZE]; 71static unsigned int mpui1510_sleep_save[MPUI1510_SLEEP_SAVE_SIZE];
72static unsigned int mpui1610_sleep_save[MPUI1610_SLEEP_SAVE_SIZE]; 72static unsigned int mpui1610_sleep_save[MPUI1610_SLEEP_SAVE_SIZE];
73 73
74#ifdef CONFIG_OMAP_32K_TIMER 74#ifndef CONFIG_OMAP_32K_TIMER
75
76static unsigned short enable_dyn_sleep = 0;
77
78#else
75 79
76static unsigned short enable_dyn_sleep = 1; 80static unsigned short enable_dyn_sleep = 1;
77 81
diff --git a/arch/arm/mach-orion5x/Kconfig b/arch/arm/mach-orion5x/Kconfig
index 2cb2f06c20f5..14f2cae4109c 100644
--- a/arch/arm/mach-orion5x/Kconfig
+++ b/arch/arm/mach-orion5x/Kconfig
@@ -33,7 +33,6 @@ config MACH_KUROBOX_PRO
33config MACH_DNS323 33config MACH_DNS323
34 bool "D-Link DNS-323" 34 bool "D-Link DNS-323"
35 select I2C_BOARDINFO 35 select I2C_BOARDINFO
36 select PHYLIB
37 help 36 help
38 Say 'Y' here if you want your kernel to support the 37 Say 'Y' here if you want your kernel to support the
39 D-Link DNS-323 platform. 38 D-Link DNS-323 platform.
diff --git a/arch/arm/mach-orion5x/dns323-setup.c b/arch/arm/mach-orion5x/dns323-setup.c
index 70974732cbf0..56edeab17b68 100644
--- a/arch/arm/mach-orion5x/dns323-setup.c
+++ b/arch/arm/mach-orion5x/dns323-setup.c
@@ -642,6 +642,8 @@ static void __init dns323_init(void)
642 platform_device_register_simple("dns323c-fan", 0, NULL, 0); 642 platform_device_register_simple("dns323c-fan", 0, NULL, 0);
643 643
644 /* Register fixup for the PHY LEDs */ 644 /* Register fixup for the PHY LEDs */
645 if (!IS_BUILTIN(CONFIG_PHYLIB))
646 break;
645 phy_register_fixup_for_uid(MARVELL_PHY_ID_88E1118, 647 phy_register_fixup_for_uid(MARVELL_PHY_ID_88E1118,
646 MARVELL_PHY_ID_MASK, 648 MARVELL_PHY_ID_MASK,
647 dns323c_phy_fixup); 649 dns323c_phy_fixup);
diff --git a/arch/arm/mach-pxa/Kconfig b/arch/arm/mach-pxa/Kconfig
index 96100dbf5a2e..a280cc42636b 100644
--- a/arch/arm/mach-pxa/Kconfig
+++ b/arch/arm/mach-pxa/Kconfig
@@ -53,12 +53,16 @@ config MACH_TAVOREVB
53 select CPU_PXA930 53 select CPU_PXA930
54 select CPU_PXA935 54 select CPU_PXA935
55 select PXA3xx 55 select PXA3xx
56 select FB
57 select FB_PXA
56 58
57config MACH_SAAR 59config MACH_SAAR
58 bool "PXA930 Handheld Platform (aka SAAR)" 60 bool "PXA930 Handheld Platform (aka SAAR)"
59 select CPU_PXA930 61 select CPU_PXA930
60 select CPU_PXA935 62 select CPU_PXA935
61 select PXA3xx 63 select PXA3xx
64 select FB
65 select FB_PXA
62 66
63comment "Third Party Dev Platforms (sorted by vendor name)" 67comment "Third Party Dev Platforms (sorted by vendor name)"
64 68
@@ -69,8 +73,7 @@ config ARCH_PXA_IDP
69config ARCH_VIPER 73config ARCH_VIPER
70 bool "Arcom/Eurotech VIPER SBC" 74 bool "Arcom/Eurotech VIPER SBC"
71 select ARCOM_PCMCIA 75 select ARCOM_PCMCIA
72 select HAVE_PWM 76 select I2C_GPIO if I2C=y
73 select I2C_GPIO
74 select ISA 77 select ISA
75 select PXA25x 78 select PXA25x
76 select PXA_HAVE_ISA_IRQS 79 select PXA_HAVE_ISA_IRQS
@@ -164,7 +167,6 @@ config MACH_XCEP
164 select MTD_CFI_INTELEXT 167 select MTD_CFI_INTELEXT
165 select MTD_PHYSMAP 168 select MTD_PHYSMAP
166 select PXA25x 169 select PXA25x
167 select SMC91X
168 help 170 help
169 PXA255 based Single Board Computer with SMC 91C111 ethernet chip and 64 MB of flash. 171 PXA255 based Single Board Computer with SMC 91C111 ethernet chip and 64 MB of flash.
170 Tuned for usage in Libera instruments for particle accelerators. 172 Tuned for usage in Libera instruments for particle accelerators.
@@ -181,6 +183,7 @@ config MACH_TRIZEPS4
181config MACH_TRIZEPS4WL 183config MACH_TRIZEPS4WL
182 bool "Keith und Koep Trizeps4-WL DIMM-Module" 184 bool "Keith und Koep Trizeps4-WL DIMM-Module"
183 depends on TRIZEPS_PXA 185 depends on TRIZEPS_PXA
186 select MACH_TRIZEPS4
184 select PXA27x 187 select PXA27x
185 select TRIZEPS_PCMCIA 188 select TRIZEPS_PCMCIA
186 189
diff --git a/arch/arm/mach-pxa/balloon3.c b/arch/arm/mach-pxa/balloon3.c
index 2f71b3fbd319..43596e0ed051 100644
--- a/arch/arm/mach-pxa/balloon3.c
+++ b/arch/arm/mach-pxa/balloon3.c
@@ -331,7 +331,6 @@ static struct pxa2xx_udc_mach_info balloon3_udc_info __initdata = {
331static void __init balloon3_udc_init(void) 331static void __init balloon3_udc_init(void)
332{ 332{
333 pxa_set_udc_info(&balloon3_udc_info); 333 pxa_set_udc_info(&balloon3_udc_info);
334 platform_device_register(&balloon3_gpio_vbus);
335} 334}
336#else 335#else
337static inline void balloon3_udc_init(void) {} 336static inline void balloon3_udc_init(void) {}
diff --git a/arch/arm/mach-pxa/colibri-evalboard.c b/arch/arm/mach-pxa/colibri-evalboard.c
index 8404b24240ea..638b0bb88426 100644
--- a/arch/arm/mach-pxa/colibri-evalboard.c
+++ b/arch/arm/mach-pxa/colibri-evalboard.c
@@ -20,6 +20,7 @@
20#include <asm/mach/arch.h> 20#include <asm/mach/arch.h>
21#include <linux/i2c.h> 21#include <linux/i2c.h>
22#include <linux/i2c/pxa-i2c.h> 22#include <linux/i2c/pxa-i2c.h>
23#include <asm/io.h>
23 24
24#include <mach/pxa27x.h> 25#include <mach/pxa27x.h>
25#include <mach/colibri.h> 26#include <mach/colibri.h>
diff --git a/arch/arm/mach-realview/include/mach/memory.h b/arch/arm/mach-realview/include/mach/memory.h
index 2022e092f0ca..db09170e3832 100644
--- a/arch/arm/mach-realview/include/mach/memory.h
+++ b/arch/arm/mach-realview/include/mach/memory.h
@@ -56,6 +56,8 @@
56#define PAGE_OFFSET1 (PAGE_OFFSET + 0x10000000) 56#define PAGE_OFFSET1 (PAGE_OFFSET + 0x10000000)
57#define PAGE_OFFSET2 (PAGE_OFFSET + 0x30000000) 57#define PAGE_OFFSET2 (PAGE_OFFSET + 0x30000000)
58 58
59#define PHYS_OFFSET PLAT_PHYS_OFFSET
60
59#define __phys_to_virt(phys) \ 61#define __phys_to_virt(phys) \
60 ((phys) >= 0x80000000 ? (phys) - 0x80000000 + PAGE_OFFSET2 : \ 62 ((phys) >= 0x80000000 ? (phys) - 0x80000000 + PAGE_OFFSET2 : \
61 (phys) >= 0x20000000 ? (phys) - 0x20000000 + PAGE_OFFSET1 : \ 63 (phys) >= 0x20000000 ? (phys) - 0x20000000 + PAGE_OFFSET1 : \
diff --git a/arch/arm/mach-s3c24xx/Kconfig b/arch/arm/mach-s3c24xx/Kconfig
index d876431d64c0..f2727f2cc661 100644
--- a/arch/arm/mach-s3c24xx/Kconfig
+++ b/arch/arm/mach-s3c24xx/Kconfig
@@ -537,7 +537,7 @@ config MACH_AT2440EVB
537 537
538config MACH_MINI2440 538config MACH_MINI2440
539 bool "MINI2440 development board" 539 bool "MINI2440 development board"
540 select EEPROM_AT24 540 select EEPROM_AT24 if I2C
541 select LEDS_CLASS 541 select LEDS_CLASS
542 select LEDS_TRIGGERS 542 select LEDS_TRIGGERS
543 select LEDS_TRIGGER_BACKLIGHT 543 select LEDS_TRIGGER_BACKLIGHT
@@ -573,7 +573,7 @@ config MACH_OSIRIS
573config MACH_OSIRIS_DVS 573config MACH_OSIRIS_DVS
574 tristate "Simtec IM2440D20 (OSIRIS) Dynamic Voltage Scaling driver" 574 tristate "Simtec IM2440D20 (OSIRIS) Dynamic Voltage Scaling driver"
575 depends on MACH_OSIRIS 575 depends on MACH_OSIRIS
576 select TPS65010 576 depends on TPS65010
577 help 577 help
578 Say Y/M here if you want to have dynamic voltage scaling support 578 Say Y/M here if you want to have dynamic voltage scaling support
579 on the Simtec IM2440D20 (OSIRIS) module via the TPS65011. 579 on the Simtec IM2440D20 (OSIRIS) module via the TPS65011.
diff --git a/arch/arm/mach-s3c24xx/mach-gta02.c b/arch/arm/mach-s3c24xx/mach-gta02.c
index d9170e9f8ccd..ee7bb2905a99 100644
--- a/arch/arm/mach-s3c24xx/mach-gta02.c
+++ b/arch/arm/mach-s3c24xx/mach-gta02.c
@@ -196,7 +196,7 @@ static void gta02_charger_worker(struct work_struct *work)
196 * If the PCF50633 ADC is disabled we fallback to a 196 * If the PCF50633 ADC is disabled we fallback to a
197 * 100mA limit for safety. 197 * 100mA limit for safety.
198 */ 198 */
199 pcf50633_mbc_usb_curlim_set(pcf, 100); 199 pcf50633_mbc_usb_curlim_set(gta02_pcf, 100);
200#endif 200#endif
201} 201}
202 202
diff --git a/arch/arm/mach-s3c64xx/Kconfig b/arch/arm/mach-s3c64xx/Kconfig
index 64f04e6f9c31..3136d86b0d6e 100644
--- a/arch/arm/mach-s3c64xx/Kconfig
+++ b/arch/arm/mach-s3c64xx/Kconfig
@@ -86,8 +86,7 @@ config MACH_SMDK6400
86 bool "SMDK6400" 86 bool "SMDK6400"
87 select CPU_S3C6400 87 select CPU_S3C6400
88 select S3C64XX_SETUP_SDHCI 88 select S3C64XX_SETUP_SDHCI
89 select S3C_DEV_HSMMC 89 select S3C_DEV_HSMMC1
90 select S3C_DEV_NAND
91 help 90 help
92 Machine support for the Samsung SMDK6400 91 Machine support for the Samsung SMDK6400
93 92
diff --git a/arch/arm/mach-s3c64xx/irq-pm.c b/arch/arm/mach-s3c64xx/irq-pm.c
index 1649c0d1c1b8..ddf65583a5d8 100644
--- a/arch/arm/mach-s3c64xx/irq-pm.c
+++ b/arch/arm/mach-s3c64xx/irq-pm.c
@@ -55,7 +55,13 @@ static struct irq_grp_save {
55 u32 mask; 55 u32 mask;
56} eint_grp_save[5]; 56} eint_grp_save[5];
57 57
58static u32 irq_uart_mask[CONFIG_SERIAL_SAMSUNG_UARTS]; 58#ifndef CONFIG_SERIAL_SAMSUNG_UARTS
59#define SERIAL_SAMSUNG_UARTS 0
60#else
61#define SERIAL_SAMSUNG_UARTS CONFIG_SERIAL_SAMSUNG_UARTS
62#endif
63
64static u32 irq_uart_mask[SERIAL_SAMSUNG_UARTS];
59 65
60static int s3c64xx_irq_pm_suspend(void) 66static int s3c64xx_irq_pm_suspend(void)
61{ 67{
@@ -66,7 +72,7 @@ static int s3c64xx_irq_pm_suspend(void)
66 72
67 s3c_pm_do_save(irq_save, ARRAY_SIZE(irq_save)); 73 s3c_pm_do_save(irq_save, ARRAY_SIZE(irq_save));
68 74
69 for (i = 0; i < CONFIG_SERIAL_SAMSUNG_UARTS; i++) 75 for (i = 0; i < SERIAL_SAMSUNG_UARTS; i++)
70 irq_uart_mask[i] = __raw_readl(S3C_VA_UARTx(i) + S3C64XX_UINTM); 76 irq_uart_mask[i] = __raw_readl(S3C_VA_UARTx(i) + S3C64XX_UINTM);
71 77
72 for (i = 0; i < ARRAY_SIZE(eint_grp_save); i++, grp++) { 78 for (i = 0; i < ARRAY_SIZE(eint_grp_save); i++, grp++) {
@@ -87,7 +93,7 @@ static void s3c64xx_irq_pm_resume(void)
87 93
88 s3c_pm_do_restore(irq_save, ARRAY_SIZE(irq_save)); 94 s3c_pm_do_restore(irq_save, ARRAY_SIZE(irq_save));
89 95
90 for (i = 0; i < CONFIG_SERIAL_SAMSUNG_UARTS; i++) 96 for (i = 0; i < SERIAL_SAMSUNG_UARTS; i++)
91 __raw_writel(irq_uart_mask[i], S3C_VA_UARTx(i) + S3C64XX_UINTM); 97 __raw_writel(irq_uart_mask[i], S3C_VA_UARTx(i) + S3C64XX_UINTM);
92 98
93 for (i = 0; i < ARRAY_SIZE(eint_grp_save); i++, grp++) { 99 for (i = 0; i < ARRAY_SIZE(eint_grp_save); i++, grp++) {
diff --git a/arch/arm/mach-s5p64x0/common.c b/arch/arm/mach-s5p64x0/common.c
index 42e14f2e7ca7..f07edc304efb 100644
--- a/arch/arm/mach-s5p64x0/common.c
+++ b/arch/arm/mach-s5p64x0/common.c
@@ -205,6 +205,7 @@ void __init s5p64x0_init_io(struct map_desc *mach_desc, int size)
205 samsung_pwm_set_platdata(&s5p64x0_pwm_variant); 205 samsung_pwm_set_platdata(&s5p64x0_pwm_variant);
206} 206}
207 207
208#ifdef CONFIG_CPU_S5P6440
208void __init s5p6440_map_io(void) 209void __init s5p6440_map_io(void)
209{ 210{
210 /* initialize any device information early */ 211 /* initialize any device information early */
@@ -218,7 +219,9 @@ void __init s5p6440_map_io(void)
218 219
219 iotable_init(s5p6440_iodesc, ARRAY_SIZE(s5p6440_iodesc)); 220 iotable_init(s5p6440_iodesc, ARRAY_SIZE(s5p6440_iodesc));
220} 221}
222#endif
221 223
224#ifdef CONFIG_CPU_S5P6450
222void __init s5p6450_map_io(void) 225void __init s5p6450_map_io(void)
223{ 226{
224 /* initialize any device information early */ 227 /* initialize any device information early */
@@ -232,13 +235,14 @@ void __init s5p6450_map_io(void)
232 235
233 iotable_init(s5p6450_iodesc, ARRAY_SIZE(s5p6450_iodesc)); 236 iotable_init(s5p6450_iodesc, ARRAY_SIZE(s5p6450_iodesc));
234} 237}
238#endif
235 239
236/* 240/*
237 * s5p64x0_init_clocks 241 * s5p64x0_init_clocks
238 * 242 *
239 * register and setup the CPU clocks 243 * register and setup the CPU clocks
240 */ 244 */
241 245#ifdef CONFIG_CPU_S5P6440
242void __init s5p6440_init_clocks(int xtal) 246void __init s5p6440_init_clocks(int xtal)
243{ 247{
244 printk(KERN_DEBUG "%s: initializing clocks\n", __func__); 248 printk(KERN_DEBUG "%s: initializing clocks\n", __func__);
@@ -248,7 +252,9 @@ void __init s5p6440_init_clocks(int xtal)
248 s5p6440_register_clocks(); 252 s5p6440_register_clocks();
249 s5p6440_setup_clocks(); 253 s5p6440_setup_clocks();
250} 254}
255#endif
251 256
257#ifdef CONFIG_CPU_S5P6450
252void __init s5p6450_init_clocks(int xtal) 258void __init s5p6450_init_clocks(int xtal)
253{ 259{
254 printk(KERN_DEBUG "%s: initializing clocks\n", __func__); 260 printk(KERN_DEBUG "%s: initializing clocks\n", __func__);
@@ -258,13 +264,14 @@ void __init s5p6450_init_clocks(int xtal)
258 s5p6450_register_clocks(); 264 s5p6450_register_clocks();
259 s5p6450_setup_clocks(); 265 s5p6450_setup_clocks();
260} 266}
267#endif
261 268
262/* 269/*
263 * s5p64x0_init_irq 270 * s5p64x0_init_irq
264 * 271 *
265 * register the CPU interrupts 272 * register the CPU interrupts
266 */ 273 */
267 274#ifdef CONFIG_CPU_S5P6440
268void __init s5p6440_init_irq(void) 275void __init s5p6440_init_irq(void)
269{ 276{
270 /* S5P6440 supports 2 VIC */ 277 /* S5P6440 supports 2 VIC */
@@ -279,7 +286,9 @@ void __init s5p6440_init_irq(void)
279 286
280 s5p_init_irq(vic, ARRAY_SIZE(vic)); 287 s5p_init_irq(vic, ARRAY_SIZE(vic));
281} 288}
289#endif
282 290
291#ifdef CONFIG_CPU_S5P6450
283void __init s5p6450_init_irq(void) 292void __init s5p6450_init_irq(void)
284{ 293{
285 /* S5P6450 supports only 2 VIC */ 294 /* S5P6450 supports only 2 VIC */
@@ -294,6 +303,7 @@ void __init s5p6450_init_irq(void)
294 303
295 s5p_init_irq(vic, ARRAY_SIZE(vic)); 304 s5p_init_irq(vic, ARRAY_SIZE(vic));
296} 305}
306#endif
297 307
298struct bus_type s5p64x0_subsys = { 308struct bus_type s5p64x0_subsys = {
299 .name = "s5p64x0-core", 309 .name = "s5p64x0-core",
@@ -321,6 +331,7 @@ int __init s5p64x0_init(void)
321} 331}
322 332
323/* uart registration process */ 333/* uart registration process */
334#ifdef CONFIG_CPU_S5P6440
324void __init s5p6440_init_uarts(struct s3c2410_uartcfg *cfg, int no) 335void __init s5p6440_init_uarts(struct s3c2410_uartcfg *cfg, int no)
325{ 336{
326 int uart; 337 int uart;
@@ -332,11 +343,14 @@ void __init s5p6440_init_uarts(struct s3c2410_uartcfg *cfg, int no)
332 343
333 s3c24xx_init_uartdevs("s3c6400-uart", s5p_uart_resources, cfg, no); 344 s3c24xx_init_uartdevs("s3c6400-uart", s5p_uart_resources, cfg, no);
334} 345}
346#endif
335 347
348#ifdef CONFIG_CPU_S5P6450
336void __init s5p6450_init_uarts(struct s3c2410_uartcfg *cfg, int no) 349void __init s5p6450_init_uarts(struct s3c2410_uartcfg *cfg, int no)
337{ 350{
338 s3c24xx_init_uartdevs("s3c6400-uart", s5p_uart_resources, cfg, no); 351 s3c24xx_init_uartdevs("s3c6400-uart", s5p_uart_resources, cfg, no);
339} 352}
353#endif
340 354
341#define eint_offset(irq) ((irq) - IRQ_EINT(0)) 355#define eint_offset(irq) ((irq) - IRQ_EINT(0))
342 356
diff --git a/arch/arm/mach-s5p64x0/common.h b/arch/arm/mach-s5p64x0/common.h
index f3a9b43cba4a..cbe7f3d731d0 100644
--- a/arch/arm/mach-s5p64x0/common.h
+++ b/arch/arm/mach-s5p64x0/common.h
@@ -25,10 +25,10 @@ void s5p6450_register_clocks(void);
25void s5p6450_setup_clocks(void); 25void s5p6450_setup_clocks(void);
26 26
27void s5p64x0_restart(enum reboot_mode mode, const char *cmd); 27void s5p64x0_restart(enum reboot_mode mode, const char *cmd);
28extern int s5p64x0_init(void);
28 29
29#ifdef CONFIG_CPU_S5P6440 30#ifdef CONFIG_CPU_S5P6440
30 31
31extern int s5p64x0_init(void);
32extern void s5p6440_map_io(void); 32extern void s5p6440_map_io(void);
33extern void s5p6440_init_clocks(int xtal); 33extern void s5p6440_init_clocks(int xtal);
34 34
@@ -38,12 +38,10 @@ extern void s5p6440_init_uarts(struct s3c2410_uartcfg *cfg, int no);
38#define s5p6440_init_clocks NULL 38#define s5p6440_init_clocks NULL
39#define s5p6440_init_uarts NULL 39#define s5p6440_init_uarts NULL
40#define s5p6440_map_io NULL 40#define s5p6440_map_io NULL
41#define s5p64x0_init NULL
42#endif 41#endif
43 42
44#ifdef CONFIG_CPU_S5P6450 43#ifdef CONFIG_CPU_S5P6450
45 44
46extern int s5p64x0_init(void);
47extern void s5p6450_map_io(void); 45extern void s5p6450_map_io(void);
48extern void s5p6450_init_clocks(int xtal); 46extern void s5p6450_init_clocks(int xtal);
49 47
@@ -53,7 +51,6 @@ extern void s5p6450_init_uarts(struct s3c2410_uartcfg *cfg, int no);
53#define s5p6450_init_clocks NULL 51#define s5p6450_init_clocks NULL
54#define s5p6450_init_uarts NULL 52#define s5p6450_init_uarts NULL
55#define s5p6450_map_io NULL 53#define s5p6450_map_io NULL
56#define s5p64x0_init NULL
57#endif 54#endif
58 55
59#endif /* __ARCH_ARM_MACH_S5P64X0_COMMON_H */ 56#endif /* __ARCH_ARM_MACH_S5P64X0_COMMON_H */
diff --git a/arch/arm/mach-s5p64x0/irq-pm.c b/arch/arm/mach-s5p64x0/irq-pm.c
index 3e6f2456ee9d..d5f0fd66b635 100644
--- a/arch/arm/mach-s5p64x0/irq-pm.c
+++ b/arch/arm/mach-s5p64x0/irq-pm.c
@@ -34,7 +34,9 @@ static struct irq_grp_save {
34 u32 mask; 34 u32 mask;
35} eint_grp_save[4]; 35} eint_grp_save[4];
36 36
37#ifdef CONFIG_SERIAL_SAMSUNG
37static u32 irq_uart_mask[CONFIG_SERIAL_SAMSUNG_UARTS]; 38static u32 irq_uart_mask[CONFIG_SERIAL_SAMSUNG_UARTS];
39#endif
38 40
39static int s5p64x0_irq_pm_suspend(void) 41static int s5p64x0_irq_pm_suspend(void)
40{ 42{
@@ -45,8 +47,10 @@ static int s5p64x0_irq_pm_suspend(void)
45 47
46 s3c_pm_do_save(irq_save, ARRAY_SIZE(irq_save)); 48 s3c_pm_do_save(irq_save, ARRAY_SIZE(irq_save));
47 49
50#ifdef CONFIG_SERIAL_SAMSUNG
48 for (i = 0; i < CONFIG_SERIAL_SAMSUNG_UARTS; i++) 51 for (i = 0; i < CONFIG_SERIAL_SAMSUNG_UARTS; i++)
49 irq_uart_mask[i] = __raw_readl(S3C_VA_UARTx(i) + S3C64XX_UINTM); 52 irq_uart_mask[i] = __raw_readl(S3C_VA_UARTx(i) + S3C64XX_UINTM);
53#endif
50 54
51 for (i = 0; i < ARRAY_SIZE(eint_grp_save); i++, grp++) { 55 for (i = 0; i < ARRAY_SIZE(eint_grp_save); i++, grp++) {
52 grp->con = __raw_readl(S5P64X0_EINT12CON + (i * 4)); 56 grp->con = __raw_readl(S5P64X0_EINT12CON + (i * 4));
@@ -66,8 +70,10 @@ static void s5p64x0_irq_pm_resume(void)
66 70
67 s3c_pm_do_restore(irq_save, ARRAY_SIZE(irq_save)); 71 s3c_pm_do_restore(irq_save, ARRAY_SIZE(irq_save));
68 72
73#ifdef CONFIG_SERIAL_SAMSUNG
69 for (i = 0; i < CONFIG_SERIAL_SAMSUNG_UARTS; i++) 74 for (i = 0; i < CONFIG_SERIAL_SAMSUNG_UARTS; i++)
70 __raw_writel(irq_uart_mask[i], S3C_VA_UARTx(i) + S3C64XX_UINTM); 75 __raw_writel(irq_uart_mask[i], S3C_VA_UARTx(i) + S3C64XX_UINTM);
76#endif
71 77
72 for (i = 0; i < ARRAY_SIZE(eint_grp_save); i++, grp++) { 78 for (i = 0; i < ARRAY_SIZE(eint_grp_save); i++, grp++) {
73 __raw_writel(grp->con, S5P64X0_EINT12CON + (i * 4)); 79 __raw_writel(grp->con, S5P64X0_EINT12CON + (i * 4));
diff --git a/arch/arm/mach-s5pv210/Kconfig b/arch/arm/mach-s5pv210/Kconfig
index caaedafbbf5f..8c3abe521757 100644
--- a/arch/arm/mach-s5pv210/Kconfig
+++ b/arch/arm/mach-s5pv210/Kconfig
@@ -189,6 +189,7 @@ config MACH_TORBRECK
189 select S5PV210_SETUP_I2C1 189 select S5PV210_SETUP_I2C1
190 select S5PV210_SETUP_I2C2 190 select S5PV210_SETUP_I2C2
191 select S5PV210_SETUP_SDHCI 191 select S5PV210_SETUP_SDHCI
192 select SAMSUNG_DEV_IDE
192 help 193 help
193 Machine support for aESOP Torbreck 194 Machine support for aESOP Torbreck
194 195
diff --git a/arch/arm/mach-sunxi/Makefile b/arch/arm/mach-sunxi/Makefile
index d9397202d6ec..27b168f121a1 100644
--- a/arch/arm/mach-sunxi/Makefile
+++ b/arch/arm/mach-sunxi/Makefile
@@ -1,2 +1,2 @@
1obj-$(CONFIG_ARCH_SUNXI) += sunxi.o 1obj-$(CONFIG_ARCH_SUNXI) += sunxi.o
2obj-$(CONFIG_SMP) += platsmp.o headsmp.o 2obj-$(CONFIG_SMP) += platsmp.o
diff --git a/arch/arm/mach-sunxi/headsmp.S b/arch/arm/mach-sunxi/headsmp.S
deleted file mode 100644
index a10d494fb37b..000000000000
--- a/arch/arm/mach-sunxi/headsmp.S
+++ /dev/null
@@ -1,9 +0,0 @@
1#include <linux/linkage.h>
2#include <linux/init.h>
3
4 .section ".text.head", "ax"
5
6ENTRY(sun6i_secondary_startup)
7 msr cpsr_fsxc, #0xd3
8 b secondary_startup
9ENDPROC(sun6i_secondary_startup)
diff --git a/arch/arm/mach-sunxi/platsmp.c b/arch/arm/mach-sunxi/platsmp.c
index 7b141d8342a1..0c7dbce033cc 100644
--- a/arch/arm/mach-sunxi/platsmp.c
+++ b/arch/arm/mach-sunxi/platsmp.c
@@ -82,7 +82,7 @@ static int sun6i_smp_boot_secondary(unsigned int cpu,
82 spin_lock(&cpu_lock); 82 spin_lock(&cpu_lock);
83 83
84 /* Set CPU boot address */ 84 /* Set CPU boot address */
85 writel(virt_to_phys(sun6i_secondary_startup), 85 writel(virt_to_phys(secondary_startup),
86 cpucfg_membase + CPUCFG_PRIVATE0_REG); 86 cpucfg_membase + CPUCFG_PRIVATE0_REG);
87 87
88 /* Assert the CPU core in reset */ 88 /* Assert the CPU core in reset */
diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig
index 1f8fed94c2a4..9e832295ecaa 100644
--- a/arch/arm/mm/Kconfig
+++ b/arch/arm/mm/Kconfig
@@ -264,7 +264,7 @@ config CPU_ARM1026
264 264
265# SA110 265# SA110
266config CPU_SA110 266config CPU_SA110
267 bool "Support StrongARM(R) SA-110 processor" if ARCH_RPC 267 bool
268 select CPU_32v3 if ARCH_RPC 268 select CPU_32v3 if ARCH_RPC
269 select CPU_32v4 if !ARCH_RPC 269 select CPU_32v4 if !ARCH_RPC
270 select CPU_ABRT_EV4 270 select CPU_ABRT_EV4
diff --git a/arch/arm/plat-samsung/Kconfig b/arch/arm/plat-samsung/Kconfig
index 58645a58d0d8..b57e922f1614 100644
--- a/arch/arm/plat-samsung/Kconfig
+++ b/arch/arm/plat-samsung/Kconfig
@@ -427,8 +427,7 @@ comment "Power management"
427 427
428config SAMSUNG_PM_DEBUG 428config SAMSUNG_PM_DEBUG
429 bool "S3C2410 PM Suspend debug" 429 bool "S3C2410 PM Suspend debug"
430 depends on PM 430 depends on PM && DEBUG_KERNEL && DEBUG_S3C_UART
431 select DEBUG_LL
432 help 431 help
433 Say Y here if you want verbose debugging from the PM Suspend and 432 Say Y here if you want verbose debugging from the PM Suspend and
434 Resume code. See <file:Documentation/arm/Samsung-S3C24XX/Suspend.txt> 433 Resume code. See <file:Documentation/arm/Samsung-S3C24XX/Suspend.txt>
@@ -445,7 +444,8 @@ config S3C_PM_DEBUG_LED_SMDK
445 444
446config SAMSUNG_PM_CHECK 445config SAMSUNG_PM_CHECK
447 bool "S3C2410 PM Suspend Memory CRC" 446 bool "S3C2410 PM Suspend Memory CRC"
448 depends on PM && CRC32 447 depends on PM
448 select CRC32
449 help 449 help
450 Enable the PM code's memory area checksum over sleep. This option 450 Enable the PM code's memory area checksum over sleep. This option
451 will generate CRCs of all blocks of memory, and store them before 451 will generate CRCs of all blocks of memory, and store them before
diff --git a/arch/arm/plat-samsung/init.c b/arch/arm/plat-samsung/init.c
index aa9511b6914a..a30df396ca34 100644
--- a/arch/arm/plat-samsung/init.c
+++ b/arch/arm/plat-samsung/init.c
@@ -97,7 +97,9 @@ void __init s3c24xx_init_clocks(int xtal)
97#if IS_ENABLED(CONFIG_SAMSUNG_ATAGS) 97#if IS_ENABLED(CONFIG_SAMSUNG_ATAGS)
98static int nr_uarts __initdata = 0; 98static int nr_uarts __initdata = 0;
99 99
100#ifdef CONFIG_SERIAL_SAMSUNG_UARTS
100static struct s3c2410_uartcfg uart_cfgs[CONFIG_SERIAL_SAMSUNG_UARTS]; 101static struct s3c2410_uartcfg uart_cfgs[CONFIG_SERIAL_SAMSUNG_UARTS];
102#endif
101 103
102/* s3c24xx_init_uartdevs 104/* s3c24xx_init_uartdevs
103 * 105 *
@@ -112,6 +114,7 @@ void __init s3c24xx_init_uartdevs(char *name,
112 struct s3c24xx_uart_resources *res, 114 struct s3c24xx_uart_resources *res,
113 struct s3c2410_uartcfg *cfg, int no) 115 struct s3c2410_uartcfg *cfg, int no)
114{ 116{
117#ifdef CONFIG_SERIAL_SAMSUNG_UARTS
115 struct platform_device *platdev; 118 struct platform_device *platdev;
116 struct s3c2410_uartcfg *cfgptr = uart_cfgs; 119 struct s3c2410_uartcfg *cfgptr = uart_cfgs;
117 struct s3c24xx_uart_resources *resp; 120 struct s3c24xx_uart_resources *resp;
@@ -134,6 +137,7 @@ void __init s3c24xx_init_uartdevs(char *name,
134 } 137 }
135 138
136 nr_uarts = no; 139 nr_uarts = no;
140#endif
137} 141}
138 142
139void __init s3c24xx_init_uarts(struct s3c2410_uartcfg *cfg, int no) 143void __init s3c24xx_init_uarts(struct s3c2410_uartcfg *cfg, int no)
diff --git a/include/linux/pxa2xx_ssp.h b/include/linux/pxa2xx_ssp.h
index 49444203328a..f2b405116166 100644
--- a/include/linux/pxa2xx_ssp.h
+++ b/include/linux/pxa2xx_ssp.h
@@ -219,7 +219,7 @@ static inline u32 pxa_ssp_read_reg(struct ssp_device *dev, u32 reg)
219 return __raw_readl(dev->mmio_base + reg); 219 return __raw_readl(dev->mmio_base + reg);
220} 220}
221 221
222#ifdef CONFIG_ARCH_PXA 222#if IS_ENABLED(CONFIG_PXA_SSP)
223struct ssp_device *pxa_ssp_request(int port, const char *label); 223struct ssp_device *pxa_ssp_request(int port, const char *label);
224void pxa_ssp_free(struct ssp_device *); 224void pxa_ssp_free(struct ssp_device *);
225struct ssp_device *pxa_ssp_request_of(const struct device_node *of_node, 225struct ssp_device *pxa_ssp_request_of(const struct device_node *of_node,