diff options
Diffstat (limited to 'drivers/usb/class/cdc-acm.c')
| -rw-r--r-- | drivers/usb/class/cdc-acm.c | 23 | 
1 files changed, 22 insertions, 1 deletions
| diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c index 1833b3a7151..bc62fae0680 100644 --- a/drivers/usb/class/cdc-acm.c +++ b/drivers/usb/class/cdc-acm.c @@ -965,7 +965,8 @@ static int acm_probe(struct usb_interface *intf,  	}  	if (!buflen) { -		if (intf->cur_altsetting->endpoint->extralen && +		if (intf->cur_altsetting->endpoint && +				intf->cur_altsetting->endpoint->extralen &&  				intf->cur_altsetting->endpoint->extra) {  			dev_dbg(&intf->dev,  				"Seeking extra descriptors on endpoint\n"); @@ -1481,6 +1482,11 @@ static int acm_reset_resume(struct usb_interface *intf)  		USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM, \  		USB_CDC_ACM_PROTO_VENDOR) +#define SAMSUNG_PCSUITE_ACM_INFO(x) \ +		USB_DEVICE_AND_INTERFACE_INFO(0x04e7, x, \ +		USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM, \ +		USB_CDC_ACM_PROTO_VENDOR) +  /*   * USB driver structure.   */ @@ -1591,6 +1597,17 @@ static const struct usb_device_id acm_ids[] = {  	{ NOKIA_PCSUITE_ACM_INFO(0x0108), }, /* Nokia 5320 XpressMusic 2G */  	{ NOKIA_PCSUITE_ACM_INFO(0x01f5), }, /* Nokia N97, RM-505 */  	{ NOKIA_PCSUITE_ACM_INFO(0x02e3), }, /* Nokia 5230, RM-588 */ +	{ NOKIA_PCSUITE_ACM_INFO(0x0178), }, /* Nokia E63 */ +	{ NOKIA_PCSUITE_ACM_INFO(0x010e), }, /* Nokia E75 */ +	{ NOKIA_PCSUITE_ACM_INFO(0x02d9), }, /* Nokia 6760 Slide */ +	{ NOKIA_PCSUITE_ACM_INFO(0x01d0), }, /* Nokia E52 */ +	{ NOKIA_PCSUITE_ACM_INFO(0x0223), }, /* Nokia E72 */ +	{ NOKIA_PCSUITE_ACM_INFO(0x0275), }, /* Nokia X6 */ +	{ NOKIA_PCSUITE_ACM_INFO(0x026c), }, /* Nokia N97 Mini */ +	{ NOKIA_PCSUITE_ACM_INFO(0x0154), }, /* Nokia 5800 XpressMusic */ +	{ NOKIA_PCSUITE_ACM_INFO(0x04ce), }, /* Nokia E90 */ +	{ NOKIA_PCSUITE_ACM_INFO(0x01d4), }, /* Nokia E55 */ +	{ SAMSUNG_PCSUITE_ACM_INFO(0x6651), }, /* Samsung GTi8510 (INNOV8) */  	/* NOTE: non-Nokia COMM/ACM/0xff is likely MSFT RNDIS... NOT a modem! */ @@ -1599,6 +1616,10 @@ static const struct usb_device_id acm_ids[] = {  	.driver_info = NOT_A_MODEM,         	}, +	/* control interfaces without any protocol set */ +	{ USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM, +		USB_CDC_PROTO_NONE) }, +  	/* control interfaces with various AT-command sets */  	{ USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM,  		USB_CDC_ACM_PROTO_AT_V25TER) }, | 
