| From 14f2782de3444427d0a28be2dd8c34579b1e9745 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 12 May 2021 16:12:55 +0200 |
| Subject: serial: fsl_lpuart: disable DMA for console and fix sysrq |
| |
| From: Michael Walle <michael@walle.cc> |
| |
| [ Upstream commit 8cac2f6eb8548245e6f8fb893fc7f2a714952654 ] |
| |
| 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> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/tty/serial/fsl_lpuart.c | 6 ++++++ |
| 1 file changed, 6 insertions(+) |
| |
| diff --git a/drivers/tty/serial/fsl_lpuart.c b/drivers/tty/serial/fsl_lpuart.c |
| index 4cad2ac00e9f..0d7ea144a4a6 100644 |
| --- a/drivers/tty/serial/fsl_lpuart.c |
| +++ b/drivers/tty/serial/fsl_lpuart.c |
| @@ -1571,6 +1571,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; |
| |
| @@ -1600,6 +1603,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; |
| |
| -- |
| 2.30.2 |
| |