serial: stm32: move dma_request_chan() before clk_prepare_enable()
authorValentin Caron <valentin.caron@foss.st.com>
Fri, 18 Nov 2022 17:06:02 +0000 (18:06 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 22 Nov 2022 16:52:25 +0000 (17:52 +0100)
commit0d114e9ff940ebad8e88267013bf96c605a6b336
tree4366cee4079110f6b64837ea9fc4285df855eda7
parentb30e66863c60bb5c7da2151a65afb2ee419b9df4
serial: stm32: move dma_request_chan() before clk_prepare_enable()

If dma_request_chan() returns a PROBE_DEFER error, clk_disable_unprepare()
will be called and USART clock will be disabled. But early console can be
still active on the same USART.

While moving dma_request_chan() before clk_prepare_enable(), the clock
won't be taken in case of a DMA PROBE_DEFER error, and so it doesn't need
to be disabled. Then USART is still clocked for early console.

Fixes: a7770a4bfcf4 ("serial: stm32: defer probe for dma devices")
Reported-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Valentin Caron <valentin.caron@foss.st.com>
Link: https://lore.kernel.org/r/20221118170602.1057863-1-valentin.caron@foss.st.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/stm32-usart.c