serial: 8250: Apply FSL workarounds also without SERIAL_8250_CONSOLE
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Fri, 9 Jun 2023 13:39:32 +0000 (15:39 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 13 Jun 2023 10:27:05 +0000 (12:27 +0200)
The need to handle the FSL variant of 8250 in a special way is also
present without console support. So soften the dependency for
SERIAL_8250_FSL from SERIAL_8250_CONSOLE to SERIAL_8250. To handle
SERIAL_8250=m, the FSL code can be modular, too, thus SERIAL_8250_FSL
becomes tristate.

Compiling 8250_fsl as a module requires adding a module license so this
is added, too. While add it also add a appropriate module description.

As then SERIAL_OF_PLATFORM=y + SERIAL_8250_FSL=m is a valid combination
(if COMPILE_TEST is enabled on a platform that is neither PPC, ARM nor
ARM64), the check in 8250_of.c must be weakened a bit.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Message-ID: <20230609133932.786117-3-u.kleine-koenig@pengutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/8250/8250_fsl.c
drivers/tty/serial/8250/8250_of.c
drivers/tty/serial/8250/Kconfig

index 00f46b9a8b0926b4b7e546397d513b94b264daa1..6af4e1c1210a00cbf479cce97ee9240671fa52aa 100644 (file)
@@ -184,3 +184,6 @@ static struct platform_driver fsl8250_platform_driver = {
 
 module_platform_driver(fsl8250_platform_driver);
 #endif
+
+MODULE_LICENSE("GPL");
+MODULE_DESCRIPTION("Handling of Freescale specific 8250 variants");
index c9f6bd7a7038b23f1df10053946f67d01a6bcd76..51329625c48ab095db1b34f046480e6954e230f2 100644 (file)
@@ -177,7 +177,7 @@ static int of_platform_serial_setup(struct platform_device *ofdev,
                break;
        }
 
-       if (IS_ENABLED(CONFIG_SERIAL_8250_FSL) &&
+       if (IS_REACHABLE(CONFIG_SERIAL_8250_FSL) &&
            (of_device_is_compatible(np, "fsl,ns16550") ||
             of_device_is_compatible(np, "fsl,16550-FIFO64"))) {
                port->handle_irq = fsl8250_handle_irq;
index cf33e858b0be108d5eef9844371fd2c540447533..ee17cf5c44c6b046227093d2892716e506d3e49d 100644 (file)
@@ -379,9 +379,9 @@ config SERIAL_8250_BCM2835AUX
          If unsure, say N.
 
 config SERIAL_8250_FSL
-       bool "Freescale 16550 UART support" if COMPILE_TEST && !(PPC || ARM || ARM64)
-       depends on SERIAL_8250_CONSOLE
-       default PPC || ARM || ARM64
+       tristate "Freescale 16550 UART support" if COMPILE_TEST && !(PPC || ARM || ARM64)
+       depends on SERIAL_8250
+       default SERIAL_8250 if PPC || ARM || ARM64
        help
          Selecting this option enables a workaround for a break-detection
          erratum for Freescale 16550 UARTs in the 8250 driver. It also