diff options
Diffstat (limited to 'drivers/usb/class')
| -rw-r--r-- | drivers/usb/class/cdc-acm.c | 13 | ||||
| -rw-r--r-- | drivers/usb/class/cdc-acm.h | 1 | 
2 files changed, 14 insertions, 0 deletions
diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c index 171d7a9df3a..9b1cbcf8fb7 100644 --- a/drivers/usb/class/cdc-acm.c +++ b/drivers/usb/class/cdc-acm.c @@ -962,6 +962,10 @@ static int acm_probe(struct usb_interface *intf,  	/* normal quirks */  	quirks = (unsigned long)id->driver_info; + +	if (quirks == IGNORE_DEVICE) +		return -ENODEV; +  	num_rx_buf = (quirks == SINGLE_RX_URB) ? 1 : ACM_NR;  	/* handle quirks deadly to normal probing*/ @@ -1675,6 +1679,15 @@ static const struct usb_device_id acm_ids[] = {  	.driver_info = NO_DATA_INTERFACE,  	}, +#if IS_ENABLED(CONFIG_INPUT_IMS_PCU) +	{ USB_DEVICE(0x04d8, 0x0082),	/* Application mode */ +	.driver_info = IGNORE_DEVICE, +	}, +	{ USB_DEVICE(0x04d8, 0x0083),	/* Bootloader mode */ +	.driver_info = IGNORE_DEVICE, +	}, +#endif +  	/* control interfaces without any protocol set */  	{ USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM,  		USB_CDC_PROTO_NONE) }, diff --git a/drivers/usb/class/cdc-acm.h b/drivers/usb/class/cdc-acm.h index 35ef887b741..0f76e4af600 100644 --- a/drivers/usb/class/cdc-acm.h +++ b/drivers/usb/class/cdc-acm.h @@ -128,3 +128,4 @@ struct acm {  #define NO_CAP_LINE			4  #define NOT_A_MODEM			8  #define NO_DATA_INTERFACE		16 +#define IGNORE_DEVICE			32  |