diff mbox series

Revert "USB: serial: ch341: fix character loss at high transfer rates"

Message ID 20210824121926.19311-1-johan@kernel.org
State New
Headers show
Series Revert "USB: serial: ch341: fix character loss at high transfer rates" | expand

Commit Message

Johan Hovold Aug. 24, 2021, 12:19 p.m. UTC
This reverts commit 3c18e9baee0ef97510dcda78c82285f52626764b.

These devices do not appear to send a zero-length packet when the
transfer size is a multiple of the bulk-endpoint max-packet size. This
means that incoming data may not be processed by the driver until a
short packet is received or the receive buffer is full.

Revert back to using endpoint-sized receive buffers to avoid stalled
reads.

Reported-by: Paul Größel <pb.g@gmx.de>
Link: https://bugzilla.kernel.org/show_bug.cgi?id=214131
Fixes: 3c18e9baee0e ("USB: serial: ch341: fix character loss at high transfer rates")
Cc: stable@vger.kernel.org
Cc: Willy Tarreau <w@1wt.eu>
Signed-off-by: Johan Hovold <johan@kernel.org>
---
 drivers/usb/serial/ch341.c | 1 -
 1 file changed, 1 deletion(-)

Comments

Willy Tarreau Aug. 24, 2021, 12:32 p.m. UTC | #1
On Tue, Aug 24, 2021 at 02:19:26PM +0200, Johan Hovold wrote:
> This reverts commit 3c18e9baee0ef97510dcda78c82285f52626764b.
> 
> These devices do not appear to send a zero-length packet when the
> transfer size is a multiple of the bulk-endpoint max-packet size. This
> means that incoming data may not be processed by the driver until a
> short packet is received or the receive buffer is full.
> 
> Revert back to using endpoint-sized receive buffers to avoid stalled
> reads.

Sorry for this, I didn't notice any issue here (aside for the chip
working where it used not to). I have no idea what these zero-length
packets correspond to, nor why they're affected by the transfer size.
Do you have any idea what I should look for ? Because without that
patch, the device is unusable for me :-/

Thanks!
Willy
diff mbox series

Patch

diff --git a/drivers/usb/serial/ch341.c b/drivers/usb/serial/ch341.c
index 8a521b5ea769..2db917eab799 100644
--- a/drivers/usb/serial/ch341.c
+++ b/drivers/usb/serial/ch341.c
@@ -851,7 +851,6 @@  static struct usb_serial_driver ch341_device = {
 		.owner	= THIS_MODULE,
 		.name	= "ch341-uart",
 	},
-	.bulk_in_size      = 512,
 	.id_table          = id_table,
 	.num_ports         = 1,
 	.open              = ch341_open,