Hi Johan, Il giorno mer 20 feb 2019 alle ore 10:39 Johan Hovold <johan@xxxxxxxxxx> ha scritto: > > On Wed, Feb 20, 2019 at 10:13:09AM +0100, Daniele Palmas wrote: > > This patch adds Telit ME910 family ECM composition 0x1102. > > > > Signed-off-by: Daniele Palmas <dnlplm@xxxxxxxxx> > > --- > > lsusb verbose output: > > > > Bus 003 Device 005: ID 1bc7:1102 Telit Wireless Solutions > > Device Descriptor: > > bLength 18 > > bDescriptorType 1 > > bcdUSB 2.00 > > bDeviceClass 239 Miscellaneous Device > > bDeviceSubClass 2 ? > > bDeviceProtocol 1 Interface Association > > bMaxPacketSize0 64 > > idVendor 0x1bc7 Telit Wireless Solutions > > idProduct 0x1102 > > bcdDevice 0.00 > > iManufacturer 4 Telit > > iProduct 3 Telit ME910 > > iSerial 5 26fd75b1 > > bNumConfigurations 1 > > Configuration Descriptor: > > bLength 9 > > bDescriptorType 2 > > wTotalLength 171 > > bNumInterfaces 5 > > bConfigurationValue 1 > > iConfiguration 2 Telit Configuration > > bmAttributes 0xe0 > > Self Powered > > Remote Wakeup > > MaxPower 500mA > > 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 0 > > 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 0 > > Interface Descriptor: > > bLength 9 > > bDescriptorType 4 > > bInterfaceNumber 1 > > 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 0x82 EP 2 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 0x83 EP 3 IN > > bmAttributes 2 > > Transfer Type Bulk > > Synch Type None > > Usage Type Data > > wMaxPacketSize 0x0200 1x 512 bytes > > bInterval 0 > > 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 0 > > Interface Descriptor: > > bLength 9 > > bDescriptorType 4 > > bInterfaceNumber 2 > > bAlternateSetting 0 > > bNumEndpoints 3 > > bInterfaceClass 255 Vendor Specific Class > > bInterfaceSubClass 254 > > bInterfaceProtocol 255 > > 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 0 > > 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 0 > > Interface Association: > > bLength 8 > > bDescriptorType 11 > > bFirstInterface 3 > > bInterfaceCount 2 > > bFunctionClass 2 Communications > > bFunctionSubClass 0 > > bFunctionProtocol 0 > > iFunction 0 > > Interface Descriptor: > > bLength 9 > > bDescriptorType 4 > > bInterfaceNumber 3 > > bAlternateSetting 0 > > bNumEndpoints 1 > > bInterfaceClass 2 Communications > > bInterfaceSubClass 6 Ethernet Networking > > bInterfaceProtocol 0 > > iInterface 0 > > CDC Header: > > bcdCDC 1.10 > > CDC Ethernet: > > iMacAddress 1 00A0C6D75B10 > > bmEthernetStatistics 0x00000000 > > wMaxSegmentSize 16384 > > wNumberMCFilters 0x0001 > > bNumberPowerFilters 0 > > CDC Union: > > bMasterInterface 3 > > bSlaveInterface 4 > > 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 4 > > bAlternateSetting 0 > > bNumEndpoints 0 > > bInterfaceClass 10 CDC Data > > bInterfaceSubClass 0 Unused > > bInterfaceProtocol 0 > > iInterface 0 > > Interface Descriptor: > > bLength 9 > > bDescriptorType 4 > > bInterfaceNumber 4 > > 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 0 > > 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 0 > > 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) > > --- > > drivers/usb/serial/option.c | 2 ++ > > 1 file changed, 2 insertions(+) > > > > diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c > > index aef15497ff31..0cf943281065 100644 > > --- a/drivers/usb/serial/option.c > > +++ b/drivers/usb/serial/option.c > > @@ -1148,6 +1148,8 @@ static const struct usb_device_id option_ids[] = { > > .driver_info = NCTRL(0) | RSVD(1) | RSVD(3) }, > > { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_ME910_DUAL_MODEM), > > .driver_info = NCTRL(0) | RSVD(3) }, > > + { USB_DEVICE(TELIT_VENDOR_ID, 0x1102), /* TELIT ME910 (ECM) */ > > + .driver_info = NCTRL(0) | RSVD(3) | RSVD(4) }, > > I realise this probably just reuses a pattern from the earlier Telit > entries, but why not match on the interface class instead of > blacklisting interface 3 and 4? > Yes, it was just for keeping the entry coherent with previous ME910 related ones. I can send a V2 fixing this. Thanks, Daniele > > { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE910), > > .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) }, > > { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE910_USBCFG4), > > Johan