aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-10-01 21:02:07 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-10-01 21:02:07 -0400
commit47061eda2584b9e4516d1e3a9713406a3a559ac8 (patch)
treeeead6cf96696e6eb0abf7cc7a3f6ee27aefc7c3b /arch
parent797b9e5ae93270ec27a1f1ed48cd697d01b2269f (diff)
parentb10dcdcac43b2b5adf800a19f782fef38ada75a1 (diff)
Merge tag 'fixes-non-critical' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull non-critical ARM soc bug fixes from Olof Johansson: "These were submitted as bug fixes before v3.6 but not considered important enough to be included in it. Some of them cross over to cleanup territory as well, and aren't strictly bugfixes." * tag 'fixes-non-critical' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (48 commits) ARM: nomadik: remove NAND_NO_READRDY use ARM: pxa: fix return value check in pxa2xx_drv_pcmcia_probe() ARM: SAMSUNG: Add missing variable declaration in s3c64xx_spi1_set_platdata() ARM: S3C24XX: removes unnecessary semicolon ARM: S3C24xx: delete double assignment ARM: EXYNOS: fix address for EXYNOS4 MDMA1 ARM: EXYNOS: fixed SYSMMU setup definition to mate parameter name ARM: ep93xx: Move ts72xx.h out of include/mach ARM: ep93xx: use __iomem pointers for MMIO ARM: msm: Fix early debug uart mapping on some memory configs ARM: msm: io: Change the default static iomappings to be shared ARM: msm: io: Remove 7x30 iomap region from 7x00 ARM: msm: Remove call to missing FPGA init on 8660 ARM: OMAP4: wakeupgen: remove duplicate AUXCOREBOOT* read/write ARM: OMAP4: wakeupgen: Fix the typo in AUXCOREBOOT register save dma: tegra: make data used as *of_device_id.data const can: mpc5xxx_can: make data used as *of_device_id.data const macintosh/mediabay: make data used as *of_device_id.data const i2c/mpc: make data used as *of_device_id.data const mfd/da9052: make i2c_device_id array const ...
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/Kconfig2
-rw-r--r--arch/arm/mach-ep93xx/adssphere.c1
-rw-r--r--arch/arm/mach-ep93xx/gesbc9312.c1
-rw-r--r--arch/arm/mach-ep93xx/ts72xx.c12
-rw-r--r--arch/arm/mach-ep93xx/ts72xx.h (renamed from arch/arm/mach-ep93xx/include/mach/ts72xx.h)10
-rw-r--r--arch/arm/mach-exynos/include/mach/map.h2
-rw-r--r--arch/arm/mach-exynos/include/mach/sysmmu.h2
-rw-r--r--arch/arm/mach-msm/board-msm8x60.c5
-rw-r--r--arch/arm/mach-msm/include/mach/msm_iomap-8960.h2
-rw-r--r--arch/arm/mach-msm/include/mach/msm_iomap-8x60.h2
-rw-r--r--arch/arm/mach-msm/io.c25
-rw-r--r--arch/arm/mach-nomadik/board-nhk8815.c3
-rw-r--r--arch/arm/mach-omap2/gpio.c2
-rw-r--r--arch/arm/mach-omap2/omap-wakeupgen.c8
-rw-r--r--arch/arm/mach-s3c24xx/mach-h1940.c4
-rw-r--r--arch/arm/mach-tegra/powergate.c43
-rw-r--r--arch/arm/mach-ux500/Kconfig1
-rw-r--r--arch/arm/mach-ux500/board-mop500-regulators.c15
-rw-r--r--arch/arm/mach-ux500/board-mop500-regulators.h1
-rw-r--r--arch/arm/mach-ux500/board-mop500.c19
-rw-r--r--arch/arm/mach-ux500/cpu-db8500.c1
-rw-r--r--arch/arm/mach-ux500/cpu.c2
-rw-r--r--arch/arm/mm/cache-l2x0.c2
-rw-r--r--arch/arm/plat-samsung/devs.c2
-rw-r--r--arch/powerpc/platforms/83xx/suspend.c2
-rw-r--r--arch/powerpc/platforms/cell/celleb_pci.c2
-rw-r--r--arch/powerpc/sysdev/fsl_msi.c8
27 files changed, 121 insertions, 58 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index de325f4615bd..4c428dc999ea 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -2312,7 +2312,7 @@ menu "Power management options"
2312source "kernel/power/Kconfig" 2312source "kernel/power/Kconfig"
2313 2313
2314config ARCH_SUSPEND_POSSIBLE 2314config ARCH_SUSPEND_POSSIBLE
2315 depends on !ARCH_S5PC100 && !ARCH_TEGRA 2315 depends on !ARCH_S5PC100
2316 depends on CPU_ARM920T || CPU_ARM926T || CPU_SA1100 || \ 2316 depends on CPU_ARM920T || CPU_ARM926T || CPU_SA1100 || \
2317 CPU_V6 || CPU_V6K || CPU_V7 || CPU_XSC3 || CPU_XSCALE || CPU_MOHAWK 2317 CPU_V6 || CPU_V6K || CPU_V7 || CPU_XSC3 || CPU_XSCALE || CPU_MOHAWK
2318 def_bool y 2318 def_bool y
diff --git a/arch/arm/mach-ep93xx/adssphere.c b/arch/arm/mach-ep93xx/adssphere.c
index a472777e9eba..41383bf03d4b 100644
--- a/arch/arm/mach-ep93xx/adssphere.c
+++ b/arch/arm/mach-ep93xx/adssphere.c
@@ -13,6 +13,7 @@
13#include <linux/kernel.h> 13#include <linux/kernel.h>
14#include <linux/init.h> 14#include <linux/init.h>
15#include <linux/platform_device.h> 15#include <linux/platform_device.h>
16#include <linux/sizes.h>
16 17
17#include <mach/hardware.h> 18#include <mach/hardware.h>
18 19
diff --git a/arch/arm/mach-ep93xx/gesbc9312.c b/arch/arm/mach-ep93xx/gesbc9312.c
index 437c34111155..7fd705b5efe4 100644
--- a/arch/arm/mach-ep93xx/gesbc9312.c
+++ b/arch/arm/mach-ep93xx/gesbc9312.c
@@ -13,6 +13,7 @@
13#include <linux/kernel.h> 13#include <linux/kernel.h>
14#include <linux/init.h> 14#include <linux/init.h>
15#include <linux/platform_device.h> 15#include <linux/platform_device.h>
16#include <linux/sizes.h>
16 17
17#include <mach/hardware.h> 18#include <mach/hardware.h>
18 19
diff --git a/arch/arm/mach-ep93xx/ts72xx.c b/arch/arm/mach-ep93xx/ts72xx.c
index 75cab2d7ec73..3c4c233391dc 100644
--- a/arch/arm/mach-ep93xx/ts72xx.c
+++ b/arch/arm/mach-ep93xx/ts72xx.c
@@ -21,7 +21,6 @@
21#include <linux/mtd/partitions.h> 21#include <linux/mtd/partitions.h>
22 22
23#include <mach/hardware.h> 23#include <mach/hardware.h>
24#include <mach/ts72xx.h>
25 24
26#include <asm/hardware/vic.h> 25#include <asm/hardware/vic.h>
27#include <asm/mach-types.h> 26#include <asm/mach-types.h>
@@ -29,30 +28,31 @@
29#include <asm/mach/arch.h> 28#include <asm/mach/arch.h>
30 29
31#include "soc.h" 30#include "soc.h"
31#include "ts72xx.h"
32 32
33static struct map_desc ts72xx_io_desc[] __initdata = { 33static struct map_desc ts72xx_io_desc[] __initdata = {
34 { 34 {
35 .virtual = TS72XX_MODEL_VIRT_BASE, 35 .virtual = (unsigned long)TS72XX_MODEL_VIRT_BASE,
36 .pfn = __phys_to_pfn(TS72XX_MODEL_PHYS_BASE), 36 .pfn = __phys_to_pfn(TS72XX_MODEL_PHYS_BASE),
37 .length = TS72XX_MODEL_SIZE, 37 .length = TS72XX_MODEL_SIZE,
38 .type = MT_DEVICE, 38 .type = MT_DEVICE,
39 }, { 39 }, {
40 .virtual = TS72XX_OPTIONS_VIRT_BASE, 40 .virtual = (unsigned long)TS72XX_OPTIONS_VIRT_BASE,
41 .pfn = __phys_to_pfn(TS72XX_OPTIONS_PHYS_BASE), 41 .pfn = __phys_to_pfn(TS72XX_OPTIONS_PHYS_BASE),
42 .length = TS72XX_OPTIONS_SIZE, 42 .length = TS72XX_OPTIONS_SIZE,
43 .type = MT_DEVICE, 43 .type = MT_DEVICE,
44 }, { 44 }, {
45 .virtual = TS72XX_OPTIONS2_VIRT_BASE, 45 .virtual = (unsigned long)TS72XX_OPTIONS2_VIRT_BASE,
46 .pfn = __phys_to_pfn(TS72XX_OPTIONS2_PHYS_BASE), 46 .pfn = __phys_to_pfn(TS72XX_OPTIONS2_PHYS_BASE),
47 .length = TS72XX_OPTIONS2_SIZE, 47 .length = TS72XX_OPTIONS2_SIZE,
48 .type = MT_DEVICE, 48 .type = MT_DEVICE,
49 }, { 49 }, {
50 .virtual = TS72XX_RTC_INDEX_VIRT_BASE, 50 .virtual = (unsigned long)TS72XX_RTC_INDEX_VIRT_BASE,
51 .pfn = __phys_to_pfn(TS72XX_RTC_INDEX_PHYS_BASE), 51 .pfn = __phys_to_pfn(TS72XX_RTC_INDEX_PHYS_BASE),
52 .length = TS72XX_RTC_INDEX_SIZE, 52 .length = TS72XX_RTC_INDEX_SIZE,
53 .type = MT_DEVICE, 53 .type = MT_DEVICE,
54 }, { 54 }, {
55 .virtual = TS72XX_RTC_DATA_VIRT_BASE, 55 .virtual = (unsigned long)TS72XX_RTC_DATA_VIRT_BASE,
56 .pfn = __phys_to_pfn(TS72XX_RTC_DATA_PHYS_BASE), 56 .pfn = __phys_to_pfn(TS72XX_RTC_DATA_PHYS_BASE),
57 .length = TS72XX_RTC_DATA_SIZE, 57 .length = TS72XX_RTC_DATA_SIZE,
58 .type = MT_DEVICE, 58 .type = MT_DEVICE,
diff --git a/arch/arm/mach-ep93xx/include/mach/ts72xx.h b/arch/arm/mach-ep93xx/ts72xx.h
index f1397a13e76b..071feaa30adc 100644
--- a/arch/arm/mach-ep93xx/include/mach/ts72xx.h
+++ b/arch/arm/mach-ep93xx/ts72xx.h
@@ -14,7 +14,7 @@
14 */ 14 */
15 15
16#define TS72XX_MODEL_PHYS_BASE 0x22000000 16#define TS72XX_MODEL_PHYS_BASE 0x22000000
17#define TS72XX_MODEL_VIRT_BASE 0xfebff000 17#define TS72XX_MODEL_VIRT_BASE IOMEM(0xfebff000)
18#define TS72XX_MODEL_SIZE 0x00001000 18#define TS72XX_MODEL_SIZE 0x00001000
19 19
20#define TS72XX_MODEL_TS7200 0x00 20#define TS72XX_MODEL_TS7200 0x00
@@ -26,7 +26,7 @@
26 26
27 27
28#define TS72XX_OPTIONS_PHYS_BASE 0x22400000 28#define TS72XX_OPTIONS_PHYS_BASE 0x22400000
29#define TS72XX_OPTIONS_VIRT_BASE 0xfebfe000 29#define TS72XX_OPTIONS_VIRT_BASE IOMEM(0xfebfe000)
30#define TS72XX_OPTIONS_SIZE 0x00001000 30#define TS72XX_OPTIONS_SIZE 0x00001000
31 31
32#define TS72XX_OPTIONS_COM2_RS485 0x02 32#define TS72XX_OPTIONS_COM2_RS485 0x02
@@ -34,18 +34,18 @@
34 34
35 35
36#define TS72XX_OPTIONS2_PHYS_BASE 0x22800000 36#define TS72XX_OPTIONS2_PHYS_BASE 0x22800000
37#define TS72XX_OPTIONS2_VIRT_BASE 0xfebfd000 37#define TS72XX_OPTIONS2_VIRT_BASE IOMEM(0xfebfd000)
38#define TS72XX_OPTIONS2_SIZE 0x00001000 38#define TS72XX_OPTIONS2_SIZE 0x00001000
39 39
40#define TS72XX_OPTIONS2_TS9420 0x04 40#define TS72XX_OPTIONS2_TS9420 0x04
41#define TS72XX_OPTIONS2_TS9420_BOOT 0x02 41#define TS72XX_OPTIONS2_TS9420_BOOT 0x02
42 42
43 43
44#define TS72XX_RTC_INDEX_VIRT_BASE 0xfebf9000 44#define TS72XX_RTC_INDEX_VIRT_BASE IOMEM(0xfebf9000)
45#define TS72XX_RTC_INDEX_PHYS_BASE 0x10800000 45#define TS72XX_RTC_INDEX_PHYS_BASE 0x10800000
46#define TS72XX_RTC_INDEX_SIZE 0x00001000 46#define TS72XX_RTC_INDEX_SIZE 0x00001000
47 47
48#define TS72XX_RTC_DATA_VIRT_BASE 0xfebf8000 48#define TS72XX_RTC_DATA_VIRT_BASE IOMEM(0xfebf8000)
49#define TS72XX_RTC_DATA_PHYS_BASE 0x11700000 49#define TS72XX_RTC_DATA_PHYS_BASE 0x11700000
50#define TS72XX_RTC_DATA_SIZE 0x00001000 50#define TS72XX_RTC_DATA_SIZE 0x00001000
51 51
diff --git a/arch/arm/mach-exynos/include/mach/map.h b/arch/arm/mach-exynos/include/mach/map.h
index c72b675b3e4b..c941053dd5a1 100644
--- a/arch/arm/mach-exynos/include/mach/map.h
+++ b/arch/arm/mach-exynos/include/mach/map.h
@@ -89,7 +89,7 @@
89#define EXYNOS4_PA_L2CC 0x10502000 89#define EXYNOS4_PA_L2CC 0x10502000
90 90
91#define EXYNOS4_PA_MDMA0 0x10810000 91#define EXYNOS4_PA_MDMA0 0x10810000
92#define EXYNOS4_PA_MDMA1 0x12840000 92#define EXYNOS4_PA_MDMA1 0x12850000
93#define EXYNOS4_PA_PDMA0 0x12680000 93#define EXYNOS4_PA_PDMA0 0x12680000
94#define EXYNOS4_PA_PDMA1 0x12690000 94#define EXYNOS4_PA_PDMA1 0x12690000
95#define EXYNOS5_PA_MDMA0 0x10800000 95#define EXYNOS5_PA_MDMA0 0x10800000
diff --git a/arch/arm/mach-exynos/include/mach/sysmmu.h b/arch/arm/mach-exynos/include/mach/sysmmu.h
index 998daf2add92..88a4543b0001 100644
--- a/arch/arm/mach-exynos/include/mach/sysmmu.h
+++ b/arch/arm/mach-exynos/include/mach/sysmmu.h
@@ -58,7 +58,7 @@ static inline void platform_set_sysmmu(
58#endif 58#endif
59 59
60#else /* !CONFIG_EXYNOS_DEV_SYSMMU */ 60#else /* !CONFIG_EXYNOS_DEV_SYSMMU */
61#define platform_set_sysmmu(dev, sysmmu) do { } while (0) 61#define platform_set_sysmmu(sysmmu, dev) do { } while (0)
62#endif 62#endif
63 63
64#define SYSMMU_CLOCK_DEVNAME(ipname, id) (SYSMMU_DEVNAME_BASE "." #id) 64#define SYSMMU_CLOCK_DEVNAME(ipname, id) (SYSMMU_DEVNAME_BASE "." #id)
diff --git a/arch/arm/mach-msm/board-msm8x60.c b/arch/arm/mach-msm/board-msm8x60.c
index e37a724cd1eb..06003b4ccb10 100644
--- a/arch/arm/mach-msm/board-msm8x60.c
+++ b/arch/arm/mach-msm/board-msm8x60.c
@@ -93,11 +93,6 @@ static struct of_dev_auxdata msm_auxdata_lookup[] __initdata = {
93 93
94static void __init msm8x60_dt_init(void) 94static void __init msm8x60_dt_init(void)
95{ 95{
96 if (of_machine_is_compatible("qcom,msm8660-surf")) {
97 printk(KERN_INFO "Init surf UART registers\n");
98 msm8x60_init_uart12dm();
99 }
100
101 of_platform_populate(NULL, of_default_bus_match_table, 96 of_platform_populate(NULL, of_default_bus_match_table,
102 msm_auxdata_lookup, NULL); 97 msm_auxdata_lookup, NULL);
103} 98}
diff --git a/arch/arm/mach-msm/include/mach/msm_iomap-8960.h b/arch/arm/mach-msm/include/mach/msm_iomap-8960.h
index a1752c0284fc..facf434d09be 100644
--- a/arch/arm/mach-msm/include/mach/msm_iomap-8960.h
+++ b/arch/arm/mach-msm/include/mach/msm_iomap-8960.h
@@ -46,7 +46,7 @@
46#define MSM8960_TMR0_SIZE SZ_4K 46#define MSM8960_TMR0_SIZE SZ_4K
47 47
48#ifdef CONFIG_DEBUG_MSM8960_UART 48#ifdef CONFIG_DEBUG_MSM8960_UART
49#define MSM_DEBUG_UART_BASE 0xE1040000 49#define MSM_DEBUG_UART_BASE 0xF0040000
50#define MSM_DEBUG_UART_PHYS 0x16440000 50#define MSM_DEBUG_UART_PHYS 0x16440000
51#endif 51#endif
52 52
diff --git a/arch/arm/mach-msm/include/mach/msm_iomap-8x60.h b/arch/arm/mach-msm/include/mach/msm_iomap-8x60.h
index 5aed57dc808c..21a2a8859a9a 100644
--- a/arch/arm/mach-msm/include/mach/msm_iomap-8x60.h
+++ b/arch/arm/mach-msm/include/mach/msm_iomap-8x60.h
@@ -63,7 +63,7 @@
63#define MSM8X60_TMR0_SIZE SZ_4K 63#define MSM8X60_TMR0_SIZE SZ_4K
64 64
65#ifdef CONFIG_DEBUG_MSM8660_UART 65#ifdef CONFIG_DEBUG_MSM8660_UART
66#define MSM_DEBUG_UART_BASE 0xE1040000 66#define MSM_DEBUG_UART_BASE 0xF0040000
67#define MSM_DEBUG_UART_PHYS 0x19C40000 67#define MSM_DEBUG_UART_PHYS 0x19C40000
68#endif 68#endif
69 69
diff --git a/arch/arm/mach-msm/io.c b/arch/arm/mach-msm/io.c
index a1e7b1168850..af43f6acd7fc 100644
--- a/arch/arm/mach-msm/io.c
+++ b/arch/arm/mach-msm/io.c
@@ -29,30 +29,31 @@
29 29
30#include <mach/board.h> 30#include <mach/board.h>
31 31
32#define MSM_CHIP_DEVICE(name, chip) { \ 32#define MSM_CHIP_DEVICE_TYPE(name, chip, mem_type) { \
33 .virtual = (unsigned long) MSM_##name##_BASE, \ 33 .virtual = (unsigned long) MSM_##name##_BASE, \
34 .pfn = __phys_to_pfn(chip##_##name##_PHYS), \ 34 .pfn = __phys_to_pfn(chip##_##name##_PHYS), \
35 .length = chip##_##name##_SIZE, \ 35 .length = chip##_##name##_SIZE, \
36 .type = MT_DEVICE_NONSHARED, \ 36 .type = mem_type, \
37 } 37 }
38 38
39#define MSM_DEVICE_TYPE(name, mem_type) \
40 MSM_CHIP_DEVICE_TYPE(name, MSM, mem_type)
41#define MSM_CHIP_DEVICE(name, chip) \
42 MSM_CHIP_DEVICE_TYPE(name, chip, MT_DEVICE)
39#define MSM_DEVICE(name) MSM_CHIP_DEVICE(name, MSM) 43#define MSM_DEVICE(name) MSM_CHIP_DEVICE(name, MSM)
40 44
41#if defined(CONFIG_ARCH_MSM7X00A) || defined(CONFIG_ARCH_MSM7X27) \ 45#if defined(CONFIG_ARCH_MSM7X00A) || defined(CONFIG_ARCH_MSM7X27) \
42 || defined(CONFIG_ARCH_MSM7X25) 46 || defined(CONFIG_ARCH_MSM7X25)
43static struct map_desc msm_io_desc[] __initdata = { 47static struct map_desc msm_io_desc[] __initdata = {
44 MSM_DEVICE(VIC), 48 MSM_DEVICE_TYPE(VIC, MT_DEVICE_NONSHARED),
45 MSM_CHIP_DEVICE(CSR, MSM7X00), 49 MSM_CHIP_DEVICE_TYPE(CSR, MSM7X00, MT_DEVICE_NONSHARED),
46 MSM_DEVICE(DMOV), 50 MSM_DEVICE_TYPE(DMOV, MT_DEVICE_NONSHARED),
47 MSM_CHIP_DEVICE(GPIO1, MSM7X00), 51 MSM_CHIP_DEVICE_TYPE(GPIO1, MSM7X00, MT_DEVICE_NONSHARED),
48 MSM_CHIP_DEVICE(GPIO2, MSM7X00), 52 MSM_CHIP_DEVICE_TYPE(GPIO2, MSM7X00, MT_DEVICE_NONSHARED),
49 MSM_DEVICE(CLK_CTL), 53 MSM_DEVICE_TYPE(CLK_CTL, MT_DEVICE_NONSHARED),
50#if defined(CONFIG_DEBUG_MSM_UART1) || defined(CONFIG_DEBUG_MSM_UART2) || \ 54#if defined(CONFIG_DEBUG_MSM_UART1) || defined(CONFIG_DEBUG_MSM_UART2) || \
51 defined(CONFIG_DEBUG_MSM_UART3) 55 defined(CONFIG_DEBUG_MSM_UART3)
52 MSM_DEVICE(DEBUG_UART), 56 MSM_DEVICE_TYPE(DEBUG_UART, MT_DEVICE_NONSHARED),
53#endif
54#ifdef CONFIG_ARCH_MSM7X30
55 MSM_DEVICE(GCC),
56#endif 57#endif
57 { 58 {
58 .virtual = (unsigned long) MSM_SHARED_RAM_BASE, 59 .virtual = (unsigned long) MSM_SHARED_RAM_BASE,
diff --git a/arch/arm/mach-nomadik/board-nhk8815.c b/arch/arm/mach-nomadik/board-nhk8815.c
index f4535a7dadf5..c3841a9a8fa8 100644
--- a/arch/arm/mach-nomadik/board-nhk8815.c
+++ b/arch/arm/mach-nomadik/board-nhk8815.c
@@ -112,8 +112,7 @@ static struct mtd_partition nhk8815_partitions[] = {
112static struct nomadik_nand_platform_data nhk8815_nand_data = { 112static struct nomadik_nand_platform_data nhk8815_nand_data = {
113 .parts = nhk8815_partitions, 113 .parts = nhk8815_partitions,
114 .nparts = ARRAY_SIZE(nhk8815_partitions), 114 .nparts = ARRAY_SIZE(nhk8815_partitions),
115 .options = NAND_COPYBACK | NAND_CACHEPRG | NAND_NO_PADDING \ 115 .options = NAND_COPYBACK | NAND_CACHEPRG | NAND_NO_PADDING,
116 | NAND_NO_READRDY,
117 .init = nhk8815_nand_init, 116 .init = nhk8815_nand_init,
118}; 117};
119 118
diff --git a/arch/arm/mach-omap2/gpio.c b/arch/arm/mach-omap2/gpio.c
index 9ad7d489b0de..fe626e903dea 100644
--- a/arch/arm/mach-omap2/gpio.c
+++ b/arch/arm/mach-omap2/gpio.c
@@ -60,6 +60,7 @@ static int __init omap2_gpio_dev_init(struct omap_hwmod *oh, void *unused)
60 pdata->regs = kzalloc(sizeof(struct omap_gpio_reg_offs), GFP_KERNEL); 60 pdata->regs = kzalloc(sizeof(struct omap_gpio_reg_offs), GFP_KERNEL);
61 if (!pdata->regs) { 61 if (!pdata->regs) {
62 pr_err("gpio%d: Memory allocation failed\n", id); 62 pr_err("gpio%d: Memory allocation failed\n", id);
63 kfree(pdata);
63 return -ENOMEM; 64 return -ENOMEM;
64 } 65 }
65 66
@@ -121,6 +122,7 @@ static int __init omap2_gpio_dev_init(struct omap_hwmod *oh, void *unused)
121 break; 122 break;
122 default: 123 default:
123 WARN(1, "Invalid gpio bank_type\n"); 124 WARN(1, "Invalid gpio bank_type\n");
125 kfree(pdata->regs);
124 kfree(pdata); 126 kfree(pdata);
125 return -EINVAL; 127 return -EINVAL;
126 } 128 }
diff --git a/arch/arm/mach-omap2/omap-wakeupgen.c b/arch/arm/mach-omap2/omap-wakeupgen.c
index 330d4c6e746b..c4bee21f4210 100644
--- a/arch/arm/mach-omap2/omap-wakeupgen.c
+++ b/arch/arm/mach-omap2/omap-wakeupgen.c
@@ -229,13 +229,7 @@ static inline void omap4_irq_save_context(void)
229 /* Save AuxBoot* registers */ 229 /* Save AuxBoot* registers */
230 val = __raw_readl(wakeupgen_base + OMAP_AUX_CORE_BOOT_0); 230 val = __raw_readl(wakeupgen_base + OMAP_AUX_CORE_BOOT_0);
231 __raw_writel(val, sar_base + AUXCOREBOOT0_OFFSET); 231 __raw_writel(val, sar_base + AUXCOREBOOT0_OFFSET);
232 val = __raw_readl(wakeupgen_base + OMAP_AUX_CORE_BOOT_0); 232 val = __raw_readl(wakeupgen_base + OMAP_AUX_CORE_BOOT_1);
233 __raw_writel(val, sar_base + AUXCOREBOOT1_OFFSET);
234
235 /* Save SyncReq generation logic */
236 val = __raw_readl(wakeupgen_base + OMAP_AUX_CORE_BOOT_0);
237 __raw_writel(val, sar_base + AUXCOREBOOT0_OFFSET);
238 val = __raw_readl(wakeupgen_base + OMAP_AUX_CORE_BOOT_0);
239 __raw_writel(val, sar_base + AUXCOREBOOT1_OFFSET); 233 __raw_writel(val, sar_base + AUXCOREBOOT1_OFFSET);
240 234
241 /* Save SyncReq generation logic */ 235 /* Save SyncReq generation logic */
diff --git a/arch/arm/mach-s3c24xx/mach-h1940.c b/arch/arm/mach-s3c24xx/mach-h1940.c
index bb8d008d5a5c..7e15cc430688 100644
--- a/arch/arm/mach-s3c24xx/mach-h1940.c
+++ b/arch/arm/mach-s3c24xx/mach-h1940.c
@@ -380,7 +380,7 @@ int h1940_led_blink_set(unsigned gpio, int state,
380 default: 380 default:
381 blink_gpio = S3C2410_GPA(3); 381 blink_gpio = S3C2410_GPA(3);
382 check_gpio1 = S3C2410_GPA(1); 382 check_gpio1 = S3C2410_GPA(1);
383 check_gpio1 = S3C2410_GPA(7); 383 check_gpio2 = S3C2410_GPA(7);
384 break; 384 break;
385 } 385 }
386 386
@@ -460,7 +460,7 @@ static void h1940_set_mmc_power(unsigned char power_mode, unsigned short vdd)
460 break; 460 break;
461 default: 461 default:
462 break; 462 break;
463 }; 463 }
464} 464}
465 465
466static struct s3c24xx_mci_pdata h1940_mmc_cfg __initdata = { 466static struct s3c24xx_mci_pdata h1940_mmc_cfg __initdata = {
diff --git a/arch/arm/mach-tegra/powergate.c b/arch/arm/mach-tegra/powergate.c
index 15d506501ccc..de0662de28a0 100644
--- a/arch/arm/mach-tegra/powergate.c
+++ b/arch/arm/mach-tegra/powergate.c
@@ -199,7 +199,9 @@ int __init tegra_powergate_init(void)
199 199
200#ifdef CONFIG_DEBUG_FS 200#ifdef CONFIG_DEBUG_FS
201 201
202static const char * const powergate_name[] = { 202static const char * const *powergate_name;
203
204static const char * const powergate_name_t20[] = {
203 [TEGRA_POWERGATE_CPU] = "cpu", 205 [TEGRA_POWERGATE_CPU] = "cpu",
204 [TEGRA_POWERGATE_3D] = "3d", 206 [TEGRA_POWERGATE_3D] = "3d",
205 [TEGRA_POWERGATE_VENC] = "venc", 207 [TEGRA_POWERGATE_VENC] = "venc",
@@ -209,6 +211,23 @@ static const char * const powergate_name[] = {
209 [TEGRA_POWERGATE_MPE] = "mpe", 211 [TEGRA_POWERGATE_MPE] = "mpe",
210}; 212};
211 213
214static const char * const powergate_name_t30[] = {
215 [TEGRA_POWERGATE_CPU] = "cpu0",
216 [TEGRA_POWERGATE_3D] = "3d0",
217 [TEGRA_POWERGATE_VENC] = "venc",
218 [TEGRA_POWERGATE_VDEC] = "vdec",
219 [TEGRA_POWERGATE_PCIE] = "pcie",
220 [TEGRA_POWERGATE_L2] = "l2",
221 [TEGRA_POWERGATE_MPE] = "mpe",
222 [TEGRA_POWERGATE_HEG] = "heg",
223 [TEGRA_POWERGATE_SATA] = "sata",
224 [TEGRA_POWERGATE_CPU1] = "cpu1",
225 [TEGRA_POWERGATE_CPU2] = "cpu2",
226 [TEGRA_POWERGATE_CPU3] = "cpu3",
227 [TEGRA_POWERGATE_CELP] = "celp",
228 [TEGRA_POWERGATE_3D1] = "3d1",
229};
230
212static int powergate_show(struct seq_file *s, void *data) 231static int powergate_show(struct seq_file *s, void *data)
213{ 232{
214 int i; 233 int i;
@@ -237,14 +256,24 @@ static const struct file_operations powergate_fops = {
237int __init tegra_powergate_debugfs_init(void) 256int __init tegra_powergate_debugfs_init(void)
238{ 257{
239 struct dentry *d; 258 struct dentry *d;
240 int err = -ENOMEM;
241 259
242 d = debugfs_create_file("powergate", S_IRUGO, NULL, NULL, 260 switch (tegra_chip_id) {
243 &powergate_fops); 261 case TEGRA20:
244 if (!d) 262 powergate_name = powergate_name_t20;
245 return -ENOMEM; 263 break;
264 case TEGRA30:
265 powergate_name = powergate_name_t30;
266 break;
267 }
268
269 if (powergate_name) {
270 d = debugfs_create_file("powergate", S_IRUGO, NULL, NULL,
271 &powergate_fops);
272 if (!d)
273 return -ENOMEM;
274 }
246 275
247 return err; 276 return 0;
248} 277}
249 278
250#endif 279#endif
diff --git a/arch/arm/mach-ux500/Kconfig b/arch/arm/mach-ux500/Kconfig
index a258996d954b..c77c86c47369 100644
--- a/arch/arm/mach-ux500/Kconfig
+++ b/arch/arm/mach-ux500/Kconfig
@@ -29,6 +29,7 @@ config MACH_MOP500
29 select I2C 29 select I2C
30 select I2C_NOMADIK 30 select I2C_NOMADIK
31 select SOC_BUS 31 select SOC_BUS
32 select REGULATOR_FIXED_VOLTAGE
32 help 33 help
33 Include support for the MOP500 development platform. 34 Include support for the MOP500 development platform.
34 35
diff --git a/arch/arm/mach-ux500/board-mop500-regulators.c b/arch/arm/mach-ux500/board-mop500-regulators.c
index 52426a425787..2a17bc506cff 100644
--- a/arch/arm/mach-ux500/board-mop500-regulators.c
+++ b/arch/arm/mach-ux500/board-mop500-regulators.c
@@ -13,6 +13,21 @@
13#include <linux/regulator/ab8500.h> 13#include <linux/regulator/ab8500.h>
14#include "board-mop500-regulators.h" 14#include "board-mop500-regulators.h"
15 15
16static struct regulator_consumer_supply gpio_en_3v3_consumers[] = {
17 REGULATOR_SUPPLY("vdd33a", "smsc911x.0"),
18};
19
20struct regulator_init_data gpio_en_3v3_regulator = {
21 .constraints = {
22 .name = "EN-3V3",
23 .min_uV = 3300000,
24 .max_uV = 3300000,
25 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
26 },
27 .num_consumer_supplies = ARRAY_SIZE(gpio_en_3v3_consumers),
28 .consumer_supplies = gpio_en_3v3_consumers,
29};
30
16/* 31/*
17 * TPS61052 regulator 32 * TPS61052 regulator
18 */ 33 */
diff --git a/arch/arm/mach-ux500/board-mop500-regulators.h b/arch/arm/mach-ux500/board-mop500-regulators.h
index 94992158d962..78a0642a2206 100644
--- a/arch/arm/mach-ux500/board-mop500-regulators.h
+++ b/arch/arm/mach-ux500/board-mop500-regulators.h
@@ -18,5 +18,6 @@ extern struct ab8500_regulator_reg_init
18ab8500_regulator_reg_init[AB8500_NUM_REGULATOR_REGISTERS]; 18ab8500_regulator_reg_init[AB8500_NUM_REGULATOR_REGISTERS];
19extern struct regulator_init_data ab8500_regulators[AB8500_NUM_REGULATORS]; 19extern struct regulator_init_data ab8500_regulators[AB8500_NUM_REGULATORS];
20extern struct regulator_init_data tps61052_regulator; 20extern struct regulator_init_data tps61052_regulator;
21extern struct regulator_init_data gpio_en_3v3_regulator;
21 22
22#endif 23#endif
diff --git a/arch/arm/mach-ux500/board-mop500.c b/arch/arm/mach-ux500/board-mop500.c
index 1d2e3c6f8b59..c8922bca68a4 100644
--- a/arch/arm/mach-ux500/board-mop500.c
+++ b/arch/arm/mach-ux500/board-mop500.c
@@ -23,6 +23,7 @@
23#include <linux/spi/spi.h> 23#include <linux/spi/spi.h>
24#include <linux/mfd/abx500/ab8500.h> 24#include <linux/mfd/abx500/ab8500.h>
25#include <linux/regulator/ab8500.h> 25#include <linux/regulator/ab8500.h>
26#include <linux/regulator/fixed.h>
26#include <linux/mfd/tc3589x.h> 27#include <linux/mfd/tc3589x.h>
27#include <linux/mfd/tps6105x.h> 28#include <linux/mfd/tps6105x.h>
28#include <linux/mfd/abx500/ab8500-gpio.h> 29#include <linux/mfd/abx500/ab8500-gpio.h>
@@ -76,6 +77,23 @@ static struct platform_device snowball_led_dev = {
76 }, 77 },
77}; 78};
78 79
80static struct fixed_voltage_config snowball_gpio_en_3v3_data = {
81 .supply_name = "EN-3V3",
82 .gpio = SNOWBALL_EN_3V3_ETH_GPIO,
83 .microvolts = 3300000,
84 .enable_high = 1,
85 .init_data = &gpio_en_3v3_regulator,
86 .startup_delay = 5000, /* 1200us */
87};
88
89static struct platform_device snowball_gpio_en_3v3_regulator_dev = {
90 .name = "reg-fixed-voltage",
91 .id = 1,
92 .dev = {
93 .platform_data = &snowball_gpio_en_3v3_data,
94 },
95};
96
79static struct ab8500_gpio_platform_data ab8500_gpio_pdata = { 97static struct ab8500_gpio_platform_data ab8500_gpio_pdata = {
80 .gpio_base = MOP500_AB8500_PIN_GPIO(1), 98 .gpio_base = MOP500_AB8500_PIN_GPIO(1),
81 .irq_base = MOP500_AB8500_VIR_GPIO_IRQ_BASE, 99 .irq_base = MOP500_AB8500_VIR_GPIO_IRQ_BASE,
@@ -565,6 +583,7 @@ static struct platform_device *snowball_platform_devs[] __initdata = {
565 &snowball_led_dev, 583 &snowball_led_dev,
566 &snowball_key_dev, 584 &snowball_key_dev,
567 &snowball_sbnet_dev, 585 &snowball_sbnet_dev,
586 &snowball_gpio_en_3v3_regulator_dev,
568}; 587};
569 588
570static void __init mop500_init_machine(void) 589static void __init mop500_init_machine(void)
diff --git a/arch/arm/mach-ux500/cpu-db8500.c b/arch/arm/mach-ux500/cpu-db8500.c
index db3c52d56ca4..4e59746bcff4 100644
--- a/arch/arm/mach-ux500/cpu-db8500.c
+++ b/arch/arm/mach-ux500/cpu-db8500.c
@@ -18,6 +18,7 @@
18#include <linux/io.h> 18#include <linux/io.h>
19#include <linux/mfd/abx500/ab8500.h> 19#include <linux/mfd/abx500/ab8500.h>
20 20
21#include <asm/pmu.h>
21#include <asm/mach/map.h> 22#include <asm/mach/map.h>
22#include <asm/pmu.h> 23#include <asm/pmu.h>
23#include <plat/gpio-nomadik.h> 24#include <plat/gpio-nomadik.h>
diff --git a/arch/arm/mach-ux500/cpu.c b/arch/arm/mach-ux500/cpu.c
index 17a78ec516ff..8e755638aa76 100644
--- a/arch/arm/mach-ux500/cpu.c
+++ b/arch/arm/mach-ux500/cpu.c
@@ -49,6 +49,8 @@ void __init ux500_init_irq(void)
49 void __iomem *dist_base; 49 void __iomem *dist_base;
50 void __iomem *cpu_base; 50 void __iomem *cpu_base;
51 51
52 gic_arch_extn.flags = IRQCHIP_SKIP_SET_WAKE | IRQCHIP_MASK_ON_SUSPEND;
53
52 if (cpu_is_u8500_family()) { 54 if (cpu_is_u8500_family()) {
53 dist_base = __io_address(U8500_GIC_DIST_BASE); 55 dist_base = __io_address(U8500_GIC_DIST_BASE);
54 cpu_base = __io_address(U8500_GIC_CPU_BASE); 56 cpu_base = __io_address(U8500_GIC_CPU_BASE);
diff --git a/arch/arm/mm/cache-l2x0.c b/arch/arm/mm/cache-l2x0.c
index 2a8e380501e8..577baf7d0a8d 100644
--- a/arch/arm/mm/cache-l2x0.c
+++ b/arch/arm/mm/cache-l2x0.c
@@ -554,7 +554,7 @@ static const struct of_device_id l2x0_ids[] __initconst = {
554int __init l2x0_of_init(u32 aux_val, u32 aux_mask) 554int __init l2x0_of_init(u32 aux_val, u32 aux_mask)
555{ 555{
556 struct device_node *np; 556 struct device_node *np;
557 struct l2x0_of_data *data; 557 const struct l2x0_of_data *data;
558 struct resource res; 558 struct resource res;
559 559
560 np = of_find_matching_node(NULL, l2x0_ids); 560 np = of_find_matching_node(NULL, l2x0_ids);
diff --git a/arch/arm/plat-samsung/devs.c b/arch/arm/plat-samsung/devs.c
index fc49f3dabd76..2195209aa543 100644
--- a/arch/arm/plat-samsung/devs.c
+++ b/arch/arm/plat-samsung/devs.c
@@ -1591,6 +1591,8 @@ struct platform_device s3c64xx_device_spi1 = {
1591void __init s3c64xx_spi1_set_platdata(int (*cfg_gpio)(void), int src_clk_nr, 1591void __init s3c64xx_spi1_set_platdata(int (*cfg_gpio)(void), int src_clk_nr,
1592 int num_cs) 1592 int num_cs)
1593{ 1593{
1594 struct s3c64xx_spi_info pd;
1595
1594 /* Reject invalid configuration */ 1596 /* Reject invalid configuration */
1595 if (!num_cs || src_clk_nr < 0) { 1597 if (!num_cs || src_clk_nr < 0) {
1596 pr_err("%s: Invalid SPI configuration\n", __func__); 1598 pr_err("%s: Invalid SPI configuration\n", __func__);
diff --git a/arch/powerpc/platforms/83xx/suspend.c b/arch/powerpc/platforms/83xx/suspend.c
index 1a046715e461..1d769a29249f 100644
--- a/arch/powerpc/platforms/83xx/suspend.c
+++ b/arch/powerpc/platforms/83xx/suspend.c
@@ -326,7 +326,7 @@ static int pmc_probe(struct platform_device *ofdev)
326 const struct of_device_id *match; 326 const struct of_device_id *match;
327 struct device_node *np = ofdev->dev.of_node; 327 struct device_node *np = ofdev->dev.of_node;
328 struct resource res; 328 struct resource res;
329 struct pmc_type *type; 329 const struct pmc_type *type;
330 int ret = 0; 330 int ret = 0;
331 331
332 match = of_match_device(pmc_match, &ofdev->dev); 332 match = of_match_device(pmc_match, &ofdev->dev);
diff --git a/arch/powerpc/platforms/cell/celleb_pci.c b/arch/powerpc/platforms/cell/celleb_pci.c
index 5822141aa63f..abc8af43ea7c 100644
--- a/arch/powerpc/platforms/cell/celleb_pci.c
+++ b/arch/powerpc/platforms/cell/celleb_pci.c
@@ -472,7 +472,7 @@ int __init celleb_setup_phb(struct pci_controller *phb)
472{ 472{
473 struct device_node *dev = phb->dn; 473 struct device_node *dev = phb->dn;
474 const struct of_device_id *match; 474 const struct of_device_id *match;
475 struct celleb_phb_spec *phb_spec; 475 const struct celleb_phb_spec *phb_spec;
476 int rc; 476 int rc;
477 477
478 match = of_match_node(celleb_phb_match, dev); 478 match = of_match_node(celleb_phb_match, dev);
diff --git a/arch/powerpc/sysdev/fsl_msi.c b/arch/powerpc/sysdev/fsl_msi.c
index 6e097de00e09..51ffafae561e 100644
--- a/arch/powerpc/sysdev/fsl_msi.c
+++ b/arch/powerpc/sysdev/fsl_msi.c
@@ -368,7 +368,7 @@ static int __devinit fsl_of_msi_probe(struct platform_device *dev)
368 int err, i, j, irq_index, count; 368 int err, i, j, irq_index, count;
369 int rc; 369 int rc;
370 const u32 *p; 370 const u32 *p;
371 struct fsl_msi_feature *features; 371 const struct fsl_msi_feature *features;
372 int len; 372 int len;
373 u32 offset; 373 u32 offset;
374 static const u32 all_avail[] = { 0, NR_MSI_IRQS }; 374 static const u32 all_avail[] = { 0, NR_MSI_IRQS };
@@ -502,15 +502,15 @@ static const struct fsl_msi_feature vmpic_msi_feature = {
502static const struct of_device_id fsl_of_msi_ids[] = { 502static const struct of_device_id fsl_of_msi_ids[] = {
503 { 503 {
504 .compatible = "fsl,mpic-msi", 504 .compatible = "fsl,mpic-msi",
505 .data = (void *)&mpic_msi_feature, 505 .data = &mpic_msi_feature,
506 }, 506 },
507 { 507 {
508 .compatible = "fsl,ipic-msi", 508 .compatible = "fsl,ipic-msi",
509 .data = (void *)&ipic_msi_feature, 509 .data = &ipic_msi_feature,
510 }, 510 },
511 { 511 {
512 .compatible = "fsl,vmpic-msi", 512 .compatible = "fsl,vmpic-msi",
513 .data = (void *)&vmpic_msi_feature, 513 .data = &vmpic_msi_feature,
514 }, 514 },
515 {} 515 {}
516}; 516};