kernel: bump 4.19 to 4.19.90
[openwrt/staging/wigyori.git] / target / linux / brcm2708 / patches-4.19 / 950-0698-tty-amba-pl011-Make-TX-optimisation-conditional.patch
index d6a9cdde35ef17cad55ed94f3b363223670ca106..6b7ab5685979789cd84477d0a4d8e89c7e08fb9b 100644 (file)
@@ -42,15 +42,15 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
  #ifdef CONFIG_DMA_ENGINE
        /* DMA stuff */
        bool                    using_tx_dma;
-@@ -814,6 +815,7 @@ __acquires(&uap->port.lock)
+@@ -813,6 +814,7 @@ __acquires(&uap->port.lock)
+       if (!uap->using_tx_dma)
                return;
  
-       /* Avoid deadlock with the DMA engine callback */
 +      uap->irq_locked = 0;
-       spin_unlock(&uap->port.lock);
-       dmaengine_terminate_all(uap->dmatx.chan);
-       spin_lock(&uap->port.lock);
-@@ -941,6 +943,7 @@ static void pl011_dma_rx_chars(struct ua
+       dmaengine_terminate_async(uap->dmatx.chan);
+       if (uap->dmatx.queued) {
+@@ -939,6 +941,7 @@ static void pl011_dma_rx_chars(struct ua
                fifotaken = pl011_fifo_to_tty(uap);
        }
  
@@ -58,7 +58,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
        spin_unlock(&uap->port.lock);
        dev_vdbg(uap->port.dev,
                 "Took %d chars from DMA buffer and %d chars from the FIFO\n",
-@@ -1349,6 +1352,7 @@ __acquires(&uap->port.lock)
+@@ -1347,6 +1350,7 @@ __acquires(&uap->port.lock)
  {
        pl011_fifo_to_tty(uap);
  
@@ -66,7 +66,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
        spin_unlock(&uap->port.lock);
        tty_flip_buffer_push(&uap->port.state->port);
        /*
-@@ -1484,6 +1488,7 @@ static irqreturn_t pl011_int(int irq, vo
+@@ -1482,6 +1486,7 @@ static irqreturn_t pl011_int(int irq, vo
        int handled = 0;
  
        spin_lock_irqsave(&uap->port.lock, flags);
@@ -74,7 +74,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
        status = pl011_read(uap, REG_RIS) & uap->im;
        if (status) {
                do {
-@@ -1503,7 +1508,7 @@ static irqreturn_t pl011_int(int irq, vo
+@@ -1501,7 +1506,7 @@ static irqreturn_t pl011_int(int irq, vo
                                      UART011_CTSMIS|UART011_RIMIS))
                                pl011_modem_status(uap);
                        if (status & UART011_TXIS)