Hi Kukjin, On Tue, Oct 28, 2014 at 5:56 PM, Abhilash Kesavan <kesavan.abhilash@xxxxxxxxx> wrote: > Hi Kukjin > > On Tue, Oct 28, 2014 at 4:01 PM, Kukjin Kim <kgene@xxxxxxxxxx> wrote: >> 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. > > Thanks for the review. > The main reason for me sending this patch was so that we may be able > to re-use the serial driver on arm64 based Exynos7 too. The two > symbols mentioned above which depend on PLAT_SAMSUNG prevent this. I > initially sent a patch which changed the dependency to SERIAL_SAMSUNG > for these 2 symbols. However, Tomasz suggested that a clean-up of > these two symbols would be a better option. > > Please see the discussion of the previous version here: > https://lkml.org/lkml/2014/9/29/702 > > Can you please let me know if the previous version is acceptable ? Kukjin, can you please indicate the approach you would like me to take. Without this serial support is blocked on Exynos7. Thanks, Abhilash > >> >>> UART ports possible. Removal of these symbols also helps in Exynos7 >>> serial enablement. >>> >>> Signed-off-by: Abhilash Kesavan <a.kesavan@xxxxxxxxxxx> >>> Reviewed-by: Tomasz Figa <tomasz.figa@xxxxxxxxx> >>> Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> >>> --- >>> 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? > > Yes, we would need to update the MAX_SAMSUNG_UARTS define for a newer > SoC with 5 uart ports but even without this patch we would have to > modify the SERIAL_SAMSUNG_UARTS symbol to handle 5 ports. >> >> And hmm...maybe we need to keep the useless array sometimes... > > Yes, for the 24xx series with 3 uart ports we would. > > Regards, > Abhilash >> >>> + >>> /* >>> * 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 >> >> >> _______________________________________________ >> linux-arm-kernel mailing list >> linux-arm-kernel@xxxxxxxxxxxxxxxxxxx >> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel -- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html