[ARM] S3C: Update CONFIG_SERIAL_SAMSUNG_UARTS handling
authorBen Dooks <ben-linux@fluff.org>
Mon, 3 Nov 2008 19:51:42 +0000 (19:51 +0000)
committerBen Dooks <ben-linux@fluff.org>
Thu, 18 Dec 2008 16:26:14 +0000 (16:26 +0000)
Fix the usage of CONFIG_SERIAL_SAMSUNG_UARTS in several places
in the kernel where it had been missed. This finishes fixing a
long standing issue where S3C2443 and S3C64XX could not use the
4th UART

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
arch/arm/plat-s3c/init.c
drivers/serial/samsung.c

index 85f086ee930a1f900ffc09321c2889e086fd0cf6..da8d089f6dbc72474831626a20daae55983a7339 100644 (file)
@@ -91,7 +91,7 @@ void __init s3c24xx_init_clocks(int xtal)
 
 static int nr_uarts __initdata = 0;
 
-static struct s3c2410_uartcfg uart_cfgs[3];
+static struct s3c2410_uartcfg uart_cfgs[CONFIG_SERIAL_SAMSUNG_UARTS];
 
 /* s3c24xx_init_uartdevs
  *
index ec873af261016ae2d0717d55bac6ad7033ee3bae..dc7e7ebad23650543cbfed3e693731879756b8a4 100644 (file)
@@ -824,7 +824,7 @@ static struct uart_ops s3c24xx_serial_ops = {
 static struct uart_driver s3c24xx_uart_drv = {
        .owner          = THIS_MODULE,
        .dev_name       = "s3c2410_serial",
-       .nr             = 3,
+       .nr             = CONFIG_SERIAL_SAMSUNG_UARTS,
        .cons           = S3C24XX_SERIAL_CONSOLE,
        .driver_name    = S3C24XX_SERIAL_NAME,
        .major          = S3C24XX_SERIAL_MAJOR,
@@ -1012,8 +1012,11 @@ static int s3c24xx_serial_init_port(struct s3c24xx_uart_port *ourport,
        if (port->mapbase != 0)
                return 0;
 
-       if (cfg->hwport > 3)
-               return -EINVAL;
+       if (cfg->hwport > CONFIG_SERIAL_SAMSUNG_UARTS) {
+               printk(KERN_ERR "%s: port %d bigger than %d\n", __func__,
+                      cfg->hwport, CONFIG_SERIAL_SAMSUNG_UARTS);
+               return -ERANGE;
+       }
 
        /* setup info for port */
        port->dev       = &platdev->dev;