linux/drivers/tty/serial
Michael Walle 65e20e8cbb earlycon: prevent multiple register_console()
If the earlycon parameter is given twice, the kernel will spit out a
WARN() in register_console() because it was already registered. The
non-dt variant setup_earlycon() already handles that gracefully. The dt
variant of_setup_earlycon() doesn't. Add the check there and add the
-EALREADY handling in early_init_dt_scan_chosen_stdout().

FWIW, this doesn't happen if CONFIG_ACPI_SPCR_TABLE is set. In that case
the registration is delayed until after earlycon parameter(s) are
parsed.

Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Michael Walle <michael@walle.cc>
Link: https://lore.kernel.org/r/20220628120705.200617-1-michael@walle.cc
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-06-30 17:10:11 +02:00
..
8250 serial: 8250_dw: Take port lock while accessing LSR 2022-06-30 17:09:59 +02:00
cpm_uart serial: cpm_uart: Fix build error without CONFIG_SERIAL_CPM_CONSOLE 2022-05-19 18:31:58 +02:00
jsm serial: jsm: Use B0 instead of 0 2022-05-19 18:26:17 +02:00
21285.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
altera_jtaguart.c tty: serial: altera: use altera_jtaguart_stop_tx() 2022-04-14 18:27:18 +02:00
altera_uart.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
amba-pl010.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
amba-pl011.c serial: take termios_rwsem for ->rs485_config() & pass termios as param 2022-06-27 14:44:20 +02:00
apbuart.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
apbuart.h
ar933x_uart.c serial: take termios_rwsem for ->rs485_config() & pass termios as param 2022-06-27 14:44:20 +02:00
arc_uart.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
atmel_serial.c serial: take termios_rwsem for ->rs485_config() & pass termios as param 2022-06-27 14:44:20 +02:00
atmel_serial.h tty: serial: Use the correct style for SPDX License Identifier 2020-03-07 09:52:01 +01:00
bcm63xx_uart.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
clps711x.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
digicolor-usart.c serial: digicolor-usart: Don't allow CS5-6 2022-05-19 18:32:39 +02:00
dz.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
dz.h
earlycon-arm-semihost.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
earlycon-riscv-sbi.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
earlycon.c earlycon: prevent multiple register_console() 2022-06-30 17:10:11 +02:00
fsl_linflexuart.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
fsl_lpuart.c serial: take termios_rwsem for ->rs485_config() & pass termios as param 2022-06-27 14:44:20 +02:00
icom.c serial: icom: remove unused struct icom_port members 2022-04-22 16:19:53 +02:00
imx_earlycon.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
imx.c serial: take termios_rwsem for ->rs485_config() & pass termios as param 2022-06-27 14:44:20 +02:00
ip22zilog.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
ip22zilog.h
Kconfig serial: max310x: implement I2C support 2022-06-10 13:43:19 +02:00
kgdb_nmi.c tty: drop put_tty_driver 2021-07-27 12:17:21 +02:00
kgdboc.c serial: kgdboc: Fix typo in comment 2022-06-27 14:37:09 +02:00
lantiq.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
liteuart.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
lpc32xx_hs.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
Makefile serial: sunplus-uart: Add Sunplus SoC UART Driver 2022-02-26 10:03:21 +01:00
max310x.c serial: take termios_rwsem for ->rs485_config() & pass termios as param 2022-06-27 14:44:20 +02:00
max3100.c TTY/Serial driver changes for 5.18-rc1 2022-03-28 13:00:51 -07:00
mcf.c serial: take termios_rwsem for ->rs485_config() & pass termios as param 2022-06-27 14:44:20 +02:00
men_z135_uart.c serial: men_z135_uart: Drop duplicated iotype assignment 2022-05-05 22:34:55 +02:00
meson_uart.c serial: Convert SERIAL_XMIT_SIZE to UART_XMIT_SIZE 2022-06-27 14:41:31 +02:00
milbeaut_usio.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
mpc52xx_uart.c tty: serial: Prepare cleanup of powerpc's asm/prom.h 2022-04-15 08:42:29 +02:00
mps2-uart.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
msm_serial.c serial: msm: Rename UART_* defines to MSM_UART_* 2022-06-27 14:41:31 +02:00
mux.c serial: Drop timeout from uart_port 2022-06-27 14:34:45 +02:00
mvebu-uart.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
mxs-auart.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
omap-serial.c serial: take termios_rwsem for ->rs485_config() & pass termios as param 2022-06-27 14:44:20 +02:00
owl-uart.c serial: Convert SERIAL_XMIT_SIZE to UART_XMIT_SIZE 2022-06-27 14:41:31 +02:00
pch_uart.c serial: Consolidate BOTH_EMPTY use 2022-06-27 14:41:31 +02:00
pic32_uart.c serial: pic32: fix missing clk_disable_unprepare() on error in pic32_uart_startup() 2022-06-10 13:33:28 +02:00
pmac_zilog.c serial: pmac_zilog: remove unused header 2022-06-10 13:33:57 +02:00
pmac_zilog.h serial: pmac_zilog: remove unused uart_pmac_port::termios_cache 2022-05-19 18:23:19 +02:00
pxa.c serial: Consolidate BOTH_EMPTY use 2022-06-27 14:41:31 +02:00
qcom_geni_serial.c tty: serial: qcom-geni-serial: Implement start_rx callback 2022-06-10 13:30:41 +02:00
rda-uart.c serial: Convert SERIAL_XMIT_SIZE to UART_XMIT_SIZE 2022-06-27 14:41:31 +02:00
rp2.c serial: rp2: use 'request_firmware' instead of 'request_firmware_nowait' 2021-05-21 20:34:02 +02:00
sa1100.c drivers: tty: serial: Fix deadlock in sa1100_set_termios() 2022-04-22 16:23:37 +02:00
samsung_tty.c tty: serial: samsung_tty: loopback mode support 2022-06-30 17:09:08 +02:00
sb1250-duart.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
sc16is7xx.c serial: take termios_rwsem for ->rs485_config() & pass termios as param 2022-06-27 14:44:20 +02:00
sccnxp.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
serial_core.c serial: Support for RS-485 multipoint addresses 2022-06-27 14:44:20 +02:00
serial_mctrl_gpio.c serial: mctrl_gpio: add a new API to enable / disable wake_irq 2022-02-08 11:07:16 +01:00
serial_mctrl_gpio.h serial: mctrl_gpio: add a new API to enable / disable wake_irq 2022-02-08 11:07:16 +01:00
serial_txx9.c serial: txx9: Don't allow CS5-6 2022-05-19 18:32:40 +02:00
serial-tegra.c drivers: tty: serial: Add missing of_node_put() in serial-tegra.c 2022-06-27 14:36:02 +02:00
sh-sci.c serial: sh-sci: Don't allow CS5-6 2022-05-19 18:32:40 +02:00
sh-sci.h serial: sh-sci: Add support for RZ/G2L SoC 2021-06-04 15:12:40 +02:00
sifive.c serial: sifive: Remove useless license text when SPDX-License-Identifier is already used 2022-06-27 14:32:37 +02:00
sprd_serial.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
st-asc.c serial: st-asc: remove include of pm_runtime.h 2022-06-27 14:39:51 +02:00
stm32-usart.c serial: take termios_rwsem for ->rs485_config() & pass termios as param 2022-06-27 14:44:20 +02:00
stm32-usart.h serial: stm32: Use TC interrupt to deassert GPIO RTS in RS485 mode 2022-05-05 22:37:47 +02:00
suncore.c tty: Use of_node_name_{eq,prefix} for node name comparisons 2018-12-17 16:12:17 +01:00
sunhv.c Revert "serial: sunhv: Initialize lock for non-registered console" 2020-07-21 18:21:49 +02:00
sunplus-uart.c serial: sunplus-uart: change sunplus_console_ports from global to static 2022-04-22 16:21:33 +02:00
sunsab.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
sunsab.h
sunsu.c serial: Consolidate BOTH_EMPTY use 2022-06-27 14:41:31 +02:00
sunzilog.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
sunzilog.h
tegra-tcu.c serial: tegra-tcu: Reorder channel initialization 2021-06-15 14:02:06 +02:00
timbuart.c serial: timbuart: drop low-latency workaround 2021-04-22 12:09:26 +02:00
timbuart.h tty: serial: Use the correct style for SPDX License Identifier 2020-03-07 09:52:01 +01:00
uartlite.c serial: uartlite: Fix BRKINT clearing 2022-05-19 18:32:39 +02:00
ucc_uart.c tty: serial: Fix refcount leak bug in ucc_uart.c 2022-06-27 14:36:07 +02:00
vr41xx_siu.c serial: Consolidate BOTH_EMPTY use 2022-06-27 14:41:31 +02:00
vt8500_serial.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
xilinx_uartps.c serial: xilinx_uartps: cache xmit in cdns_uart_handle_tx() 2022-04-22 16:21:53 +02:00
zs.c serial: zs: use NULL as a pointer, not 0 2022-04-22 16:21:53 +02:00
zs.h