]> asedeno.scripts.mit.edu Git - linux.git/commit
USB: serial: f81534: fix hang-up on overrun
authorJi-Ze Hong (Peter Hong) <hpeter@gmail.com>
Fri, 13 Oct 2017 02:21:34 +0000 (10:21 +0800)
committerJohan Hovold <johan@kernel.org>
Tue, 31 Oct 2017 08:19:33 +0000 (09:19 +0100)
commitdea744bae7a55cc71dd8d54cdb76639907fce1ec
treee4deec9dbd3339c934b4bccc30481ef201d001d0
parent771394a54148f18926ca86414e51c69eda27d0cd
USB: serial: f81534: fix hang-up on overrun

The F81532/534 without this patch will hang-up on data overrun.

It's caused by enable LSR interrupt in IER by default and occur data
overrun, the chip will busy for process LSR interrupt but not read LSR
internally. It will not responed for USB control endpoint0 and we can't
read LSR from driver in this situration.

So we'll disable the LSR interrupt in probe() and submit the LSR worker to
clear LSR state when reported LSR error bit with bulk-in data in
f81534_process_per_serial_block().

Signed-off-by: Ji-Ze Hong (Peter Hong) <hpeter+linux_kernel@gmail.com>
Signed-off-by: Johan Hovold <johan@kernel.org>
drivers/usb/serial/f81534.c