aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-01-17 21:55:56 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2012-01-17 21:55:56 -0500
commit6a488979f574cb4287880db2dbc8b13cee30c5be (patch)
treec5b00bbdc3f1388c1da5ff3595841316cae02c0b /arch
parent57f2685c16fa8e0cb86e4bc7c8ac33bfed943819 (diff)
parent090e648a20a43d71fc2d63e0d8ff8ec6822e2396 (diff)
Merge tag 'arm-soc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
ARM: fixes for ARM platforms Some fallout from the 3.3. merge window as well as a couple bug fixes for older preexisting bugs that seem valid to include at this time: * sched_clock changes broke picoxcell, fix included * BSYM bugs causing issues with thumb2-built kernels on SMP * Missing module.h include on msm. * A collection of bugfixes for samsung platforms that didn't make it into the first pull requests. * tag 'arm-soc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: ARM: make BSYM macro assembly only ARM: highbank: remove incorrect BSYM usage ARM: imx: remove incorrect BSYM usage ARM: exynos: remove incorrect BSYM usage ARM: ux500: add missing ENDPROC to headsmp.S ARM: msm: Add missing ENDPROC to headsmp.S ARM: versatile: Add missing ENDPROC to headsmp.S ARM: EXYNOS: Invert VCLK polarity for framebuffer on ORIGEN ARM: S3C64XX: Fix interrupt configuration for PCA935x on Cragganmore ARM: S3C64XX: Fix the memory mapped GPIOs on Cragganmore ARM: S3C64XX: Remove hsmmc1 from Cragganmore ARM: S3C64XX: Remove unconditional power domain disables ARM: SAMSUNG: Declare struct platform_device in plat/s3c64xx-spi.h ARM: SAMSUNG: dma-ops.h needs mach/dma.h ARM: SAMSUNG: Guard against multiple inclusion of plat/dma.h ARM: picoxcell: fix sched_clock() cleanup fallout ARM: msm: vreg is a module and so needs module.h
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/include/asm/unified.h4
-rw-r--r--arch/arm/mach-exynos/headsmp.S2
-rw-r--r--arch/arm/mach-exynos/mach-origen.c3
-rw-r--r--arch/arm/mach-exynos/platsmp.c5
-rw-r--r--arch/arm/mach-highbank/highbank.c3
-rw-r--r--arch/arm/mach-imx/src.c3
-rw-r--r--arch/arm/mach-msm/headsmp.S1
-rw-r--r--arch/arm/mach-msm/vreg.c1
-rw-r--r--arch/arm/mach-picoxcell/time.c2
-rw-r--r--arch/arm/mach-realview/platsmp.c3
-rw-r--r--arch/arm/mach-s3c64xx/include/mach/crag6410.h1
-rw-r--r--arch/arm/mach-s3c64xx/mach-crag6410.c13
-rw-r--r--arch/arm/mach-s3c64xx/pm.c13
-rw-r--r--arch/arm/mach-ux500/headsmp.S2
-rw-r--r--arch/arm/mach-vexpress/platsmp.c4
-rw-r--r--arch/arm/plat-samsung/include/plat/dma-ops.h1
-rw-r--r--arch/arm/plat-samsung/include/plat/dma.h6
-rw-r--r--arch/arm/plat-samsung/include/plat/s3c64xx-spi.h2
-rw-r--r--arch/arm/plat-versatile/headsmp.S1
19 files changed, 30 insertions, 40 deletions
diff --git a/arch/arm/include/asm/unified.h b/arch/arm/include/asm/unified.h
index bc631161e9c6..f5989f46b4d2 100644
--- a/arch/arm/include/asm/unified.h
+++ b/arch/arm/include/asm/unified.h
@@ -37,8 +37,8 @@
37#define THUMB(x...) x 37#define THUMB(x...) x
38#ifdef __ASSEMBLY__ 38#ifdef __ASSEMBLY__
39#define W(instr) instr.w 39#define W(instr) instr.w
40#endif
41#define BSYM(sym) sym + 1 40#define BSYM(sym) sym + 1
41#endif
42 42
43#else /* !CONFIG_THUMB2_KERNEL */ 43#else /* !CONFIG_THUMB2_KERNEL */
44 44
@@ -49,8 +49,8 @@
49#define THUMB(x...) 49#define THUMB(x...)
50#ifdef __ASSEMBLY__ 50#ifdef __ASSEMBLY__
51#define W(instr) instr 51#define W(instr) instr
52#endif
53#define BSYM(sym) sym 52#define BSYM(sym) sym
53#endif
54 54
55#endif /* CONFIG_THUMB2_KERNEL */ 55#endif /* CONFIG_THUMB2_KERNEL */
56 56
diff --git a/arch/arm/mach-exynos/headsmp.S b/arch/arm/mach-exynos/headsmp.S
index 3cdeb3647542..5364d4bfa8bc 100644
--- a/arch/arm/mach-exynos/headsmp.S
+++ b/arch/arm/mach-exynos/headsmp.S
@@ -36,6 +36,8 @@ pen: ldr r7, [r6]
36 * should now contain the SVC stack for this core 36 * should now contain the SVC stack for this core
37 */ 37 */
38 b secondary_startup 38 b secondary_startup
39ENDPROC(exynos4_secondary_startup)
39 40
41 .align 2
401: .long . 421: .long .
41 .long pen_release 43 .long pen_release
diff --git a/arch/arm/mach-exynos/mach-origen.c b/arch/arm/mach-exynos/mach-origen.c
index 2b11e046d391..0679b8ad2d1e 100644
--- a/arch/arm/mach-exynos/mach-origen.c
+++ b/arch/arm/mach-exynos/mach-origen.c
@@ -597,7 +597,8 @@ static struct s3c_fb_pd_win origen_fb_win0 = {
597static struct s3c_fb_platdata origen_lcd_pdata __initdata = { 597static struct s3c_fb_platdata origen_lcd_pdata __initdata = {
598 .win[0] = &origen_fb_win0, 598 .win[0] = &origen_fb_win0,
599 .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB, 599 .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB,
600 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC, 600 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC |
601 VIDCON1_INV_VCLK,
601 .setup_gpio = exynos4_fimd0_gpio_setup_24bpp, 602 .setup_gpio = exynos4_fimd0_gpio_setup_24bpp,
602}; 603};
603 604
diff --git a/arch/arm/mach-exynos/platsmp.c b/arch/arm/mach-exynos/platsmp.c
index 60bc45e3e709..683aec786b78 100644
--- a/arch/arm/mach-exynos/platsmp.c
+++ b/arch/arm/mach-exynos/platsmp.c
@@ -24,7 +24,6 @@
24#include <asm/cacheflush.h> 24#include <asm/cacheflush.h>
25#include <asm/hardware/gic.h> 25#include <asm/hardware/gic.h>
26#include <asm/smp_scu.h> 26#include <asm/smp_scu.h>
27#include <asm/unified.h>
28 27
29#include <mach/hardware.h> 28#include <mach/hardware.h>
30#include <mach/regs-clock.h> 29#include <mach/regs-clock.h>
@@ -137,7 +136,7 @@ int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle)
137 while (time_before(jiffies, timeout)) { 136 while (time_before(jiffies, timeout)) {
138 smp_rmb(); 137 smp_rmb();
139 138
140 __raw_writel(BSYM(virt_to_phys(exynos4_secondary_startup)), 139 __raw_writel(virt_to_phys(exynos4_secondary_startup),
141 CPU1_BOOT_REG); 140 CPU1_BOOT_REG);
142 gic_raise_softirq(cpumask_of(cpu), 1); 141 gic_raise_softirq(cpumask_of(cpu), 1);
143 142
@@ -192,6 +191,6 @@ void __init platform_smp_prepare_cpus(unsigned int max_cpus)
192 * until it receives a soft interrupt, and then the 191 * until it receives a soft interrupt, and then the
193 * secondary CPU branches to this address. 192 * secondary CPU branches to this address.
194 */ 193 */
195 __raw_writel(BSYM(virt_to_phys(exynos4_secondary_startup)), 194 __raw_writel(virt_to_phys(exynos4_secondary_startup),
196 CPU1_BOOT_REG); 195 CPU1_BOOT_REG);
197} 196}
diff --git a/arch/arm/mach-highbank/highbank.c b/arch/arm/mach-highbank/highbank.c
index 804c4a55f803..7afbe1e55beb 100644
--- a/arch/arm/mach-highbank/highbank.c
+++ b/arch/arm/mach-highbank/highbank.c
@@ -25,7 +25,6 @@
25#include <linux/smp.h> 25#include <linux/smp.h>
26 26
27#include <asm/cacheflush.h> 27#include <asm/cacheflush.h>
28#include <asm/unified.h>
29#include <asm/smp_scu.h> 28#include <asm/smp_scu.h>
30#include <asm/hardware/arm_timer.h> 29#include <asm/hardware/arm_timer.h>
31#include <asm/hardware/timer-sp.h> 30#include <asm/hardware/timer-sp.h>
@@ -76,7 +75,7 @@ void highbank_set_cpu_jump(int cpu, void *jump_addr)
76#ifdef CONFIG_SMP 75#ifdef CONFIG_SMP
77 cpu = cpu_logical_map(cpu); 76 cpu = cpu_logical_map(cpu);
78#endif 77#endif
79 writel(BSYM(virt_to_phys(jump_addr)), HB_JUMP_TABLE_VIRT(cpu)); 78 writel(virt_to_phys(jump_addr), HB_JUMP_TABLE_VIRT(cpu));
80 __cpuc_flush_dcache_area(HB_JUMP_TABLE_VIRT(cpu), 16); 79 __cpuc_flush_dcache_area(HB_JUMP_TABLE_VIRT(cpu), 16);
81 outer_clean_range(HB_JUMP_TABLE_PHYS(cpu), 80 outer_clean_range(HB_JUMP_TABLE_PHYS(cpu),
82 HB_JUMP_TABLE_PHYS(cpu) + 15); 81 HB_JUMP_TABLE_PHYS(cpu) + 15);
diff --git a/arch/arm/mach-imx/src.c b/arch/arm/mach-imx/src.c
index 4bde04f99e38..29bd1243781e 100644
--- a/arch/arm/mach-imx/src.c
+++ b/arch/arm/mach-imx/src.c
@@ -15,7 +15,6 @@
15#include <linux/of.h> 15#include <linux/of.h>
16#include <linux/of_address.h> 16#include <linux/of_address.h>
17#include <linux/smp.h> 17#include <linux/smp.h>
18#include <asm/unified.h>
19 18
20#define SRC_SCR 0x000 19#define SRC_SCR 0x000
21#define SRC_GPR1 0x020 20#define SRC_GPR1 0x020
@@ -43,7 +42,7 @@ void imx_enable_cpu(int cpu, bool enable)
43void imx_set_cpu_jump(int cpu, void *jump_addr) 42void imx_set_cpu_jump(int cpu, void *jump_addr)
44{ 43{
45 cpu = cpu_logical_map(cpu); 44 cpu = cpu_logical_map(cpu);
46 writel_relaxed(BSYM(virt_to_phys(jump_addr)), 45 writel_relaxed(virt_to_phys(jump_addr),
47 src_base + SRC_GPR1 + cpu * 8); 46 src_base + SRC_GPR1 + cpu * 8);
48} 47}
49 48
diff --git a/arch/arm/mach-msm/headsmp.S b/arch/arm/mach-msm/headsmp.S
index 0c631a9f8647..bcd5af223dea 100644
--- a/arch/arm/mach-msm/headsmp.S
+++ b/arch/arm/mach-msm/headsmp.S
@@ -34,6 +34,7 @@ pen: ldr r7, [r6]
34 * should now contain the SVC stack for this core 34 * should now contain the SVC stack for this core
35 */ 35 */
36 b secondary_startup 36 b secondary_startup
37ENDPROC(msm_secondary_startup)
37 38
38 .align 39 .align
391: .long . 401: .long .
diff --git a/arch/arm/mach-msm/vreg.c b/arch/arm/mach-msm/vreg.c
index a9103bc6615f..bd66ed04d6dc 100644
--- a/arch/arm/mach-msm/vreg.c
+++ b/arch/arm/mach-msm/vreg.c
@@ -19,6 +19,7 @@
19#include <linux/device.h> 19#include <linux/device.h>
20#include <linux/init.h> 20#include <linux/init.h>
21#include <linux/debugfs.h> 21#include <linux/debugfs.h>
22#include <linux/module.h>
22#include <linux/string.h> 23#include <linux/string.h>
23#include <mach/vreg.h> 24#include <mach/vreg.h>
24 25
diff --git a/arch/arm/mach-picoxcell/time.c b/arch/arm/mach-picoxcell/time.c
index 6c89cf8ab22e..2ecba6743b8e 100644
--- a/arch/arm/mach-picoxcell/time.c
+++ b/arch/arm/mach-picoxcell/time.c
@@ -67,7 +67,7 @@ static void picoxcell_add_clocksource(struct device_node *source_timer)
67 67
68static void __iomem *sched_io_base; 68static void __iomem *sched_io_base;
69 69
70unsigned u32 notrace picoxcell_read_sched_clock(void) 70static u32 picoxcell_read_sched_clock(void)
71{ 71{
72 return __raw_readl(sched_io_base); 72 return __raw_readl(sched_io_base);
73} 73}
diff --git a/arch/arm/mach-realview/platsmp.c b/arch/arm/mach-realview/platsmp.c
index e83c654a58d0..17c878ddbc70 100644
--- a/arch/arm/mach-realview/platsmp.c
+++ b/arch/arm/mach-realview/platsmp.c
@@ -17,7 +17,6 @@
17#include <asm/hardware/gic.h> 17#include <asm/hardware/gic.h>
18#include <asm/mach-types.h> 18#include <asm/mach-types.h>
19#include <asm/smp_scu.h> 19#include <asm/smp_scu.h>
20#include <asm/unified.h>
21 20
22#include <mach/board-eb.h> 21#include <mach/board-eb.h>
23#include <mach/board-pb11mp.h> 22#include <mach/board-pb11mp.h>
@@ -75,6 +74,6 @@ void __init platform_smp_prepare_cpus(unsigned int max_cpus)
75 * until it receives a soft interrupt, and then the 74 * until it receives a soft interrupt, and then the
76 * secondary CPU branches to this address. 75 * secondary CPU branches to this address.
77 */ 76 */
78 __raw_writel(BSYM(virt_to_phys(versatile_secondary_startup)), 77 __raw_writel(virt_to_phys(versatile_secondary_startup),
79 __io_address(REALVIEW_SYS_FLAGSSET)); 78 __io_address(REALVIEW_SYS_FLAGSSET));
80} 79}
diff --git a/arch/arm/mach-s3c64xx/include/mach/crag6410.h b/arch/arm/mach-s3c64xx/include/mach/crag6410.h
index 5d55ab018b6b..4cb2f951f1e9 100644
--- a/arch/arm/mach-s3c64xx/include/mach/crag6410.h
+++ b/arch/arm/mach-s3c64xx/include/mach/crag6410.h
@@ -21,5 +21,6 @@
21#define CODEC_GPIO_BASE (GPIO_BOARD_START + 8) 21#define CODEC_GPIO_BASE (GPIO_BOARD_START + 8)
22#define GLENFARCLAS_PMIC_GPIO_BASE (GPIO_BOARD_START + 32) 22#define GLENFARCLAS_PMIC_GPIO_BASE (GPIO_BOARD_START + 32)
23#define BANFF_PMIC_GPIO_BASE (GPIO_BOARD_START + 64) 23#define BANFF_PMIC_GPIO_BASE (GPIO_BOARD_START + 64)
24#define MMGPIO_GPIO_BASE (GPIO_BOARD_START + 96)
24 25
25#endif 26#endif
diff --git a/arch/arm/mach-s3c64xx/mach-crag6410.c b/arch/arm/mach-s3c64xx/mach-crag6410.c
index 1cc91d794c97..8077f650eb0e 100644
--- a/arch/arm/mach-s3c64xx/mach-crag6410.c
+++ b/arch/arm/mach-s3c64xx/mach-crag6410.c
@@ -260,6 +260,7 @@ static struct platform_device crag6410_dm9k_device = {
260 260
261static struct resource crag6410_mmgpio_resource[] = { 261static struct resource crag6410_mmgpio_resource[] = {
262 [0] = { 262 [0] = {
263 .name = "dat",
263 .start = S3C64XX_PA_XM0CSN4 + 1, 264 .start = S3C64XX_PA_XM0CSN4 + 1,
264 .end = S3C64XX_PA_XM0CSN4 + 1, 265 .end = S3C64XX_PA_XM0CSN4 + 1,
265 .flags = IORESOURCE_MEM, 266 .flags = IORESOURCE_MEM,
@@ -272,7 +273,7 @@ static struct platform_device crag6410_mmgpio = {
272 .resource = crag6410_mmgpio_resource, 273 .resource = crag6410_mmgpio_resource,
273 .num_resources = ARRAY_SIZE(crag6410_mmgpio_resource), 274 .num_resources = ARRAY_SIZE(crag6410_mmgpio_resource),
274 .dev.platform_data = &(struct bgpio_pdata) { 275 .dev.platform_data = &(struct bgpio_pdata) {
275 .base = -1, 276 .base = MMGPIO_GPIO_BASE,
276 }, 277 },
277}; 278};
278 279
@@ -328,7 +329,6 @@ static struct platform_device wallvdd_device = {
328 329
329static struct platform_device *crag6410_devices[] __initdata = { 330static struct platform_device *crag6410_devices[] __initdata = {
330 &s3c_device_hsmmc0, 331 &s3c_device_hsmmc0,
331 &s3c_device_hsmmc1,
332 &s3c_device_hsmmc2, 332 &s3c_device_hsmmc2,
333 &s3c_device_i2c0, 333 &s3c_device_i2c0,
334 &s3c_device_i2c1, 334 &s3c_device_i2c1,
@@ -355,7 +355,7 @@ static struct platform_device *crag6410_devices[] __initdata = {
355 355
356static struct pca953x_platform_data crag6410_pca_data = { 356static struct pca953x_platform_data crag6410_pca_data = {
357 .gpio_base = PCA935X_GPIO_BASE, 357 .gpio_base = PCA935X_GPIO_BASE,
358 .irq_base = 0, 358 .irq_base = -1,
359}; 359};
360 360
361/* VDDARM is controlled by DVS1 connected to GPK(0) */ 361/* VDDARM is controlled by DVS1 connected to GPK(0) */
@@ -683,12 +683,6 @@ static struct s3c_sdhci_platdata crag6410_hsmmc2_pdata = {
683 .cd_type = S3C_SDHCI_CD_PERMANENT, 683 .cd_type = S3C_SDHCI_CD_PERMANENT,
684}; 684};
685 685
686static struct s3c_sdhci_platdata crag6410_hsmmc1_pdata = {
687 .max_width = 4,
688 .cd_type = S3C_SDHCI_CD_GPIO,
689 .ext_cd_gpio = S3C64XX_GPF(11),
690};
691
692static void crag6410_cfg_sdhci0(struct platform_device *dev, int width) 686static void crag6410_cfg_sdhci0(struct platform_device *dev, int width)
693{ 687{
694 /* Set all the necessary GPG pins to special-function 2 */ 688 /* Set all the necessary GPG pins to special-function 2 */
@@ -723,7 +717,6 @@ static void __init crag6410_machine_init(void)
723 gpio_direction_output(S3C64XX_GPF(10), 1); 717 gpio_direction_output(S3C64XX_GPF(10), 1);
724 718
725 s3c_sdhci0_set_platdata(&crag6410_hsmmc0_pdata); 719 s3c_sdhci0_set_platdata(&crag6410_hsmmc0_pdata);
726 s3c_sdhci1_set_platdata(&crag6410_hsmmc1_pdata);
727 s3c_sdhci2_set_platdata(&crag6410_hsmmc2_pdata); 720 s3c_sdhci2_set_platdata(&crag6410_hsmmc2_pdata);
728 721
729 s3c_i2c0_set_platdata(&i2c0_pdata); 722 s3c_i2c0_set_platdata(&i2c0_pdata);
diff --git a/arch/arm/mach-s3c64xx/pm.c b/arch/arm/mach-s3c64xx/pm.c
index 055dac90e0e2..7d3e81b9dd06 100644
--- a/arch/arm/mach-s3c64xx/pm.c
+++ b/arch/arm/mach-s3c64xx/pm.c
@@ -346,23 +346,10 @@ int __init s3c64xx_pm_init(void)
346 346
347static __init int s3c64xx_pm_initcall(void) 347static __init int s3c64xx_pm_initcall(void)
348{ 348{
349 u32 val;
350
351 pm_cpu_prep = s3c64xx_pm_prepare; 349 pm_cpu_prep = s3c64xx_pm_prepare;
352 pm_cpu_sleep = s3c64xx_cpu_suspend; 350 pm_cpu_sleep = s3c64xx_cpu_suspend;
353 pm_uart_udivslot = 1; 351 pm_uart_udivslot = 1;
354 352
355 /*
356 * Unconditionally disable power domains that contain only
357 * blocks which have no mainline driver support.
358 */
359 val = __raw_readl(S3C64XX_NORMAL_CFG);
360 val &= ~(S3C64XX_NORMALCFG_DOMAIN_G_ON |
361 S3C64XX_NORMALCFG_DOMAIN_V_ON |
362 S3C64XX_NORMALCFG_DOMAIN_I_ON |
363 S3C64XX_NORMALCFG_DOMAIN_P_ON);
364 __raw_writel(val, S3C64XX_NORMAL_CFG);
365
366#ifdef CONFIG_S3C_PM_DEBUG_LED_SMDK 353#ifdef CONFIG_S3C_PM_DEBUG_LED_SMDK
367 gpio_request(S3C64XX_GPN(12), "DEBUG_LED0"); 354 gpio_request(S3C64XX_GPN(12), "DEBUG_LED0");
368 gpio_request(S3C64XX_GPN(13), "DEBUG_LED1"); 355 gpio_request(S3C64XX_GPN(13), "DEBUG_LED1");
diff --git a/arch/arm/mach-ux500/headsmp.S b/arch/arm/mach-ux500/headsmp.S
index 64fa451edcfd..08da5589bcd8 100644
--- a/arch/arm/mach-ux500/headsmp.S
+++ b/arch/arm/mach-ux500/headsmp.S
@@ -32,6 +32,8 @@ pen: ldr r7, [r6]
32 * should now contain the SVC stack for this core 32 * should now contain the SVC stack for this core
33 */ 33 */
34 b secondary_startup 34 b secondary_startup
35ENDPROC(u8500_secondary_startup)
35 36
37 .align 2
361: .long . 381: .long .
37 .long pen_release 39 .long pen_release
diff --git a/arch/arm/mach-vexpress/platsmp.c b/arch/arm/mach-vexpress/platsmp.c
index 2b5f7ac001a3..124ffb169093 100644
--- a/arch/arm/mach-vexpress/platsmp.c
+++ b/arch/arm/mach-vexpress/platsmp.c
@@ -13,8 +13,6 @@
13#include <linux/smp.h> 13#include <linux/smp.h>
14#include <linux/io.h> 14#include <linux/io.h>
15 15
16#include <asm/unified.h>
17
18#include <mach/motherboard.h> 16#include <mach/motherboard.h>
19#define V2M_PA_CS7 0x10000000 17#define V2M_PA_CS7 0x10000000
20 18
@@ -46,6 +44,6 @@ void __init platform_smp_prepare_cpus(unsigned int max_cpus)
46 * secondary CPU branches to this address. 44 * secondary CPU branches to this address.
47 */ 45 */
48 writel(~0, MMIO_P2V(V2M_SYS_FLAGSCLR)); 46 writel(~0, MMIO_P2V(V2M_SYS_FLAGSCLR));
49 writel(BSYM(virt_to_phys(versatile_secondary_startup)), 47 writel(virt_to_phys(versatile_secondary_startup),
50 MMIO_P2V(V2M_SYS_FLAGSSET)); 48 MMIO_P2V(V2M_SYS_FLAGSSET));
51} 49}
diff --git a/arch/arm/plat-samsung/include/plat/dma-ops.h b/arch/arm/plat-samsung/include/plat/dma-ops.h
index 70b6325edb99..71a6827c7706 100644
--- a/arch/arm/plat-samsung/include/plat/dma-ops.h
+++ b/arch/arm/plat-samsung/include/plat/dma-ops.h
@@ -14,6 +14,7 @@
14#define __SAMSUNG_DMA_OPS_H_ __FILE__ 14#define __SAMSUNG_DMA_OPS_H_ __FILE__
15 15
16#include <linux/dmaengine.h> 16#include <linux/dmaengine.h>
17#include <mach/dma.h>
17 18
18struct samsung_dma_prep_info { 19struct samsung_dma_prep_info {
19 enum dma_transaction_type cap; 20 enum dma_transaction_type cap;
diff --git a/arch/arm/plat-samsung/include/plat/dma.h b/arch/arm/plat-samsung/include/plat/dma.h
index b9061128abde..7b02143ccd9a 100644
--- a/arch/arm/plat-samsung/include/plat/dma.h
+++ b/arch/arm/plat-samsung/include/plat/dma.h
@@ -10,6 +10,9 @@
10 * published by the Free Software Foundation. 10 * published by the Free Software Foundation.
11*/ 11*/
12 12
13#ifndef __PLAT_DMA_H
14#define __PLAT_DMA_H
15
13#include <linux/dma-mapping.h> 16#include <linux/dma-mapping.h>
14 17
15enum s3c2410_dma_buffresult { 18enum s3c2410_dma_buffresult {
@@ -122,5 +125,6 @@ extern int s3c2410_dma_getposition(enum dma_ch channel,
122extern int s3c2410_dma_set_opfn(enum dma_ch, s3c2410_dma_opfn_t rtn); 125extern int s3c2410_dma_set_opfn(enum dma_ch, s3c2410_dma_opfn_t rtn);
123extern int s3c2410_dma_set_buffdone_fn(enum dma_ch, s3c2410_dma_cbfn_t rtn); 126extern int s3c2410_dma_set_buffdone_fn(enum dma_ch, s3c2410_dma_cbfn_t rtn);
124 127
125
126#include <plat/dma-ops.h> 128#include <plat/dma-ops.h>
129
130#endif
diff --git a/arch/arm/plat-samsung/include/plat/s3c64xx-spi.h b/arch/arm/plat-samsung/include/plat/s3c64xx-spi.h
index aea68b60ef98..fa95e9a00972 100644
--- a/arch/arm/plat-samsung/include/plat/s3c64xx-spi.h
+++ b/arch/arm/plat-samsung/include/plat/s3c64xx-spi.h
@@ -11,6 +11,8 @@
11#ifndef __S3C64XX_PLAT_SPI_H 11#ifndef __S3C64XX_PLAT_SPI_H
12#define __S3C64XX_PLAT_SPI_H 12#define __S3C64XX_PLAT_SPI_H
13 13
14struct platform_device;
15
14/** 16/**
15 * struct s3c64xx_spi_csinfo - ChipSelect description 17 * struct s3c64xx_spi_csinfo - ChipSelect description
16 * @fb_delay: Slave specific feedback delay. 18 * @fb_delay: Slave specific feedback delay.
diff --git a/arch/arm/plat-versatile/headsmp.S b/arch/arm/plat-versatile/headsmp.S
index d397a1fb2f54..dd703ef09b8d 100644
--- a/arch/arm/plat-versatile/headsmp.S
+++ b/arch/arm/plat-versatile/headsmp.S
@@ -38,3 +38,4 @@ pen: ldr r7, [r6]
38 .align 38 .align
391: .long . 391: .long .
40 .long pen_release 40 .long pen_release
41ENDPROC(versatile_secondary_startup)