ARM: samsung: allow serial driver to be disabled
authorArnd Bergmann <arnd@arndb.de>
Wed, 26 Feb 2014 16:55:35 +0000 (17:55 +0100)
committerArnd Bergmann <arnd@arndb.de>
Fri, 21 Mar 2014 17:26:20 +0000 (18:26 +0100)
If CONFIG_SERIAL_SAMSUNG is disabled, we run into build errors
with some samsung platforms. This adds a couple of #ifdef
statements to hopefully deal with this more gracefully.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Kukjin Kim <kgene.kim@samsung.com>
Cc: Tomasz Figa <tomasz.figa@gmail.com>
Cc: Ben Dooks <ben-linux@fluff.org>
arch/arm/mach-s3c64xx/irq-pm.c
arch/arm/mach-s5p64x0/irq-pm.c
arch/arm/plat-samsung/init.c

index 1649c0d1c1b80ff6a40f83ceb84881e354a54b1f..ddf65583a5d8153d776c4d9298094d0d4d023865 100644 (file)
@@ -55,7 +55,13 @@ static struct irq_grp_save {
        u32     mask;
 } eint_grp_save[5];
 
-static u32 irq_uart_mask[CONFIG_SERIAL_SAMSUNG_UARTS];
+#ifndef CONFIG_SERIAL_SAMSUNG_UARTS
+#define SERIAL_SAMSUNG_UARTS 0
+#else
+#define        SERIAL_SAMSUNG_UARTS CONFIG_SERIAL_SAMSUNG_UARTS
+#endif
+
+static u32 irq_uart_mask[SERIAL_SAMSUNG_UARTS];
 
 static int s3c64xx_irq_pm_suspend(void)
 {
@@ -66,7 +72,7 @@ static int s3c64xx_irq_pm_suspend(void)
 
        s3c_pm_do_save(irq_save, ARRAY_SIZE(irq_save));
 
-       for (i = 0; i < CONFIG_SERIAL_SAMSUNG_UARTS; i++)
+       for (i = 0; i < SERIAL_SAMSUNG_UARTS; i++)
                irq_uart_mask[i] = __raw_readl(S3C_VA_UARTx(i) + S3C64XX_UINTM);
 
        for (i = 0; i < ARRAY_SIZE(eint_grp_save); i++, grp++) {
@@ -87,7 +93,7 @@ static void s3c64xx_irq_pm_resume(void)
 
        s3c_pm_do_restore(irq_save, ARRAY_SIZE(irq_save));
 
-       for (i = 0; i < CONFIG_SERIAL_SAMSUNG_UARTS; i++)
+       for (i = 0; i < SERIAL_SAMSUNG_UARTS; i++)
                __raw_writel(irq_uart_mask[i], S3C_VA_UARTx(i) + S3C64XX_UINTM);
 
        for (i = 0; i < ARRAY_SIZE(eint_grp_save); i++, grp++) {
index 3e6f2456ee9db9913b134eaa95458327591d689c..d5f0fd66b635a631c478ac77c93e1745554e5090 100644 (file)
@@ -34,7 +34,9 @@ static struct irq_grp_save {
        u32     mask;
 } eint_grp_save[4];
 
+#ifdef CONFIG_SERIAL_SAMSUNG
 static u32 irq_uart_mask[CONFIG_SERIAL_SAMSUNG_UARTS];
+#endif
 
 static int s5p64x0_irq_pm_suspend(void)
 {
@@ -45,8 +47,10 @@ static int s5p64x0_irq_pm_suspend(void)
 
        s3c_pm_do_save(irq_save, ARRAY_SIZE(irq_save));
 
+#ifdef CONFIG_SERIAL_SAMSUNG
        for (i = 0; i < CONFIG_SERIAL_SAMSUNG_UARTS; i++)
                irq_uart_mask[i] = __raw_readl(S3C_VA_UARTx(i) + S3C64XX_UINTM);
+#endif
 
        for (i = 0; i < ARRAY_SIZE(eint_grp_save); i++, grp++) {
                grp->con = __raw_readl(S5P64X0_EINT12CON + (i * 4));
@@ -66,8 +70,10 @@ static void s5p64x0_irq_pm_resume(void)
 
        s3c_pm_do_restore(irq_save, ARRAY_SIZE(irq_save));
 
+#ifdef CONFIG_SERIAL_SAMSUNG
        for (i = 0; i < CONFIG_SERIAL_SAMSUNG_UARTS; i++)
                __raw_writel(irq_uart_mask[i], S3C_VA_UARTx(i) + S3C64XX_UINTM);
+#endif
 
        for (i = 0; i < ARRAY_SIZE(eint_grp_save); i++, grp++) {
                __raw_writel(grp->con, S5P64X0_EINT12CON + (i * 4));
index aa9511b6914a40c92e1cb99c2b544740a8407c24..a30df396ca3439e48ecc02af5879eb8361a6c614 100644 (file)
@@ -97,7 +97,9 @@ void __init s3c24xx_init_clocks(int xtal)
 #if IS_ENABLED(CONFIG_SAMSUNG_ATAGS)
 static int nr_uarts __initdata = 0;
 
+#ifdef CONFIG_SERIAL_SAMSUNG_UARTS
 static struct s3c2410_uartcfg uart_cfgs[CONFIG_SERIAL_SAMSUNG_UARTS];
+#endif
 
 /* s3c24xx_init_uartdevs
  *
@@ -112,6 +114,7 @@ void __init s3c24xx_init_uartdevs(char *name,
                                  struct s3c24xx_uart_resources *res,
                                  struct s3c2410_uartcfg *cfg, int no)
 {
+#ifdef CONFIG_SERIAL_SAMSUNG_UARTS
        struct platform_device *platdev;
        struct s3c2410_uartcfg *cfgptr = uart_cfgs;
        struct s3c24xx_uart_resources *resp;
@@ -134,6 +137,7 @@ void __init s3c24xx_init_uartdevs(char *name,
        }
 
        nr_uarts = no;
+#endif
 }
 
 void __init s3c24xx_init_uarts(struct s3c2410_uartcfg *cfg, int no)