| From 7e0e63d09516e96994c879f07c5a3c3269d7015e Mon Sep 17 00:00:00 2001 |
| From: Giacinto Cifelli <gciofono@gmail.com> |
| Date: Wed, 20 Jan 2021 05:56:50 +0100 |
| Subject: net: usb: qmi_wwan: added support for Thales Cinterion PLSx3 modem family |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| From: Giacinto Cifelli <gciofono@gmail.com> |
| |
| commit 7e0e63d09516e96994c879f07c5a3c3269d7015e upstream. |
| |
| Bus 003 Device 009: ID 1e2d:006f |
| Device Descriptor: |
| bLength 18 |
| bDescriptorType 1 |
| bcdUSB 2.00 |
| bDeviceClass 239 Miscellaneous Device |
| bDeviceSubClass 2 ? |
| bDeviceProtocol 1 Interface Association |
| bMaxPacketSize0 64 |
| idVendor 0x1e2d |
| idProduct 0x006f |
| bcdDevice 0.00 |
| iManufacturer 3 Cinterion Wireless Modules |
| iProduct 2 PLSx3 |
| iSerial 4 fa3c1419 |
| bNumConfigurations 1 |
| Configuration Descriptor: |
| bLength 9 |
| bDescriptorType 2 |
| wTotalLength 303 |
| bNumInterfaces 9 |
| bConfigurationValue 1 |
| iConfiguration 1 Cinterion Configuration |
| bmAttributes 0xe0 |
| Self Powered |
| Remote Wakeup |
| MaxPower 500mA |
| Interface Association: |
| bLength 8 |
| bDescriptorType 11 |
| bFirstInterface 0 |
| bInterfaceCount 2 |
| bFunctionClass 2 Communications |
| bFunctionSubClass 2 Abstract (modem) |
| bFunctionProtocol 1 AT-commands (v.25ter) |
| iFunction 0 |
| Interface Descriptor: |
| bLength 9 |
| bDescriptorType 4 |
| bInterfaceNumber 0 |
| bAlternateSetting 0 |
| bNumEndpoints 1 |
| bInterfaceClass 2 Communications |
| bInterfaceSubClass 2 Abstract (modem) |
| bInterfaceProtocol 1 AT-commands (v.25ter) |
| iInterface 0 |
| CDC Header: |
| bcdCDC 1.10 |
| CDC ACM: |
| bmCapabilities 0x02 |
| line coding and serial state |
| CDC Call Management: |
| bmCapabilities 0x03 |
| call management |
| use DataInterface |
| bDataInterface 1 |
| CDC Union: |
| bMasterInterface 0 |
| bSlaveInterface 1 |
| Endpoint Descriptor: |
| bLength 7 |
| bDescriptorType 5 |
| bEndpointAddress 0x81 EP 1 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 1 |
| bAlternateSetting 0 |
| bNumEndpoints 2 |
| bInterfaceClass 10 CDC Data |
| bInterfaceSubClass 0 Unused |
| bInterfaceProtocol 0 |
| 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 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 Association: |
| bLength 8 |
| bDescriptorType 11 |
| bFirstInterface 2 |
| bInterfaceCount 2 |
| bFunctionClass 2 Communications |
| bFunctionSubClass 2 Abstract (modem) |
| bFunctionProtocol 1 AT-commands (v.25ter) |
| iFunction 0 |
| Interface Descriptor: |
| bLength 9 |
| bDescriptorType 4 |
| bInterfaceNumber 2 |
| bAlternateSetting 0 |
| bNumEndpoints 1 |
| bInterfaceClass 2 Communications |
| bInterfaceSubClass 2 Abstract (modem) |
| bInterfaceProtocol 1 AT-commands (v.25ter) |
| iInterface 0 |
| CDC Header: |
| bcdCDC 1.10 |
| CDC ACM: |
| bmCapabilities 0x02 |
| line coding and serial state |
| CDC Call Management: |
| bmCapabilities 0x03 |
| call management |
| use DataInterface |
| bDataInterface 3 |
| CDC Union: |
| bMasterInterface 2 |
| bSlaveInterface 3 |
| Endpoint Descriptor: |
| bLength 7 |
| bDescriptorType 5 |
| bEndpointAddress 0x83 EP 3 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 3 |
| bAlternateSetting 0 |
| bNumEndpoints 2 |
| bInterfaceClass 10 CDC Data |
| bInterfaceSubClass 0 Unused |
| bInterfaceProtocol 0 |
| iInterface 0 |
| Endpoint Descriptor: |
| bLength 7 |
| bDescriptorType 5 |
| bEndpointAddress 0x84 EP 4 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 Association: |
| bLength 8 |
| bDescriptorType 11 |
| bFirstInterface 4 |
| bInterfaceCount 2 |
| bFunctionClass 2 Communications |
| bFunctionSubClass 2 Abstract (modem) |
| bFunctionProtocol 1 AT-commands (v.25ter) |
| iFunction 0 |
| Interface Descriptor: |
| bLength 9 |
| bDescriptorType 4 |
| bInterfaceNumber 4 |
| bAlternateSetting 0 |
| bNumEndpoints 1 |
| bInterfaceClass 2 Communications |
| bInterfaceSubClass 2 Abstract (modem) |
| bInterfaceProtocol 1 AT-commands (v.25ter) |
| iInterface 0 |
| CDC Header: |
| bcdCDC 1.10 |
| CDC ACM: |
| bmCapabilities 0x02 |
| line coding and serial state |
| CDC Call Management: |
| bmCapabilities 0x03 |
| call management |
| use DataInterface |
| bDataInterface 5 |
| CDC Union: |
| bMasterInterface 4 |
| bSlaveInterface 5 |
| Endpoint Descriptor: |
| bLength 7 |
| bDescriptorType 5 |
| bEndpointAddress 0x85 EP 5 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 2 |
| bInterfaceClass 10 CDC Data |
| bInterfaceSubClass 0 Unused |
| bInterfaceProtocol 0 |
| iInterface 0 |
| Endpoint Descriptor: |
| bLength 7 |
| bDescriptorType 5 |
| bEndpointAddress 0x86 EP 6 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 6 |
| bInterfaceCount 2 |
| bFunctionClass 2 Communications |
| bFunctionSubClass 2 Abstract (modem) |
| bFunctionProtocol 1 AT-commands (v.25ter) |
| iFunction 0 |
| Interface Descriptor: |
| bLength 9 |
| bDescriptorType 4 |
| bInterfaceNumber 6 |
| bAlternateSetting 0 |
| bNumEndpoints 1 |
| bInterfaceClass 2 Communications |
| bInterfaceSubClass 2 Abstract (modem) |
| bInterfaceProtocol 1 AT-commands (v.25ter) |
| iInterface 0 |
| CDC Header: |
| bcdCDC 1.10 |
| CDC ACM: |
| bmCapabilities 0x02 |
| line coding and serial state |
| CDC Call Management: |
| bmCapabilities 0x03 |
| call management |
| use DataInterface |
| bDataInterface 7 |
| CDC Union: |
| bMasterInterface 6 |
| bSlaveInterface 7 |
| Endpoint Descriptor: |
| bLength 7 |
| bDescriptorType 5 |
| bEndpointAddress 0x87 EP 7 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 7 |
| bAlternateSetting 0 |
| bNumEndpoints 2 |
| bInterfaceClass 10 CDC Data |
| bInterfaceSubClass 0 Unused |
| bInterfaceProtocol 0 |
| iInterface 0 |
| Endpoint Descriptor: |
| bLength 7 |
| bDescriptorType 5 |
| bEndpointAddress 0x88 EP 8 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 |
| Interface Descriptor: |
| bLength 9 |
| bDescriptorType 4 |
| bInterfaceNumber 8 |
| 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 0x89 EP 9 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 0x8a EP 10 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 0x05 EP 5 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) |
| |
| Cc: stable@vger.kernel.org |
| Signed-off-by: Giacinto Cifelli <gciofono@gmail.com> |
| Acked-by: BjΓΈrn Mork <bjorn@mork.no> |
| Link: https://lore.kernel.org/r/20210120045650.10855-1-gciofono@gmail.com |
| Signed-off-by: Jakub Kicinski <kuba@kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/net/usb/qmi_wwan.c | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| --- a/drivers/net/usb/qmi_wwan.c |
| +++ b/drivers/net/usb/qmi_wwan.c |
| @@ -934,6 +934,7 @@ static const struct usb_device_id produc |
| {QMI_FIXED_INTF(0x0b3c, 0xc00a, 6)}, /* Olivetti Olicard 160 */ |
| {QMI_FIXED_INTF(0x0b3c, 0xc00b, 4)}, /* Olivetti Olicard 500 */ |
| {QMI_FIXED_INTF(0x1e2d, 0x0060, 4)}, /* Cinterion PLxx */ |
| + {QMI_QUIRK_SET_DTR(0x1e2d, 0x006f, 8)}, /* Cinterion PLS83/PLS63 */ |
| {QMI_FIXED_INTF(0x1e2d, 0x0053, 4)}, /* Cinterion PHxx,PXxx */ |
| {QMI_FIXED_INTF(0x1e2d, 0x0082, 4)}, /* Cinterion PHxx,PXxx (2 RmNet) */ |
| {QMI_FIXED_INTF(0x1e2d, 0x0082, 5)}, /* Cinterion PHxx,PXxx (2 RmNet) */ |