From: Yoshihiro Shimoda Date: Fri, 21 Aug 2015 18:02:56 +0000 (+0200) Subject: serial: sh-sci: Don't kick tx in sci_er_interrupt() when using DMA X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=8eadb56d6830f169fd225a59e0e27dd97fc762c1;p=GitHub%2Fexynos8895%2Fandroid_kernel_samsung_universal8895.git serial: sh-sci: Don't kick tx in sci_er_interrupt() when using DMA If CONFIG_SERIAL_SH_SCI_DMA is enabled, the driver doesn't enable TIE on SCIF or HSCIF. However, this driver may call sci_tx_interrupt() in sci_er_interrupt(). After that, the driver cannot care of the interrupt, and then "irq 109: nobody cared" happens on r8a7791/koelsch board. This patch fixes the issue. Signed-off-by: Yoshihiro Shimoda [geert] Keep kicking tx when using PIO Signed-off-by: Geert Uytterhoeven Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/tty/serial/sh-sci.c b/drivers/tty/serial/sh-sci.c index 82456fb09138..ffcbf6eaf5f9 100644 --- a/drivers/tty/serial/sh-sci.c +++ b/drivers/tty/serial/sh-sci.c @@ -1011,7 +1011,8 @@ static irqreturn_t sci_er_interrupt(int irq, void *ptr) sci_clear_SCxSR(port, SCxSR_ERROR_CLEAR(port)); /* Kick the transmission */ - sci_tx_interrupt(irq, ptr); + if (!s->chan_tx) + sci_tx_interrupt(irq, ptr); return IRQ_HANDLED; }