Hi Johan,
Il giorno mer 20 feb 2019 alle ore 10:39 Johan Hovold
<[email protected]> 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 <[email protected]>
> > ---
> > 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