Hi Johan, Apologies for the late reply, I was out of office. Below is the 'lsusb -v' output for the AH3 modem. For the mailing lists: Please CC me directly, I did not sign up for the mailing lists. Thank you. Best regards // John Ernberg Bus 001 Device 002: ID 1e2d:0055 Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 239 Miscellaneous Device bDeviceSubClass 2 ? bDeviceProtocol 1 Interface Association bMaxPacketSize0 64 idVendor 0x1e2d idProduct 0x0055 bcdDevice 0.00 iManufacturer 4 Cinterion iProduct 3 AHx iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 187 bNumInterfaces 6 bConfigurationValue 1 iConfiguration 2 Qualcomm Configuration bmAttributes 0xe0 Self Powered Remote Wakeup MaxPower 10mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 255 Vendor Specific Subclass bInterfaceProtocol 255 Vendor Specific Protocol iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 32 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 32 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 255 Vendor Specific Subclass bInterfaceProtocol 255 Vendor Specific Protocol iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 32 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 32 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 255 Vendor Specific Subclass bInterfaceProtocol 255 Vendor Specific Protocol iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 32 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x03 EP 3 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 32 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 3 bAlternateSetting 0 bNumEndpoints 3 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 255 Vendor Specific Subclass bInterfaceProtocol 255 Vendor Specific Protocol iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x84 EP 4 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 5 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x85 EP 5 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 32 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x04 EP 4 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 32 Interface Association: bLength 8 bDescriptorType 11 bFirstInterface 4 bInterfaceCount 2 bFunctionClass 2 Communications bFunctionSubClass 0 bFunctionProtocol 0 iFunction 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 4 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 2 Communications bInterfaceSubClass 6 Ethernet Networking bInterfaceProtocol 0 iInterface 0 CDC Header: bcdCDC 1.10 CDC Ethernet: iMacAddress 1 00A0C6294080 bmEthernetStatistics 0x00000000 wMaxSegmentSize 8192 wNumberMCFilters 0x0001 bNumberPowerFilters 0 CDC Union: bMasterInterface 4 bSlaveInterface 5 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x86 EP 6 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 5 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 5 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 10 CDC Data bInterfaceSubClass 0 Unused bInterfaceProtocol 0 iInterface 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 5 bAlternateSetting 1 bNumEndpoints 2 bInterfaceClass 10 CDC Data bInterfaceSubClass 0 Unused bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x87 EP 7 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 32 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x05 EP 5 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 32 Device Qualifier (for other device speed): bLength 10 bDescriptorType 6 bcdUSB 2.00 bDeviceClass 239 Miscellaneous Device bDeviceSubClass 2 ? bDeviceProtocol 1 Interface Association bMaxPacketSize0 64 bNumConfigurations 1 Device Status: 0x0000 (Bus Powered) On 12/22/2015 07:49 PM, Johan Hovold wrote: > [ +CC: linux-usb ] > > On Tue, Dec 22, 2015 at 10:51:32AM +0000, John Ernberg wrote: >> From: John Ernberg <john.ernberg@xxxxxxxx> >> >> In certain kernel configurations where the cdc_ether and option drivers >> are compiled as modules there can occur a race condition in enumeration. >> This causes the option driver to enumerate the ethernet(wwan) interface >> as usb-serial interfaces. >> >> In dmesg it may look like this: >> [ 18.380585] usb 1-1: new high-speed USB device number 2 using ci_hdrc >> [ 18.592290] usbcore: registered new interface driver usbserial >> [ 18.606636] usbcore: registered new interface driver usbserial_generic >> [ 18.614815] usbserial: USB Serial support registered for generic >> [ 18.652111] usbcore: registered new interface driver option >> [ 18.659745] usbserial: USB Serial support registered for GSM modem (1-port) >> [ 18.667600] option 1-1:1.0: GSM modem (1-port) converter detected >> [ 18.676906] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB0 >> [ 18.686725] cdc_ether 1-1:1.4 wwan0: register 'cdc_ether' at usb-ci_hdrc.1-1, Mobile Broadband Network Device >> [ 18.705587] option 1-1:1.1: GSM modem (1-port) converter detected >> [ 18.713468] usbcore: registered new interface driver cdc_ether >> [ 18.719930] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB1 >> [ 18.729770] option 1-1:1.2: GSM modem (1-port) converter detected >> [ 18.737421] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB2 >> [ 18.745232] option 1-1:1.3: GSM modem (1-port) converter detected >> [ 18.752838] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB3 >> [ 43.422579] option1 ttyUSB3: option_instat_callback: error -71 >> [ 43.622575] option1 ttyUSB3: option_instat_callback: error -71 >> [ 43.822579] option1 ttyUSB3: option_instat_callback: error -71 >> [ 44.022575] option1 ttyUSB3: option_instat_callback: error -71 >> [ 44.222569] option1 ttyUSB3: option_instat_callback: error -71 >> [ 44.398490] usb 1-1: USB disconnect, device number 2 >> [ 44.405414] option1 ttyUSB0: GSM modem (1-port) converter now disconnected from ttyUSB0 >> [ 44.417200] option 1-1:1.0: device disconnected >> [ 44.424903] option1 ttyUSB1: GSM modem (1-port) converter now disconnected from ttyUSB1 >> [ 44.434249] option 1-1:1.1: device disconnected >> [ 44.438824] option1 ttyUSB3: option_instat_callback: error -71 >> [ 44.448436] option1 ttyUSB2: GSM modem (1-port) converter now disconnected from ttyUSB2 >> [ 44.457736] option 1-1:1.2: device disconnected >> [ 44.465204] option1 ttyUSB3: GSM modem (1-port) converter now disconnected from ttyUSB3 >> [ 44.474480] option 1-1:1.3: device disconnected >> [ 44.479754] cdc_ether 1-1:1.4 wwan0: unregister 'cdc_ether' usb-ci_hdrc.1-1, Mobile Broadband Network Device >> [ 48.960593] usb 1-1: new high-speed USB device number 3 using ci_hdrc >> [ 49.116118] option 1-1:1.0: GSM modem (1-port) converter detected >> [ 49.123853] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB0 >> [ 49.132029] option 1-1:1.1: GSM modem (1-port) converter detected >> [ 49.138778] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB1 >> [ 49.147432] option 1-1:1.2: GSM modem (1-port) converter detected >> [ 49.154924] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB2 >> [ 49.162940] option 1-1:1.3: GSM modem (1-port) converter detected >> [ 49.169724] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB3 >> [ 49.178440] option 1-1:1.4: GSM modem (1-port) converter detected >> [ 49.185979] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB4 >> [ 49.193985] option 1-1:1.5: GSM modem (1-port) converter detected >> [ 49.201458] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB5 >> --- >> drivers/usb/serial/option.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c >> index f228060..4e483f2 100644 >> --- a/drivers/usb/serial/option.c >> +++ b/drivers/usb/serial/option.c >> @@ -1679,7 +1679,7 @@ static const struct usb_device_id option_ids[] = { >> { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_EU3_P) }, >> { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_PH8), >> .driver_info = (kernel_ulong_t)&net_intf4_blacklist }, >> - { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_AHXX) }, >> + { USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_AHXX, 0xff) }, >> { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_PLXX), >> .driver_info = (kernel_ulong_t)&net_intf4_blacklist }, >> { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_HC28_MDM) }, > Thanks for the patch. > > Could you provide the output of lsusb -v for this device? > > Thanks, > Johan -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html