USB: cp210x: flush device queues at close
authorKonstantin Shkolnyy <konstantin.shkolnyy@gmail.com>
Wed, 28 Oct 2015 21:02:03 +0000 (16:02 -0500)
committerJohan Hovold <johan@kernel.org>
Mon, 16 Nov 2015 11:17:08 +0000 (12:17 +0100)
commitebfb319bb601e501f77809a83b0b69b529c22a8d
tree0999546c6cfdcd1563a0427f6da16b52344fab25
parent8005c49d9aea74d382f474ce11afbbc7d7130bec
USB: cp210x: flush device queues at close

Flush all device queues at close in order to work around a cp2108 Tx
queue bug.

Occasionally, writing data and immediately closing the port makes cp2108
stop responding. The device has to be unplugged to clear the error.
The failure is induced by shutting down the device while its Tx queue
still has unsent data. This condition is avoided by issuing PURGE command
from the close() callback.

This change is applied to all cp210x devices. Clearing internal queues on
close is generally good.

Signed-off-by: Konstantin Shkolnyy <konstantin.shkolnyy@gmail.com>
[johan: amend commit message ]
Signed-off-by: Johan Hovold <johan@kernel.org>
drivers/usb/serial/cp210x.c