aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorMichael Walle <michael@walle.cc>2021-05-12 16:12:55 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2021-05-13 16:08:26 +0200
commit8cac2f6eb8548245e6f8fb893fc7f2a714952654 (patch)
tree77df2e0d9c0cedaa5ba69a39fc7340781f650e4f /drivers
parentserial: fsl_lpuart: add loopback support (diff)
downloadlinux-dev-8cac2f6eb8548245e6f8fb893fc7f2a714952654.tar.xz
linux-dev-8cac2f6eb8548245e6f8fb893fc7f2a714952654.zip
serial: fsl_lpuart: disable DMA for console and fix sysrq
SYSRQ doesn't work with DMA. This is because there is no error indication whether a symbol had a framing error or not. Actually, this is not completely correct, there is a bit in the data register which is set in this case, but we'd have to read change the DMA access to 16 bit and we'd need to post process the data, thus make the DMA pointless in the first place. Signed-off-by: Michael Walle <michael@walle.cc> Link: https://lore.kernel.org/r/20210512141255.18277-10-michael@walle.cc Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/tty/serial/fsl_lpuart.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/tty/serial/fsl_lpuart.c b/drivers/tty/serial/fsl_lpuart.c
index 0d4eb0219728..508128ddfa01 100644
--- a/drivers/tty/serial/fsl_lpuart.c
+++ b/drivers/tty/serial/fsl_lpuart.c
@@ -1587,6 +1587,9 @@ static void lpuart_tx_dma_startup(struct lpuart_port *sport)
u32 uartbaud;
int ret;
+ if (uart_console(&sport->port))
+ goto err;
+
if (!sport->dma_tx_chan)
goto err;
@@ -1616,6 +1619,9 @@ static void lpuart_rx_dma_startup(struct lpuart_port *sport)
int ret;
unsigned char cr3;
+ if (uart_console(&sport->port))
+ goto err;
+
if (!sport->dma_rx_chan)
goto err;