linux-stable/drivers/tty/serial
Erwan Le Ray 87fd0741d6 serial: stm32: fix probe and remove order for dma
The probe and remove orders are wrong as the uart_port is registered
before saving device data in the probe, and unregistered after DMA
resource deallocation in the remove. uart_port registering should be
done at the end of probe and unregistering should be done at the begin of
remove to avoid resource allocation issues.

Fix probe and remove orders. This enforce resource allocation occur at
proper time.
Terminate both DMA rx and tx transfers before removing device.

Move pm_runtime after uart_remove_one_port() call in remove() to keep the
probe error path.

Fixes: 3489187204 ("serial: stm32: adding dma support")
Signed-off-by: Erwan Le Ray <erwan.leray@foss.st.com>
Link: https://lore.kernel.org/r/20210304162308.8984-2-erwan.leray@foss.st.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-03-10 09:34:10 +01:00
..
8250 serial: 8250_exar: Constify the software nodes 2021-03-10 09:34:10 +01:00
cpm_uart tty: cpm_uart, use port->flags instead of low_latency 2021-01-07 16:17:31 +01:00
jsm tty: jsm_tty, make char+error handling readable 2021-03-10 09:34:07 +01:00
21285.c tty: serial: 21285: fix lockup on open 2020-10-28 13:39:14 +01:00
altera_jtaguart.c
altera_uart.c
amba-pl010.c amba: Make the remove callback return void 2021-02-02 14:25:50 +01:00
amba-pl011.c amba: Make the remove callback return void 2021-02-02 14:25:50 +01:00
amba-pl011.h
apbuart.c
apbuart.h
ar933x_uart.c serial: ar933x_uart: disable clk on error handling path in probe 2020-11-12 09:41:07 +01:00
arc_uart.c
atmel_serial.c Linux 5.9-rc3 2020-08-31 07:19:25 +02:00
atmel_serial.h
bcm63xx_uart.c
clps711x.c
digicolor-usart.c
dz.c
dz.h
earlycon-arm-semihost.c
earlycon-riscv-sbi.c
earlycon.c earlycon: simplify earlycon-table implementation 2020-12-04 15:49:48 +01:00
fsl_linflexuart.c tty: serial: linflexuart: Remove unnecessary '|' operation and add error count 2020-11-06 17:12:30 +01:00
fsl_lpuart.c serial: fsl_lpuart: Use of_device_get_match_data() 2021-01-20 18:48:15 +01:00
icom.c tty: serial: icom: Use DEFINE_SPINLOCK() for spinlock 2020-12-28 16:14:01 +01:00
icom.h
imx.c tty: imx, use ms_to_ktime 2021-03-10 09:34:06 +01:00
imx_earlycon.c
ip22zilog.c
ip22zilog.h
Kconfig tty: serial: samsung_tty: Add support for Apple UARTs 2021-03-10 09:34:10 +01:00
kgdb_nmi.c tty: do not check tty_unregister_driver's return value 2021-03-10 09:34:09 +01:00
kgdboc.c
lantiq.c tty/serial/lantiq: convert comma to semicolon 2020-12-28 16:10:50 +01:00
liteuart.c serial: liteuart: fix return value check in liteuart_probe() 2021-03-10 09:34:10 +01:00
lpc32xx_hs.c tty: serial: lpc32xx_hs: Remove unused variable 'tmp' 2020-11-06 10:54:04 +01:00
Makefile serial: ifx6x60: Remove driver for deprecated platform 2021-01-26 19:21:49 +01:00
max310x.c serial: max310x: Use devm_clk_get_optional() to get the input clock 2020-10-28 13:31:32 +01:00
max3100.c tty_port: drop last traces of low_latency 2021-01-07 16:17:32 +01:00
mcf.c serial: mcf: add sysrq capability 2020-10-05 13:32:30 +02:00
men_z135_uart.c tty: serial, fix kernel-doc 2020-08-18 13:51:18 +02:00
meson_uart.c tty: serial: meson: enable console as module 2020-12-11 17:14:22 +01:00
milbeaut_usio.c
mpc52xx_uart.c
mps2-uart.c
msm_serial.c tty: serial: msm_serial: Constify msm_uart_pops 2020-11-06 17:16:36 +01:00
mux.c
mvebu-uart.c serial: mvebu-uart: fix tx lost characters at power off 2020-12-28 16:17:34 +01:00
mxs-auart.c serial: mxs-auart: Remove <asm/cacheflush.h> 2021-01-20 18:48:19 +01:00
omap-serial.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
owl-uart.c tty: serial: owl: Add support for kernel debugger 2021-01-13 17:16:54 +01:00
pch_uart.c tty: serial: pch_uart.c: remove debugfs dentry pointer 2021-03-10 09:34:05 +01:00
pic32_uart.c
pic32_uart.h
pmac_zilog.c m68k: Fix WARNING splat in pmac_zilog driver 2020-11-23 11:31:00 +01:00
pmac_zilog.h tty: serial: pmac_zilog: Remove unused disposable variable 'garbage' 2020-11-13 15:28:27 +01:00
pxa.c
qcom_geni_serial.c serial: qcom_geni_serial: To correct QUP Version detection logic 2020-09-30 09:12:03 +02:00
rda-uart.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
rp2.c
sa1100.c serial: sa1100: use platform_get_resource() 2020-08-18 15:02:06 +02:00
samsung_tty.c tty: serial: samsung_tty: Add earlycon support for Apple UARTs 2021-03-10 09:34:10 +01:00
sb1250-duart.c MIPS: Replace SIBYTE_1956_WAR by CONFIG_SB1_PASS_2_WORKAROUNDS 2020-09-07 22:24:51 +02:00
sc16is7xx.c sc16is7xx: Set iobase to device index 2020-09-04 17:14:47 +02:00
sccnxp.c
serial-tegra.c tty: serial: serial-tegra: Provide some missing struct member descriptions 2020-11-06 10:54:05 +01:00
serial_core.c serial: core: Remove BUG_ON(in_interrupt()) check 2021-02-09 11:45:04 +01:00
serial_mctrl_gpio.c serial: mctrl_gpio: Fix passing zero to 'ERR_PTR' warning 2020-11-06 17:12:05 +01:00
serial_mctrl_gpio.h
serial_txx9.c serial: txx9: add missing platform_driver_unregister() on error in serial_txx9_init 2020-11-06 17:24:41 +01:00
sh-sci.c
sh-sci.h
sifive.c riscv: Fix sifive serial driver 2021-01-07 18:02:13 -08:00
sprd_serial.c
st-asc.c
stm32-usart.c serial: stm32: fix probe and remove order for dma 2021-03-10 09:34:10 +01:00
stm32-usart.h serial: stm32: Use of_device_get_match_data() 2021-01-26 12:17:32 -06:00
suncore.c
sunhv.c
sunsab.c
sunsab.h
sunsu.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
sunzilog.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
sunzilog.h
tegra-tcu.c
timbuart.c tty: timbuart: convert tasklets to use new tasklet_setup() API 2020-08-18 13:33:13 +02:00
timbuart.h
uartlite.c tty: serial: uartlite: Support probe deferral 2020-12-04 16:51:40 +01:00
ucc_uart.c serial: ucc_uart: make qe_uart_set_mctrl() static 2020-09-16 13:14:58 +02:00
vr41xx_siu.c
vt8500_serial.c
xilinx_uartps.c tty: serial: xilinx_uartps: Supply description for missing member 'cts_override' 2020-11-06 10:54:05 +01:00
zs.c
zs.h