aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/class/cdc-acm.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/class/cdc-acm.c')
-rw-r--r--drivers/usb/class/cdc-acm.c17
1 files changed, 6 insertions, 11 deletions
diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c
index 077d58ac3dcb..546a17e8ad5b 100644
--- a/drivers/usb/class/cdc-acm.c
+++ b/drivers/usb/class/cdc-acm.c
@@ -1157,8 +1157,6 @@ static int acm_probe(struct usb_interface *intf,
1157 case USB_CDC_CALL_MANAGEMENT_TYPE: 1157 case USB_CDC_CALL_MANAGEMENT_TYPE:
1158 call_management_function = buffer[3]; 1158 call_management_function = buffer[3];
1159 call_interface_num = buffer[4]; 1159 call_interface_num = buffer[4];
1160 if ((quirks & NOT_A_MODEM) == 0 && (call_management_function & 3) != 3)
1161 dev_err(&intf->dev, "This device cannot do calls on its own. It is not a modem.\n");
1162 break; 1160 break;
1163 default: 1161 default:
1164 /* there are LOTS more CDC descriptors that 1162 /* there are LOTS more CDC descriptors that
@@ -1197,10 +1195,11 @@ next_desc:
1197 } else { 1195 } else {
1198 control_interface = usb_ifnum_to_if(usb_dev, union_header->bMasterInterface0); 1196 control_interface = usb_ifnum_to_if(usb_dev, union_header->bMasterInterface0);
1199 data_interface = usb_ifnum_to_if(usb_dev, (data_interface_num = union_header->bSlaveInterface0)); 1197 data_interface = usb_ifnum_to_if(usb_dev, (data_interface_num = union_header->bSlaveInterface0));
1200 if (!control_interface || !data_interface) { 1198 }
1201 dev_dbg(&intf->dev, "no interfaces\n"); 1199
1202 return -ENODEV; 1200 if (!control_interface || !data_interface) {
1203 } 1201 dev_dbg(&intf->dev, "no interfaces\n");
1202 return -ENODEV;
1204 } 1203 }
1205 1204
1206 if (data_interface_num != call_interface_num) 1205 if (data_interface_num != call_interface_num)
@@ -1475,6 +1474,7 @@ alloc_fail8:
1475 &dev_attr_wCountryCodes); 1474 &dev_attr_wCountryCodes);
1476 device_remove_file(&acm->control->dev, 1475 device_remove_file(&acm->control->dev,
1477 &dev_attr_iCountryCodeRelDate); 1476 &dev_attr_iCountryCodeRelDate);
1477 kfree(acm->country_codes);
1478 } 1478 }
1479 device_remove_file(&acm->control->dev, &dev_attr_bmCapabilities); 1479 device_remove_file(&acm->control->dev, &dev_attr_bmCapabilities);
1480alloc_fail7: 1480alloc_fail7:
@@ -1813,11 +1813,6 @@ static const struct usb_device_id acm_ids[] = {
1813 1813
1814 /* NOTE: non-Nokia COMM/ACM/0xff is likely MSFT RNDIS... NOT a modem! */ 1814 /* NOTE: non-Nokia COMM/ACM/0xff is likely MSFT RNDIS... NOT a modem! */
1815 1815
1816 /* Support Lego NXT using pbLua firmware */
1817 { USB_DEVICE(0x0694, 0xff00),
1818 .driver_info = NOT_A_MODEM,
1819 },
1820
1821 /* Support for Droids MuIn LCD */ 1816 /* Support for Droids MuIn LCD */
1822 { USB_DEVICE(0x04d8, 0x000b), 1817 { USB_DEVICE(0x04d8, 0x000b),
1823 .driver_info = NO_DATA_INTERFACE, 1818 .driver_info = NO_DATA_INTERFACE,