Abhilash Kesavan wrote:
> 
Hi,

Sorry for late response.

> Remove symbols SERIAL_SAMSUNG_UARTS_4 and SERIAL_SAMSUNG_UARTS which
> select the number of UART ports available on the SoC. Replace the usage
> of SERIAL_SAMSUNG_UARTS in the serial driver with the maximum number of

Well, as you know the number of uart ports are different on each Samsung SoCs
so I don't think just using maximum number of uart ports are possible for new
exynos7 SoC at this moment.

> UART ports possible. Removal of these symbols also helps in Exynos7
> serial enablement.
> 
> Signed-off-by: Abhilash Kesavan <[email protected]>
> Reviewed-by: Tomasz Figa <[email protected]>
> Cc: Greg Kroah-Hartman <[email protected]>
> ---
>  drivers/tty/serial/Kconfig   |   16 ----------------
>  drivers/tty/serial/samsung.c |   11 +++--------
>  drivers/tty/serial/samsung.h |    5 ++++-
>  3 files changed, 7 insertions(+), 25 deletions(-)
> 
> diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
> index 81f6ee7..9fc9092 100644
> --- a/drivers/tty/serial/Kconfig
> +++ b/drivers/tty/serial/Kconfig
> @@ -247,22 +247,6 @@ config SERIAL_SAMSUNG
>         provide all of these ports, depending on how the serial port
>         pins are configured.
> 
> -config SERIAL_SAMSUNG_UARTS_4
> -     bool
> -     depends on PLAT_SAMSUNG
> -     default y if !(CPU_S3C2410 || CPU_S3C2412 || CPU_S3C2440 || CPU_S3C2442)
> -     help
> -       Internal node for the common case of 4 Samsung compatible UARTs
> -
> -config SERIAL_SAMSUNG_UARTS
> -     int
> -     depends on PLAT_SAMSUNG
> -     default 4 if SERIAL_SAMSUNG_UARTS_4 || CPU_S3C2416
> -     default 3
> -     help
> -       Select the number of available UART ports for the Samsung S3C
> -       serial driver
> -
>  config SERIAL_SAMSUNG_DEBUG
>       bool "Samsung SoC serial debug"
>       depends on SERIAL_SAMSUNG && DEBUG_LL
> diff --git a/drivers/tty/serial/samsung.c b/drivers/tty/serial/samsung.c
> index c78f43a..ba04c6d 100644
> --- a/drivers/tty/serial/samsung.c
> +++ b/drivers/tty/serial/samsung.c
> @@ -962,14 +962,14 @@ static struct uart_ops s3c24xx_serial_ops = {
>  static struct uart_driver s3c24xx_uart_drv = {
>       .owner          = THIS_MODULE,
>       .driver_name    = "s3c2410_serial",
> -     .nr             = CONFIG_SERIAL_SAMSUNG_UARTS,
> +     .nr             = MAX_SAMSUNG_UARTS,
>       .cons           = S3C24XX_SERIAL_CONSOLE,
>       .dev_name       = S3C24XX_SERIAL_NAME,
>       .major          = S3C24XX_SERIAL_MAJOR,
>       .minor          = S3C24XX_SERIAL_MINOR,
>  };
> 
> -static struct s3c24xx_uart_port 
> s3c24xx_serial_ports[CONFIG_SERIAL_SAMSUNG_UARTS] = {
> +static struct s3c24xx_uart_port s3c24xx_serial_ports[MAX_SAMSUNG_UARTS] = {
>       [0] = {
>               .port = {
>                       .lock           = 
> __SPIN_LOCK_UNLOCKED(s3c24xx_serial_ports[0].port.lock),
> @@ -992,8 +992,6 @@ static struct s3c24xx_uart_port 
> s3c24xx_serial_ports[CONFIG_SERIAL_SAMSUNG_UARTS
>                       .line           = 1,
>               }
>       },
> -#if CONFIG_SERIAL_SAMSUNG_UARTS > 2
> -
>       [2] = {
>               .port = {
>                       .lock           = 
> __SPIN_LOCK_UNLOCKED(s3c24xx_serial_ports[2].port.lock),
> @@ -1005,8 +1003,6 @@ static struct s3c24xx_uart_port 
> s3c24xx_serial_ports[CONFIG_SERIAL_SAMSUNG_UARTS
>                       .line           = 2,
>               }
>       },
> -#endif
> -#if CONFIG_SERIAL_SAMSUNG_UARTS > 3
>       [3] = {
>               .port = {
>                       .lock           = 
> __SPIN_LOCK_UNLOCKED(s3c24xx_serial_ports[3].port.lock),
> @@ -1018,7 +1014,6 @@ static struct s3c24xx_uart_port 
> s3c24xx_serial_ports[CONFIG_SERIAL_SAMSUNG_UARTS
>                       .line           = 3,
>               }
>       }
> -#endif
>  };
> 
>  /* s3c24xx_serial_resetport
> @@ -1590,7 +1585,7 @@ s3c24xx_serial_console_setup(struct console *co, char 
> *options)
> 
>       /* is this a valid port */
> 
> -     if (co->index == -1 || co->index >= CONFIG_SERIAL_SAMSUNG_UARTS)
> +     if (co->index == -1 || co->index >= MAX_SAMSUNG_UARTS)

If we use max number, second condition is not required...

>               co->index = 0;
> 
>       port = &s3c24xx_serial_ports[co->index].port;
> diff --git a/drivers/tty/serial/samsung.h b/drivers/tty/serial/samsung.h
> index eb071dd..484b49e 100644
> --- a/drivers/tty/serial/samsung.h
> +++ b/drivers/tty/serial/samsung.h
> @@ -1,6 +1,9 @@
>  #ifndef __SAMSUNG_H
>  #define __SAMSUNG_H
> 
> +/* Maximum UART ports available */
> +#define MAX_SAMSUNG_UARTS       4

If there is a Samsung SoC having 5 UARTS, we need to update?

And hmm...maybe we need to keep the useless array sometimes...

> +
>  /*
>   * Driver for Samsung SoC onboard UARTs.
>   *
> @@ -38,7 +41,7 @@ struct s3c24xx_uart_info {
>  struct s3c24xx_serial_drv_data {
>       struct s3c24xx_uart_info        *info;
>       struct s3c2410_uartcfg          *def_cfg;
> -     unsigned int                    fifosize[CONFIG_SERIAL_SAMSUNG_UARTS];
> +     unsigned int                    fifosize[MAX_SAMSUNG_UARTS];
>  };
> 
>  struct s3c24xx_uart_port {
> --
> 1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to