linux/drivers/tty/serial
Daniel Golle d518314a1f serial: 8250_mtk: Enable baud clock and manage in runtime PM
Some MediaTek SoCs got a gated UART baud clock, which currently gets
disabled as the clk subsystem believes it would be unused. This results in
the uart freezing right after "clk: Disabling unused clocks" on those
platforms.

Request the baud clock to be prepared and enabled during probe, and to
restore run-time power management capabilities to what it was before commit
e32a83c70c ("serial: 8250-mtk: modify mtk uart power and clock
management") disable and unprepare the baud clock when suspending the UART,
prepare and enable it again when resuming it.

Fixes: e32a83c70c ("serial: 8250-mtk: modify mtk uart power and clock management")
Fixes: b6c7ff2693 ("serial: 8250_mtk: Simplify clock sequencing and runtime PM")
Cc: stable <stable@kernel.org>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Link: https://patch.msgid.link/de5197ccc31e1dab0965cabcc11ca92e67246cf6.1758058441.git.daniel@makrotopia.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-10-22 12:13:54 +02:00
..
8250 serial: 8250_mtk: Enable baud clock and manage in runtime PM 2025-10-22 12:13:54 +02:00
jsm serial: jsm: fix NPE during jsm_uart_port_init 2025-05-21 13:35:58 +02:00
21285.c
altera_jtaguart.c
altera_uart.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
amba-pl010.c
amba-pl011.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
apbuart.c
apbuart.h
ar933x_uart.c
arc_uart.c
atmel_serial.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
atmel_serial.h
bcm63xx_uart.c
clps711x.c
cpm_uart.c
cpm_uart.h
digicolor-usart.c
dz.c
dz.h
earlycon-riscv-sbi.c
earlycon-semihost.c
earlycon.c
esp32_acm.c
esp32_uart.c
fsl_linflexuart.c
fsl_lpuart.c tty: serial: fsl_lpuart: Constify struct lpuart_soc_data 2025-06-29 14:24:34 +02:00
icom.c serial: icom: fix code format problems 2025-03-20 08:10:40 -07:00
imx.c serial: imx: Restore original RXTL for console to fix data loss 2025-06-24 15:34:21 +01:00
imx_earlycon.c
ip22zilog.c tty: serial: ip22zilog: Use platform device for probing 2025-08-14 11:58:40 +02:00
ip22zilog.h
Kconfig TTY/Serial update for 6.18-rc1 2025-10-04 15:57:44 -07:00
kgdboc.c Revert "tty/serial: Add kgdb_nmi driver" 2025-02-14 10:05:43 +01:00
lantiq.c serial: lantiq: Remove unnecessary print function dev_err() 2025-04-11 16:51:49 +02:00
liteuart.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
lpc32xx_hs.c
ma35d1_serial.c tty: serial: pl011: remove incorrect of_match_ptr annotation 2025-03-20 08:09:56 -07:00
Makefile serial: sh-sci: Add support for RZ/T2H SCI 2025-07-09 13:45:30 +02:00
max310x.c serial: max310x: improve interrupt handling 2025-09-12 16:10:16 +02:00
max3100.c tty: serial: Modify the use of dev_err_probe() 2025-08-21 08:09:20 +02:00
mcf.c
men_z135_uart.c
meson_uart.c
milbeaut_usio.c serial: Fix potential null-ptr-deref in mlb_usio_probe() 2025-04-11 16:53:34 +02:00
mpc52xx_uart.c serial: mpc52xx_uart: Remove legacy PM hook 2025-02-04 14:38:32 +01:00
mps2-uart.c
msm_serial.c tty: remove redundant condition checks 2025-09-06 15:49:58 +02:00
mux.c treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
mvebu-uart.c tty: serial: mvebu-uart: convert from round_rate() to determine_rate() 2025-08-14 11:59:04 +02:00
mxs-auart.c
omap-serial.c
owl-uart.c
pch_uart.c pch_uart: Fix dma_sync_sg_for_device() nents value 2025-07-09 13:43:02 +02:00
pic32_uart.c
pmac_zilog.c
pmac_zilog.h
pxa.c
qcom_geni_serial.c TTY driver fix for 6.18-rc1 2025-10-07 11:36:01 -07:00
rda-uart.c
rp2.c
rsci.c serial: sh-sci: Add support for RZ/T2H SCI 2025-07-09 13:45:30 +02:00
rsci.h serial: sh-sci: Add support for RZ/T2H SCI 2025-07-09 13:45:30 +02:00
sa1100.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
samsung_tty.c tty: serial: samsung_tty: support 18 uart ports 2025-05-01 17:20:27 +02:00
sb1250-duart.c
sc16is7xx.c serial: sc16is7xx: remove useless enable of enhanced features 2025-10-22 12:12:06 +02:00
sc16is7xx.h
sc16is7xx_i2c.c
sc16is7xx_spi.c
sccnxp.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
serial-tegra.c
serial_base.h
serial_base_bus.c serial: core: fix OF node leak 2025-07-09 13:41:48 +02:00
serial_core.c serial: serial_core: use guard()s 2025-08-17 12:46:26 +02:00
serial_ctrl.c
serial_mctrl_gpio.c serial: mctrl_gpio: split disable_ms into sync and no_sync APIs 2025-02-19 15:08:36 +01:00
serial_mctrl_gpio.h serial: mctrl_gpio: split disable_ms into sync and no_sync APIs 2025-02-19 15:08:36 +01:00
serial_port.c serial: port: Make ->iotype validation global in __uart_read_properties() 2025-02-04 14:44:44 +01:00
serial_txx9.c
sh-sci-common.h serial: sh-sci: Add support for RZ/T2H SCI 2025-07-09 13:45:30 +02:00
sh-sci.c tty: serial: sh-sci: fix RSCI FIFO overrun handling 2025-10-22 12:11:17 +02:00
sh-sci.h serial: sh-sci: Introduced function pointers 2025-04-11 16:56:30 +02:00
sifive.c Linux 6.15-rc4 2025-04-28 10:13:28 +02:00
sprd_serial.c
st-asc.c
stm32-usart.c serial: stm32: do not deassert RS485 RTS GPIO prematurely 2025-03-20 08:30:44 -07:00
stm32-usart.h
suncore.c
sunhv.c
sunplus-uart.c
sunsab.c
sunsab.h
sunsu.c tty: sunsu: remove unused serial_icr_read() 2025-03-20 08:00:51 -07:00
sunzilog.c
sunzilog.h
tegra-tcu.c
tegra-utc.c serial: tegra-utc: Remove unneeded semicolon 2025-04-11 16:52:21 +02:00
timbuart.c
timbuart.h
uartlite.c tty: serial: uartlite: register uart driver in init 2025-04-11 16:52:06 +02:00
ucc_uart.c
vt8500_serial.c
xilinx_uartps.c serial: xilinx_uartps: read reg size from DTS 2025-09-06 15:51:47 +02:00
zs.c
zs.h