serial: amba-pl011: drop low-latency workaround
authorJohan Hovold <johan@kernel.org>
Wed, 21 Apr 2021 09:54:48 +0000 (11:54 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 22 Apr 2021 10:09:24 +0000 (12:09 +0200)
Commit ead76f329f77 ("ARM: 6763/1: pl011: add optional RX DMA to PL011
v2") added RX DMA support and also reproduced the workaround for the
infamous low_latency behaviour of tty_flip_buffer_push() by dropping and
reacquiring the port lock during receive processing.

Since commit a9c3f68f3cd8 ("tty: Fix low_latency BUG"),
tty_flip_buffer_push() always schedules a work item to push data to the
line discipline and there's no need to keep any low_latency hacks around.

Note that the port lock is also dropped in the PIO path
(see pl011_rx_chars), but it is not clear whether this is still needed
by the DMA code added by the aforementioned commit.

Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Russell King <linux@armlinux.org.uk>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Johan Hovold <johan@kernel.org>
Link: https://lore.kernel.org/r/20210421095509.3024-6-johan@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/amba-pl011.c

index 4ead0c9048a892cb4ee3393518cccc656aed777a..78682c12156a662c68a69145d0e00d5a81175f77 100644 (file)
@@ -937,12 +937,10 @@ static void pl011_dma_rx_chars(struct uart_amba_port *uap,
                fifotaken = pl011_fifo_to_tty(uap);
        }
 
-       spin_unlock(&uap->port.lock);
        dev_vdbg(uap->port.dev,
                 "Took %d chars from DMA buffer and %d chars from the FIFO\n",
                 dma_count, fifotaken);
        tty_flip_buffer_push(port);
-       spin_lock(&uap->port.lock);
 }
 
 static void pl011_dma_rx_irq(struct uart_amba_port *uap)