Skip to contentSkip to conversation

arch: arm: samsung: Clean-up usage of CONFIG_SERIAL_SAMSUNG_UARTS symbol

PATCH New Abhilash Kesavan 3 participants 11 messages Oct 1, 2014 – Nov 10, 2014

Subsystems (4)
lore
Share & tools
lore
#0 lore raw

PATCH v2 1/2 arch: arm: samsung: Clean-up usage of CONFIG_SERIAL_SAMSUNG_UARTS symbol

Remove usage of CONFIG_SERIAL_SAMSUNG_UARTS symbol from platform specific code.

---
Changes in v2:
- Re-ordered the patches
- Added a define for number of uart ports in arch/arm/plat-samsung/init.c
- Removed CONFIG_SERIAL_SAMSUNG #ifdef in arch/arm/plat-samsung/init.c

Build tested using s3c2410_defconfig, s3c6400_defconfig, exynos_defconfig and arm64's defconfig with and without the serial driver enabled. Boot tested on Exynos5420 and Exynos7.

 arch/arm/mach-s3c64xx/irq-pm.c |    6 +++---
 arch/arm/plat-samsung/init.c   |    7 ++-----
 2 files changed, 5 insertions(+), 8 deletions(-)
arch/arm/mach-s3c64xx/irq-pm.c +3 -3
index ae4ea76..b20024e 100644
@@ -55,10 +55,10 @@ static struct irq_grp_save {
 	u32	mask;
 } eint_grp_save[5];
 
-#ifndef CONFIG_SERIAL_SAMSUNG_UARTS
-#define SERIAL_SAMSUNG_UARTS 0
+#ifndef CONFIG_SERIAL_SAMSUNG
+#define SERIAL_SAMSUNG_UARTS	0
 #else
-#define	SERIAL_SAMSUNG_UARTS CONFIG_SERIAL_SAMSUNG_UARTS
+#define SERIAL_SAMSUNG_UARTS	4
 #endif
 
 static u32 irq_uart_mask[SERIAL_SAMSUNG_UARTS];
arch/arm/plat-samsung/init.c +2 -5
index 11fbbc2..6114942 100644
@@ -92,10 +92,9 @@ void __init s3c24xx_init_clocks(int xtal)
 /* uart management */
 #if IS_ENABLED(CONFIG_SAMSUNG_ATAGS)
 static int nr_uarts __initdata = 0;
+#define MAX_UART_PORTS	4
 
-#ifdef CONFIG_SERIAL_SAMSUNG_UARTS
-static struct s3c2410_uartcfg uart_cfgs[CONFIG_SERIAL_SAMSUNG_UARTS];
-#endif
+static struct s3c2410_uartcfg uart_cfgs[MAX_UART_PORTS];
 
 /* s3c24xx_init_uartdevs
  *
@@ -110,7 +109,6 @@ 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;
@@ -133,7 +131,6 @@ void __init s3c24xx_init_uartdevs(char *name,
 	}
 
 	nr_uarts = no;
-#endif
 }
 
 void __init s3c24xx_init_uarts(struct s3c2410_uartcfg *cfg, int no)
Signature · 1 line
1.7.9.5
#1 lore raw

PATCH v2 2/2 tty: serial: samsung: Clean-up selection of number of available UARTs

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 UART ports possible. Removal of these symbols also helps in Exynos7 serial enablement.

---
 drivers/tty/serial/Kconfig   |   16 ----------------
 drivers/tty/serial/samsung.c |   11 +++--------
 drivers/tty/serial/samsung.h |    5 ++++-
 3 files changed, 7 insertions(+), 25 deletions(-)
drivers/tty/serial/Kconfig +0 -16
index 81f6ee7..9fc9092 100644
@@ -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
drivers/tty/serial/samsung.c +3 -8
index c78f43a..ba04c6d 100644
@@ -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)
 		co->index = 0;
 
 	port = &s3c24xx_serial_ports[co->index].port;
drivers/tty/serial/samsung.h +4 -1
index eb071dd..484b49e 100644
@@ -1,6 +1,9 @@
 #ifndef __SAMSUNG_H
 #define __SAMSUNG_H
 
+/* Maximum UART ports available */
+#define MAX_SAMSUNG_UARTS       4
+
 /*
  * 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 {
Signature · 1 line
1.7.9.5
#2 lore raw

PATCH v2 2/2 tty: serial: samsung: Clean-up selection of number of available UARTs

Quoted 1 line · Abhilash Kesavan

Hi,

Sorry for late response.

Quoted 3 lines

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.

Quoted 87 lines

UART ports possible. Removal of these symbols also helps in Exynos7 serial enablement.

---
 drivers/tty/serial/Kconfig   |   16 ----------------
 drivers/tty/serial/samsung.c |   11 +++--------
 drivers/tty/serial/samsung.h |    5 ++++-
 3 files changed, 7 insertions(+), 25 deletions(-)
drivers/tty/serial/Kconfig +0 -16
index 81f6ee7..9fc9092 100644
@@ -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
drivers/tty/serial/samsung.c +2 -7
index c78f43a..ba04c6d 100644
@@ -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

drivers/tty/serial/samsung.c s3c24xx_serial_console_setup(struct console *co, char *options) · line 1588

Quoted 5 lines
drivers/tty/serial/samsung.c +1 -1
@@ -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...

drivers/tty/serial/samsung.h line 5

Quoted 13 lines
drivers/tty/serial/samsung.c +0 -0
 		co->index = 0;
 
 	port = &s3c24xx_serial_ports[co->index].port;
drivers/tty/serial/samsung.h +2 -0
index eb071dd..484b49e 100644
@@ -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...

Quoted 15 lines
drivers/tty/serial/samsung.h +2 -2
+
 /*
  * 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

#3 lore raw

PATCH v2 2/2 tty: serial: samsung: Clean-up selection of number of available UARTs

Hi Kukjin

Quoted 6 lines · Kukjin Kim
Quoted 1 line · Abhilash Kesavan

Hi,

Sorry for late response.

Quoted 7 lines
Quoted 3 lines

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 ?

Quoted 107 lines
Quoted 88 lines

UART ports possible. Removal of these symbols also helps in Exynos7 serial enablement.

---
 drivers/tty/serial/Kconfig   |   16 ----------------
 drivers/tty/serial/samsung.c |   11 +++--------
 drivers/tty/serial/samsung.h |    5 ++++-
 3 files changed, 7 insertions(+), 25 deletions(-)
drivers/tty/serial/Kconfig +0 -16
index 81f6ee7..9fc9092 100644
@@ -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
drivers/tty/serial/samsung.c +2 -7
index c78f43a..ba04c6d 100644
@@ -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

drivers/tty/serial/samsung.c s3c24xx_serial_console_setup(struct console *co, char *options) · line 1588

Quoted 5 lines
drivers/tty/serial/samsung.c +1 -1
@@ -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...

Quoted 11 lines
drivers/tty/serial/samsung.c +0 -0
              co->index = 0;
 
      port = &s3c24xx_serial_ports[co->index].port;
drivers/tty/serial/samsung.h +0 -0
index eb071dd..484b49e 100644
@@ -1,6 +1,9 @@
 #ifndef __SAMSUNG_H
 #define __SAMSUNG_H
 
Quoted 4 lines

drivers/tty/serial/samsung.h line 5

Quoted 2 lines
drivers/tty/serial/samsung.h +2 -0
+/* 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.

Quoted 2 lines

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

Yes, for the 24xx series with 3 uart ports we would.

Regards,
Abhilash

Quoted 22 lines
Quoted 15 lines
drivers/tty/serial/samsung.h +2 -2
+
 /*
  * 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 {
--
Quoted 1 line

1.7.9.5

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

#4 lore raw

PATCH v2 2/2 tty: serial: samsung: Clean-up selection of number of available UARTs

Hi Kukjin,

Quoted 25 lines · Abhilash Kesavan

Hi Kukjin

Quoted 6 lines · Kukjin Kim
Quoted 1 line · Abhilash Kesavan

Hi,

Sorry for late response.

Quoted 7 lines
Quoted 3 lines

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.

Quoted 4 lines

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

Quoted 145 lines
Quoted 108 lines
Quoted 89 lines

UART ports possible. Removal of these symbols also helps in Exynos7 serial enablement.

---
 drivers/tty/serial/Kconfig   |   16 ----------------
 drivers/tty/serial/samsung.c |   11 +++--------
 drivers/tty/serial/samsung.h |    5 ++++-
 3 files changed, 7 insertions(+), 25 deletions(-)
drivers/tty/serial/Kconfig +0 -16
index 81f6ee7..9fc9092 100644
@@ -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
drivers/tty/serial/samsung.c +2 -7
index c78f43a..ba04c6d 100644
@@ -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

drivers/tty/serial/samsung.c s3c24xx_serial_console_setup(struct console *co, char *options) · line 1588

Quoted 5 lines
drivers/tty/serial/samsung.c +1 -1
@@ -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...

Quoted 11 lines
drivers/tty/serial/samsung.c +0 -0
              co->index = 0;
 
      port = &s3c24xx_serial_ports[co->index].port;
drivers/tty/serial/samsung.h +0 -0
index eb071dd..484b49e 100644
@@ -1,6 +1,9 @@
 #ifndef __SAMSUNG_H
 #define __SAMSUNG_H
 
Quoted 4 lines

drivers/tty/serial/samsung.h line 5

Quoted 2 lines
drivers/tty/serial/samsung.h +2 -0
+/* 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.

Quoted 2 lines

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

Yes, for the 24xx series with 3 uart ports we would.

Regards,
Abhilash

Quoted 22 lines
Quoted 15 lines
drivers/tty/serial/samsung.h +2 -2
+
 /*
  * 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 {
--
Quoted 1 line

1.7.9.5

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

#5 lore raw

PATCH v2 2/2 tty: serial: samsung: Clean-up selection of number of available UARTs

Hello Kukjin,

Quoted 29 lines · Abhilash Kesavan

Hi Kukjin,

Quoted 25 lines · Abhilash Kesavan

Hi Kukjin

Quoted 6 lines · Kukjin Kim
Quoted 1 line · Abhilash Kesavan

Hi,

Sorry for late response.

Quoted 7 lines
Quoted 3 lines

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.

Quoted 7 lines
Quoted 4 lines

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

Quoted 148 lines

Thanks,
Abhilash

Quoted 145 lines
Quoted 108 lines
Quoted 89 lines

UART ports possible. Removal of these symbols also helps in Exynos7 serial enablement.

---
 drivers/tty/serial/Kconfig   |   16 ----------------
 drivers/tty/serial/samsung.c |   11 +++--------
 drivers/tty/serial/samsung.h |    5 ++++-
 3 files changed, 7 insertions(+), 25 deletions(-)
drivers/tty/serial/Kconfig +0 -16
index 81f6ee7..9fc9092 100644
@@ -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
drivers/tty/serial/samsung.c +2 -7
index c78f43a..ba04c6d 100644
@@ -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

drivers/tty/serial/samsung.c s3c24xx_serial_console_setup(struct console *co, char *options) · line 1588

Quoted 5 lines
drivers/tty/serial/samsung.c +1 -1
@@ -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...

Quoted 11 lines
drivers/tty/serial/samsung.c +0 -0
              co->index = 0;
 
      port = &s3c24xx_serial_ports[co->index].port;
drivers/tty/serial/samsung.h +0 -0
index eb071dd..484b49e 100644
@@ -1,6 +1,9 @@
 #ifndef __SAMSUNG_H
 #define __SAMSUNG_H
 
Quoted 4 lines

drivers/tty/serial/samsung.h line 5

Quoted 2 lines
drivers/tty/serial/samsung.h +2 -0
+/* 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.

Quoted 2 lines

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

Yes, for the 24xx series with 3 uart ports we would.

Regards,
Abhilash

Quoted 22 lines
Quoted 15 lines
drivers/tty/serial/samsung.h +2 -2
+
 /*
  * 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 {
--
Quoted 1 line

1.7.9.5

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

#6 lore raw

PATCH v2 2/2 tty: serial: samsung: Clean-up selection of number of available UARTs

Quoted 36 lines · Abhilash Kesavan

Hello Kukjin,

Quoted 32 lines · Abhilash Kesavan

Hi Kukjin,

Quoted 28 lines · Abhilash Kesavan

Hi Kukjin

Quoted 6 lines · Kukjin Kim
Quoted 1 line · Abhilash Kesavan

Hi,

Sorry for late response.

Quoted 7 lines
Quoted 3 lines

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

Quoted 6 lines
Quoted 4 lines
Quoted 1 line

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.

Hi Kukjin,

I don't mean to nag, but this another reminder to review this. Please let me know if you are too busy to have a look at this or require some more inputs from me.

Regards,
Abhilash

Quoted 150 lines

Abhilash

Quoted 148 lines

Thanks,
Abhilash

Quoted 145 lines
Quoted 108 lines
Quoted 89 lines

UART ports possible. Removal of these symbols also helps in Exynos7 serial enablement.

---
 drivers/tty/serial/Kconfig   |   16 ----------------
 drivers/tty/serial/samsung.c |   11 +++--------
 drivers/tty/serial/samsung.h |    5 ++++-
 3 files changed, 7 insertions(+), 25 deletions(-)
drivers/tty/serial/Kconfig +0 -16
index 81f6ee7..9fc9092 100644
@@ -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
drivers/tty/serial/samsung.c +2 -7
index c78f43a..ba04c6d 100644
@@ -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

drivers/tty/serial/samsung.c s3c24xx_serial_console_setup(struct console *co, char *options) · line 1588

Quoted 5 lines
drivers/tty/serial/samsung.c +1 -1
@@ -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...

Quoted 11 lines
drivers/tty/serial/samsung.c +0 -0
              co->index = 0;
 
      port = &s3c24xx_serial_ports[co->index].port;
drivers/tty/serial/samsung.h +0 -0
index eb071dd..484b49e 100644
@@ -1,6 +1,9 @@
 #ifndef __SAMSUNG_H
 #define __SAMSUNG_H
 
Quoted 4 lines

drivers/tty/serial/samsung.h line 5

Quoted 2 lines
drivers/tty/serial/samsung.h +2 -0
+/* 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.

Quoted 2 lines

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

Yes, for the 24xx series with 3 uart ports we would.

Regards,
Abhilash

Quoted 22 lines
Quoted 15 lines
drivers/tty/serial/samsung.h +2 -2
+
 /*
  * 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 {
--
Quoted 1 line

1.7.9.5

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

#7 lore raw

PATCH v2 2/2 tty: serial: samsung: Clean-up selection of number of available UARTs

Quoted 39 lines · Abhilash Kesavan
Quoted 36 lines · Abhilash Kesavan

Hello Kukjin,

Quoted 32 lines · Abhilash Kesavan

Hi Kukjin,

Quoted 28 lines · Abhilash Kesavan

Hi Kukjin

Quoted 6 lines · Kukjin Kim
Quoted 1 line · Abhilash Kesavan

Hi,

Sorry for late response.

Quoted 7 lines
Quoted 3 lines

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

Quoted 9 lines
Quoted 6 lines
Quoted 4 lines
Quoted 1 line

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.

Hi Kukjin,

Hi Abhilash,

Quoted 1 line

I don't mean to nag, but this another reminder to review this.

Yeah, it's no problem for me ;)

Quoted 3 lines

Please let me know if you are too busy to have a look at this or require some more inputs from me.

Since I'm still having some objection on 2nd version, how about keeping current config options for serial for now and changing the dependency to SERIAL_SAMSUNG? And if required later, we can look into removal these config options later.

Thanks,
Kukjin

#8 lore raw

PATCH v2 2/2 tty: serial: samsung: Clean-up selection of number of available UARTs

Hi Kukjin,

Quoted 53 lines · Kukjin Kim
Quoted 39 lines · Abhilash Kesavan
Quoted 36 lines · Abhilash Kesavan

Hello Kukjin,

Quoted 32 lines · Abhilash Kesavan

Hi Kukjin,

Quoted 28 lines · Abhilash Kesavan

Hi Kukjin

Quoted 6 lines · Kukjin Kim
Quoted 1 line · Abhilash Kesavan

Hi,

Sorry for late response.

Quoted 7 lines
Quoted 3 lines

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

Quoted 9 lines
Quoted 6 lines
Quoted 4 lines
Quoted 1 line

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.

Hi Kukjin,

Hi Abhilash,

Quoted 1 line

I don't mean to nag, but this another reminder to review this.

Quoted 8 lines

Yeah, it's no problem for me ;)

Quoted 3 lines

Please let me know if you are too busy to have a look at this or require some more inputs from me.

Since I'm still having some objection on 2nd version, how about keeping current config options for serial for now and changing the dependency to SERIAL_SAMSUNG? And if required later, we can look into removal these config options later.

OK, thanks. My earlier patch [1] which does this still applies cleanly on linux-next. I will request Greg to review the patch.

I had a question regarding the merging of pending exynos7 patches.

The clock exynos7 support will go through your tree (according to [2]) and so must the exynos7 arch/dts support [3] due to the related dependencies. As part of the arch/dts support we are enabling the samsung serial driver in arm64 defconfig. This will cause build breakages without [1] being applied. So, I assume all 3 patch-sets will go through your tree once they have been ack'ed or is there some other way ?

[1] serial: samsung: Fix serial config dependencies for exynos7
https://patchwork.kernel.org/patch/4993521/

[2] GIT PULL] Samsung clock changes for 3.19
http://www.spinics.net/lists/arm-kernel/msg373962.html

[3] [PATCH v7 0/7] Enable support for Samsung Exynos7 SoC
http://www.spinics.net/lists/arm-kernel/msg375961.html

Quoted 4 lines

Thanks,
Kukjin

#9 lore raw

PATCH v2 1/2 arch: arm: samsung: Clean-up usage of CONFIG_SERIAL_SAMSUNG_UARTS symbol

In reply to Abhilash Kesavan

Hi Kukjin,

Quoted 5 lines · Abhilash Kesavan

Remove usage of CONFIG_SERIAL_SAMSUNG_UARTS symbol from platform specific code.

Can you please pick this up if it looks OK ?

Abhilash

Quoted 68 lines

---
Changes in v2:
- Re-ordered the patches
- Added a define for number of uart ports in arch/arm/plat-samsung/init.c
- Removed CONFIG_SERIAL_SAMSUNG #ifdef in arch/arm/plat-samsung/init.c

Build tested using s3c2410_defconfig, s3c6400_defconfig, exynos_defconfig and arm64's defconfig with and without the serial driver enabled. Boot tested on Exynos5420 and Exynos7.

 arch/arm/mach-s3c64xx/irq-pm.c |    6 +++---
 arch/arm/plat-samsung/init.c   |    7 ++-----
 2 files changed, 5 insertions(+), 8 deletions(-)
arch/arm/mach-s3c64xx/irq-pm.c +3 -3
index ae4ea76..b20024e 100644
@@ -55,10 +55,10 @@ static struct irq_grp_save {
        u32     mask;
 } eint_grp_save[5];
 
-#ifndef CONFIG_SERIAL_SAMSUNG_UARTS
-#define SERIAL_SAMSUNG_UARTS 0
+#ifndef CONFIG_SERIAL_SAMSUNG
+#define SERIAL_SAMSUNG_UARTS   0
 #else
-#define        SERIAL_SAMSUNG_UARTS CONFIG_SERIAL_SAMSUNG_UARTS
+#define SERIAL_SAMSUNG_UARTS   4
 #endif
 
 static u32 irq_uart_mask[SERIAL_SAMSUNG_UARTS];
arch/arm/plat-samsung/init.c +2 -6
index 11fbbc2..6114942 100644
@@ -92,10 +92,9 @@ void __init s3c24xx_init_clocks(int xtal)
 /* uart management */
 #if IS_ENABLED(CONFIG_SAMSUNG_ATAGS)
 static int nr_uarts __initdata = 0;
+#define MAX_UART_PORTS 4
 
-#ifdef CONFIG_SERIAL_SAMSUNG_UARTS
-static struct s3c2410_uartcfg uart_cfgs[CONFIG_SERIAL_SAMSUNG_UARTS];
-#endif
+static struct s3c2410_uartcfg uart_cfgs[MAX_UART_PORTS];
 
 /* s3c24xx_init_uartdevs
  *
@@ -110,7 +109,6 @@ 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;
@@ -133,7 +131,6 @@ void __init s3c24xx_init_uartdevs(char *name,
        }
 
        nr_uarts = no;
-#endif
 }
 
 void __init s3c24xx_init_uarts(struct s3c2410_uartcfg *cfg, int no)
--

1.7.9.5

#10 lore raw

PATCH v2 1/2 arch: arm: samsung: Clean-up usage of CONFIG_SERIAL_SAMSUNG_UARTS symbol

Hi Kukjin,

Quoted 10 lines · Abhilash Kesavan

Hi Kukjin,

Quoted 5 lines · Abhilash Kesavan

Remove usage of CONFIG_SERIAL_SAMSUNG_UARTS symbol from platform specific code.

Can you please pick this up if it looks OK ?

A gentle reminder on these 2 patches.

Abhilash

Quoted 70 lines

Abhilash

Quoted 68 lines

---
Changes in v2:
- Re-ordered the patches
- Added a define for number of uart ports in arch/arm/plat-samsung/init.c
- Removed CONFIG_SERIAL_SAMSUNG #ifdef in arch/arm/plat-samsung/init.c

Build tested using s3c2410_defconfig, s3c6400_defconfig, exynos_defconfig and arm64's defconfig with and without the serial driver enabled. Boot tested on Exynos5420 and Exynos7.

 arch/arm/mach-s3c64xx/irq-pm.c |    6 +++---
 arch/arm/plat-samsung/init.c   |    7 ++-----
 2 files changed, 5 insertions(+), 8 deletions(-)
arch/arm/mach-s3c64xx/irq-pm.c +3 -3
index ae4ea76..b20024e 100644
@@ -55,10 +55,10 @@ static struct irq_grp_save {
        u32     mask;
 } eint_grp_save[5];
 
-#ifndef CONFIG_SERIAL_SAMSUNG_UARTS
-#define SERIAL_SAMSUNG_UARTS 0
+#ifndef CONFIG_SERIAL_SAMSUNG
+#define SERIAL_SAMSUNG_UARTS   0
 #else
-#define        SERIAL_SAMSUNG_UARTS CONFIG_SERIAL_SAMSUNG_UARTS
+#define SERIAL_SAMSUNG_UARTS   4
 #endif
 
 static u32 irq_uart_mask[SERIAL_SAMSUNG_UARTS];
arch/arm/plat-samsung/init.c +2 -6
index 11fbbc2..6114942 100644
@@ -92,10 +92,9 @@ void __init s3c24xx_init_clocks(int xtal)
 /* uart management */
 #if IS_ENABLED(CONFIG_SAMSUNG_ATAGS)
 static int nr_uarts __initdata = 0;
+#define MAX_UART_PORTS 4
 
-#ifdef CONFIG_SERIAL_SAMSUNG_UARTS
-static struct s3c2410_uartcfg uart_cfgs[CONFIG_SERIAL_SAMSUNG_UARTS];
-#endif
+static struct s3c2410_uartcfg uart_cfgs[MAX_UART_PORTS];
 
 /* s3c24xx_init_uartdevs
  *
@@ -110,7 +109,6 @@ 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;
@@ -133,7 +131,6 @@ void __init s3c24xx_init_uartdevs(char *name,
        }
 
        nr_uarts = no;
-#endif
 }
 
 void __init s3c24xx_init_uarts(struct s3c2410_uartcfg *cfg, int no)
--

1.7.9.5