diff options
Diffstat (limited to 'drivers/usb/class')
| -rw-r--r-- | drivers/usb/class/cdc-acm.c | 3 | ||||
| -rw-r--r-- | drivers/usb/class/cdc-acm.h | 1 | ||||
| -rw-r--r-- | drivers/usb/class/cdc-wdm.c | 4 | 
3 files changed, 7 insertions, 1 deletions
| diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c index 5e056064259c..18c923a4c16e 100644 --- a/drivers/usb/class/cdc-acm.c +++ b/drivers/usb/class/cdc-acm.c @@ -1832,6 +1832,9 @@ static const struct usb_device_id acm_ids[] = {  	{ USB_DEVICE(0xfff0, 0x0100), /* DATECS FP-2000 */  	.driver_info = NO_UNION_NORMAL, /* reports zero length descriptor */  	}, +	{ USB_DEVICE(0x09d8, 0x0320), /* Elatec GmbH TWN3 */ +	.driver_info = NO_UNION_NORMAL, /* has misplaced union descriptor */ +	},  	{ USB_DEVICE(0x2912, 0x0001), /* ATOL FPrint */  	.driver_info = CLEAR_HALT_CONDITIONS, diff --git a/drivers/usb/class/cdc-acm.h b/drivers/usb/class/cdc-acm.h index 7a2b3deafc90..eacc116e83da 100644 --- a/drivers/usb/class/cdc-acm.h +++ b/drivers/usb/class/cdc-acm.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */  /*   *   * Includes for cdc-acm.c diff --git a/drivers/usb/class/cdc-wdm.c b/drivers/usb/class/cdc-wdm.c index 5aacea1978a5..3e865dbf878c 100644 --- a/drivers/usb/class/cdc-wdm.c +++ b/drivers/usb/class/cdc-wdm.c @@ -190,8 +190,10 @@ static void wdm_in_callback(struct urb *urb)  	/*  	 * only set a new error if there is no previous error.  	 * Errors are only cleared during read/open +	 * Avoid propagating -EPIPE (stall) to userspace since it is +	 * better handled as an empty read  	 */ -	if (desc->rerr  == 0) +	if (desc->rerr == 0 && status != -EPIPE)  		desc->rerr = status;  	if (length + desc->length > desc->wMaxCommand) { |