Hello Kukjin, On Fri, Oct 31, 2014 at 8:06 AM, Abhilash Kesavan <kesavan.abhilash@xxxxxxxxx> wrote: > 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. Gentle reminder on this. Abhilash > > 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