On Tue, Jun 09, 2020 at 07:23:40AM +0000, Schrempf Frieder wrote: > From: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx> > > commit 1866541492641c02874bf51f9d8712b5510f2c64 upstream > > When using RS485 half duplex the Transmitter Complete irq is needed to > determine the moment when the transmitter can be disabled. When using > DMA this irq must only be enabled when DMA has completed to transfer all > data. Otherwise the CPU might busily trigger this irq which is not > properly handled and so the also pending irq for the DMA transfer cannot > trigger. > > Cc: <stable@xxxxxxxxxxxxxxx> # v4.14.x > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx> > Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> > [Backport to v4.14] > Signed-off-by: Frieder Schrempf <frieder.schrempf@xxxxxxxxxx> > --- > When using RS485 with DMA enabled simply transmitting some data on our > i.MX6ULL based boards often freezes the system completely. The higher > the baudrate, the easier it is to reproduce the issue. To test this I > simply used: > > stty -F /dev/ttymxc1 speed 115200 > while true; do echo TEST > /dev/ttymxc1; done > > Without the patch this leads to an almost immediate system freeze, > with the patch applied, everything keeps working as expected. > --- > drivers/tty/serial/imx.c | 22 ++++++++++++++++++---- > 1 file changed, 18 insertions(+), 4 deletions(-) Now queued up, thanks. greg k-h