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 <yoshihiro.shimoda.uh@renesas.com> [geert] Keep kicking tx when using PIO Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Родитель
e6403c112f
Коммит
8eadb56d68
|
@ -1011,7 +1011,8 @@ static irqreturn_t sci_er_interrupt(int irq, void *ptr)
|
||||||
sci_clear_SCxSR(port, SCxSR_ERROR_CLEAR(port));
|
sci_clear_SCxSR(port, SCxSR_ERROR_CLEAR(port));
|
||||||
|
|
||||||
/* Kick the transmission */
|
/* Kick the transmission */
|
||||||
sci_tx_interrupt(irq, ptr);
|
if (!s->chan_tx)
|
||||||
|
sci_tx_interrupt(irq, ptr);
|
||||||
|
|
||||||
return IRQ_HANDLED;
|
return IRQ_HANDLED;
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче