linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] USB: serial: option: Add Telit FT980-KS composition
@ 2020-10-04  9:57 Leonid Bloch
  2020-10-04 10:58 ` Lars Melin
  0 siblings, 1 reply; 8+ messages in thread
From: Leonid Bloch @ 2020-10-04  9:57 UTC (permalink / raw)
  To: linux-kernel; +Cc: linux-usb, Greg Kroah-Hartman, Johan Hovold, Leonid Bloch

This commit adds the following Telit FT980-KS composition:

0x1054: rndis, diag, adb, nmea, modem, modem, aux

AT commands can be sent to /dev/ttyUSB5.

Signed-off-by: Leonid Bloch <lb.workbox@gmail.com>
---

The full composition is not tested, and it is the default one according
to Telit support. What is tested, is that this commit makes
/dev/ttyUSB{1..7} appear upon connection of the FT980-KS, and allows
sending AT commands to /dev/ttyUSB5.

 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 0c6f160a214a..e7a98435ac29 100644
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
@@ -301,6 +301,7 @@ static void option_instat_callback(struct urb *urb);
 #define TELIT_PRODUCT_LE920A4_1212		0x1212
 #define TELIT_PRODUCT_LE920A4_1213		0x1213
 #define TELIT_PRODUCT_LE920A4_1214		0x1214
+#define TELIT_PRODUCT_FT980_KS			0x1054
 
 /* ZTE PRODUCTS */
 #define ZTE_VENDOR_ID				0x19d2
@@ -1164,6 +1165,7 @@ static const struct usb_device_id option_ids[] = {
 	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_CC864_SINGLE) },
 	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_DE910_DUAL) },
 	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UE910_V2) },
+	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_FT980_KS) },
 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1031, 0xff),	/* Telit LE910C1-EUX */
 	 .driver_info = NCTRL(0) | RSVD(3) },
 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1033, 0xff),	/* Telit LE910C1-EUX (ECM) */
-- 
2.28.0


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH] USB: serial: option: Add Telit FT980-KS composition
  2020-10-04  9:57 [PATCH] USB: serial: option: Add Telit FT980-KS composition Leonid Bloch
@ 2020-10-04 10:58 ` Lars Melin
  2020-10-04 13:29   ` Leonid Bloch
  0 siblings, 1 reply; 8+ messages in thread
From: Lars Melin @ 2020-10-04 10:58 UTC (permalink / raw)
  To: Leonid Bloch, linux-kernel
  Cc: linux-usb, Greg Kroah-Hartman, Johan Hovold, Leonid Bloch

On 10/4/2020 16:57, Leonid Bloch wrote:
> This commit adds the following Telit FT980-KS composition:
> 
> 0x1054: rndis, diag, adb, nmea, modem, modem, aux
> 
> AT commands can be sent to /dev/ttyUSB5.
> 

Please submit a verbose lsusb listing for the device, I can't imagine 
that the adb interface should be handled by the option serial driver so 
there will never be a ttyUSB5.


thanks
Lars


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] USB: serial: option: Add Telit FT980-KS composition
  2020-10-04 10:58 ` Lars Melin
@ 2020-10-04 13:29   ` Leonid Bloch
  2020-10-04 14:16     ` Lars Melin
  2020-10-19 17:02     ` [tip: perf/urgent] " tip-bot2 for Leonid Bloch
  0 siblings, 2 replies; 8+ messages in thread
From: Leonid Bloch @ 2020-10-04 13:29 UTC (permalink / raw)
  To: Lars Melin, Leonid Bloch, linux-kernel
  Cc: linux-usb, Greg Kroah-Hartman, Johan Hovold

On 10/4/20 1:58 PM, Lars Melin wrote:
> On 10/4/2020 16:57, Leonid Bloch wrote:
>> This commit adds the following Telit FT980-KS composition:
>>
>> 0x1054: rndis, diag, adb, nmea, modem, modem, aux
>>
>> AT commands can be sent to /dev/ttyUSB5.
>>
> 
> Please submit a verbose lsusb listing for the device, I can't imagine
> that the adb interface should be handled by the option serial driver so
> there will never be a ttyUSB5.

Please see below.

Thanks,
Leonid.

```
Bus 001 Device 005: ID 1bc7:1054 Telit Wireless Solutions
Device Descriptor:
   bLength                18
   bDescriptorType         1
   bcdUSB               2.10
   bDeviceClass            0
   bDeviceSubClass         0
   bDeviceProtocol         0
   bMaxPacketSize0        64
   idVendor           0x1bc7 Telit Wireless Solutions
   idProduct          0x1054
   bcdDevice            4.14
   iManufacturer           1 Telit Wireless Solutions
   iProduct                2 FT980-KS
   iSerial                 3 cb42f61
   bNumConfigurations      1
   Configuration Descriptor:
     bLength                 9
     bDescriptorType         2
     wTotalLength       0x013d
     bNumInterfaces          8
     bConfigurationValue     1
     iConfiguration          4 RNDIS_DIAG_ADB_NMEA_DUN_DUN_SER
     bmAttributes         0xa0
       (Bus Powered)
       Remote Wakeup
     MaxPower              500mA
     Interface Association:
       bLength                 8
       bDescriptorType        11
       bFirstInterface         0
       bInterfaceCount         2
       bFunctionClass        239 Miscellaneous Device
       bFunctionSubClass       4
       bFunctionProtocol       1
       iFunction               7 RNDIS
     Interface Descriptor:
       bLength                 9
       bDescriptorType         4
       bInterfaceNumber        0
       bAlternateSetting       0
       bNumEndpoints           1
       bInterfaceClass       239 Miscellaneous Device
       bInterfaceSubClass      4
       bInterfaceProtocol      1
       iInterface              5 RNDIS Communications Control
       ** UNRECOGNIZED:  05 24 00 10 01
       ** UNRECOGNIZED:  05 24 01 00 01
       ** UNRECOGNIZED:  04 24 02 00
       ** UNRECOGNIZED:  05 24 06 00 01
       Endpoint Descriptor:
         bLength                 7
         bDescriptorType         5
         bEndpointAddress     0x81  EP 1 IN
         bmAttributes            3
           Transfer Type            Interrupt
           Synch Type               None
           Usage Type               Data
         wMaxPacketSize     0x0008  1x 8 bytes
         bInterval               9
     Interface Descriptor:
       bLength                 9
       bDescriptorType         4
       bInterfaceNumber        1
       bAlternateSetting       0
       bNumEndpoints           2
       bInterfaceClass        10 CDC Data
       bInterfaceSubClass      0
       bInterfaceProtocol      0
       iInterface              6 RNDIS Ethernet Data
       Endpoint Descriptor:
         bLength                 7
         bDescriptorType         5
         bEndpointAddress     0x8e  EP 14 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     0x0f  EP 15 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           2
       bInterfaceClass       255 Vendor Specific Class
       bInterfaceSubClass    255 Vendor Specific Subclass
       bInterfaceProtocol     48
       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 Descriptor:
       bLength                 9
       bDescriptorType         4
       bInterfaceNumber        3
       bAlternateSetting       0
       bNumEndpoints           2
       bInterfaceClass       255 Vendor Specific Class
       bInterfaceSubClass     66
       bInterfaceProtocol      1
       iInterface              8 ADB Interface
       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
       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
     Interface Descriptor:
       bLength                 9
       bDescriptorType         4
       bInterfaceNumber        4
       bAlternateSetting       0
       bNumEndpoints           3
       bInterfaceClass       255 Vendor Specific Class
       bInterfaceSubClass      0
       bInterfaceProtocol      0
       iInterface              0
       ** UNRECOGNIZED:  05 24 00 10 01
       ** UNRECOGNIZED:  05 24 01 00 00
       ** UNRECOGNIZED:  04 24 02 02
       ** UNRECOGNIZED:  05 24 06 00 00
       Endpoint Descriptor:
         bLength                 7
         bDescriptorType         5
         bEndpointAddress     0x85  EP 5 IN
         bmAttributes            3
           Transfer Type            Interrupt
           Synch Type               None
           Usage Type               Data
         wMaxPacketSize     0x000a  1x 10 bytes
         bInterval               9
       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     0x03  EP 3 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        5
       bAlternateSetting       0
       bNumEndpoints           3
       bInterfaceClass       255 Vendor Specific Class
       bInterfaceSubClass      0
       bInterfaceProtocol      0
       iInterface              0
       ** UNRECOGNIZED:  05 24 00 10 01
       ** UNRECOGNIZED:  05 24 01 00 00
       ** UNRECOGNIZED:  04 24 02 02
       ** UNRECOGNIZED:  05 24 06 00 00
       Endpoint Descriptor:
         bLength                 7
         bDescriptorType         5
         bEndpointAddress     0x87  EP 7 IN
         bmAttributes            3
           Transfer Type            Interrupt
           Synch Type               None
           Usage Type               Data
         wMaxPacketSize     0x000a  1x 10 bytes
         bInterval               9
       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     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        6
       bAlternateSetting       0
       bNumEndpoints           3
       bInterfaceClass       255 Vendor Specific Class
       bInterfaceSubClass      0
       bInterfaceProtocol      0
       iInterface              0
       ** UNRECOGNIZED:  05 24 00 10 01
       ** UNRECOGNIZED:  05 24 01 00 00
       ** UNRECOGNIZED:  04 24 02 02
       ** UNRECOGNIZED:  05 24 06 00 00
       Endpoint Descriptor:
         bLength                 7
         bDescriptorType         5
         bEndpointAddress     0x89  EP 9 IN
         bmAttributes            3
           Transfer Type            Interrupt
           Synch Type               None
           Usage Type               Data
         wMaxPacketSize     0x000a  1x 10 bytes
         bInterval               9
       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     0x05  EP 5 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        7
       bAlternateSetting       0
       bNumEndpoints           3
       bInterfaceClass       255 Vendor Specific Class
       bInterfaceSubClass      0
       bInterfaceProtocol      0
       iInterface              0
       ** UNRECOGNIZED:  05 24 00 10 01
       ** UNRECOGNIZED:  05 24 01 00 00
       ** UNRECOGNIZED:  04 24 02 02
       ** UNRECOGNIZED:  05 24 06 00 00
       Endpoint Descriptor:
         bLength                 7
         bDescriptorType         5
         bEndpointAddress     0x8b  EP 11 IN
         bmAttributes            3
           Transfer Type            Interrupt
           Synch Type               None
           Usage Type               Data
         wMaxPacketSize     0x000a  1x 10 bytes
         bInterval               9
       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     0x06  EP 6 OUT
         bmAttributes            2
           Transfer Type            Bulk
           Synch Type               None
           Usage Type               Data
         wMaxPacketSize     0x0200  1x 512 bytes
         bInterval               0
Binary Object Store Descriptor:
   bLength                 5
   bDescriptorType        15
   wTotalLength       0x002a
   bNumDeviceCaps          3
   USB 2.0 Extension Device Capability:
     bLength                 7
     bDescriptorType        16
     bDevCapabilityType      2
     bmAttributes   0x00000006
       BESL Link Power Management (LPM) Supported
   SuperSpeed USB Device Capability:
     bLength                10
     bDescriptorType        16
     bDevCapabilityType      3
     bmAttributes         0x00
     wSpeedsSupported   0x000f
       Device can operate at Low Speed (1Mbps)
       Device can operate at Full Speed (12Mbps)
       Device can operate at High Speed (480Mbps)
       Device can operate at SuperSpeed (5Gbps)
     bFunctionalitySupport   1
       Lowest fully-functional device speed is Full Speed (12Mbps)
     bU1DevExitLat           1 micro seconds
     bU2DevExitLat         500 micro seconds
   SuperSpeedPlus USB Device Capability:
     bLength                20
     bDescriptorType        16
     bDevCapabilityType     10
     bmAttributes         0x00000001
       Sublink Speed Attribute count 1
       Sublink Speed ID count 0
     wFunctionalitySupport   0x1100
     bmSublinkSpeedAttr[0]   0x000a4030
       Speed Attribute ID: 0 10Gb/s Symmetric RX SuperSpeedPlus
     bmSublinkSpeedAttr[1]   0x000a40b0
       Speed Attribute ID: 0 10Gb/s Symmetric TX SuperSpeedPlus
Device Status:     0x0000
   (Bus Powered)

```

> 
> 
> thanks
> Lars
> 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] USB: serial: option: Add Telit FT980-KS composition
  2020-10-04 13:29   ` Leonid Bloch
@ 2020-10-04 14:16     ` Lars Melin
  2020-10-04 14:32       ` Lars Melin
  2020-10-19 17:02     ` [tip: perf/urgent] " tip-bot2 for Leonid Bloch
  1 sibling, 1 reply; 8+ messages in thread
From: Lars Melin @ 2020-10-04 14:16 UTC (permalink / raw)
  To: Leonid Bloch, Leonid Bloch, linux-kernel
  Cc: linux-usb, Greg Kroah-Hartman, Johan Hovold

On 10/4/2020 20:29, Leonid Bloch wrote:
> On 10/4/20 1:58 PM, Lars Melin wrote:
>> On 10/4/2020 16:57, Leonid Bloch wrote:
>>> This commit adds the following Telit FT980-KS composition:
>>>
>>> 0x1054: rndis, diag, adb, nmea, modem, modem, aux
>>>
>>> AT commands can be sent to /dev/ttyUSB5.
>>>
>>
>> Please submit a verbose lsusb listing for the device, I can't imagine
>> that the adb interface should be handled by the option serial driver so
>> there will never be a ttyUSB5.
> 
> Please see below.
> 
> Thanks,
> Leonid.
> 
> ```
> Bus 001 Device 005: ID 1bc7:1054 Telit Wireless Solutions
> Device Descriptor:
>    bLength                18
>    bDescriptorType         1
>    bcdUSB               2.10
>    bDeviceClass            0
>    bDeviceSubClass         0
>    bDeviceProtocol         0
>    bMaxPacketSize0        64
>    idVendor           0x1bc7 Telit Wireless Solutions
>    idProduct          0x1054
>    bcdDevice            4.14
>    iManufacturer           1 Telit Wireless Solutions
>    iProduct                2 FT980-KS
>    iSerial                 3 cb42f61
>    bNumConfigurations      1
>    Configuration Descriptor:
>      bLength                 9
>      bDescriptorType         2
>      wTotalLength       0x013d
>      bNumInterfaces          8
>      bConfigurationValue     1
>      iConfiguration          4 RNDIS_DIAG_ADB_NMEA_DUN_DUN_SER
>      bmAttributes         0xa0
>        (Bus Powered)
>        Remote Wakeup
>      MaxPower              500mA
>      Interface Association:
>        bLength                 8
>        bDescriptorType        11
>        bFirstInterface         0
>        bInterfaceCount         2
>        bFunctionClass        239 Miscellaneous Device
>        bFunctionSubClass       4
>        bFunctionProtocol       1
>        iFunction               7 RNDIS
>      Interface Descriptor:
>        bLength                 9
>        bDescriptorType         4
>        bInterfaceNumber        0
>        bAlternateSetting       0
>        bNumEndpoints           1
>        bInterfaceClass       239 Miscellaneous Device
>        bInterfaceSubClass      4
>        bInterfaceProtocol      1
>        iInterface              5 RNDIS Communications Control
>        ** UNRECOGNIZED:  05 24 00 10 01
>        ** UNRECOGNIZED:  05 24 01 00 01
>        ** UNRECOGNIZED:  04 24 02 00
>        ** UNRECOGNIZED:  05 24 06 00 01
>        Endpoint Descriptor:
>          bLength                 7
>          bDescriptorType         5
>          bEndpointAddress     0x81  EP 1 IN
>          bmAttributes            3
>            Transfer Type            Interrupt
>            Synch Type               None
>            Usage Type               Data
>          wMaxPacketSize     0x0008  1x 8 bytes
>          bInterval               9
>      Interface Descriptor:
>        bLength                 9
>        bDescriptorType         4
>        bInterfaceNumber        1
>        bAlternateSetting       0
>        bNumEndpoints           2
>        bInterfaceClass        10 CDC Data
>        bInterfaceSubClass      0
>        bInterfaceProtocol      0
>        iInterface              6 RNDIS Ethernet Data
>        Endpoint Descriptor:
>          bLength                 7
>          bDescriptorType         5
>          bEndpointAddress     0x8e  EP 14 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     0x0f  EP 15 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           2
>        bInterfaceClass       255 Vendor Specific Class
>        bInterfaceSubClass    255 Vendor Specific Subclass
>        bInterfaceProtocol     48
>        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 Descriptor:
>        bLength                 9
>        bDescriptorType         4
>        bInterfaceNumber        3
>        bAlternateSetting       0
>        bNumEndpoints           2
>        bInterfaceClass       255 Vendor Specific Class
>        bInterfaceSubClass     66
>        bInterfaceProtocol      1
>        iInterface              8 ADB Interface
>        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
>        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

//snip

Interface #3 for ADB must be blacklisted in the option entry for the 
device, by using .driver_info = RSVD(3)


thanks
Lars

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] USB: serial: option: Add Telit FT980-KS composition
  2020-10-04 14:16     ` Lars Melin
@ 2020-10-04 14:32       ` Lars Melin
  2020-10-04 16:03         ` Leonid Bloch
  0 siblings, 1 reply; 8+ messages in thread
From: Lars Melin @ 2020-10-04 14:32 UTC (permalink / raw)
  To: Leonid Bloch, Leonid Bloch, linux-kernel
  Cc: linux-usb, Greg Kroah-Hartman, Johan Hovold

On 10/4/2020 21:16, Lars Melin wrote:
> On 10/4/2020 20:29, Leonid Bloch wrote:
>> On 10/4/20 1:58 PM, Lars Melin wrote:
>>> On 10/4/2020 16:57, Leonid Bloch wrote:
>>>> This commit adds the following Telit FT980-KS composition:
>>>>
>>>> 0x1054: rndis, diag, adb, nmea, modem, modem, aux
>>>>
>>>> AT commands can be sent to /dev/ttyUSB5.
>>>>
>>>
>>> Please submit a verbose lsusb listing for the device, I can't imagine
>>> that the adb interface should be handled by the option serial driver so
>>> there will never be a ttyUSB5.
>>
>> Please see below.
>>
>> Thanks,
>> Leonid.
>>
>> ```
>> Bus 001 Device 005: ID 1bc7:1054 Telit Wireless Solutions
>> Device Descriptor:
>>    bLength                18
>>    bDescriptorType         1
>>    bcdUSB               2.10
>>    bDeviceClass            0
>>    bDeviceSubClass         0
>>    bDeviceProtocol         0
>>    bMaxPacketSize0        64
>>    idVendor           0x1bc7 Telit Wireless Solutions
>>    idProduct          0x1054
>>    bcdDevice            4.14
>>    iManufacturer           1 Telit Wireless Solutions
>>    iProduct                2 FT980-KS
>>    iSerial                 3 cb42f61
>>    bNumConfigurations      1
>>    Configuration Descriptor:
>>      bLength                 9
>>      bDescriptorType         2
>>      wTotalLength       0x013d
>>      bNumInterfaces          8
>>      bConfigurationValue     1
>>      iConfiguration          4 RNDIS_DIAG_ADB_NMEA_DUN_DUN_SER
>>      bmAttributes         0xa0
>>        (Bus Powered)
>>        Remote Wakeup
>>      MaxPower              500mA
>>      Interface Association:
>>        bLength                 8
>>        bDescriptorType        11
>>        bFirstInterface         0
>>        bInterfaceCount         2
>>        bFunctionClass        239 Miscellaneous Device
>>        bFunctionSubClass       4
>>        bFunctionProtocol       1
>>        iFunction               7 RNDIS
>>      Interface Descriptor:
>>        bLength                 9
>>        bDescriptorType         4
>>        bInterfaceNumber        0
>>        bAlternateSetting       0
>>        bNumEndpoints           1
>>        bInterfaceClass       239 Miscellaneous Device
>>        bInterfaceSubClass      4
>>        bInterfaceProtocol      1
>>        iInterface              5 RNDIS Communications Control
>>        ** UNRECOGNIZED:  05 24 00 10 01
>>        ** UNRECOGNIZED:  05 24 01 00 01
>>        ** UNRECOGNIZED:  04 24 02 00
>>        ** UNRECOGNIZED:  05 24 06 00 01
>>        Endpoint Descriptor:
>>          bLength                 7
>>          bDescriptorType         5
>>          bEndpointAddress     0x81  EP 1 IN
>>          bmAttributes            3
>>            Transfer Type            Interrupt
>>            Synch Type               None
>>            Usage Type               Data
>>          wMaxPacketSize     0x0008  1x 8 bytes
>>          bInterval               9
>>      Interface Descriptor:
>>        bLength                 9
>>        bDescriptorType         4
>>        bInterfaceNumber        1
>>        bAlternateSetting       0
>>        bNumEndpoints           2
>>        bInterfaceClass        10 CDC Data
>>        bInterfaceSubClass      0
>>        bInterfaceProtocol      0
>>        iInterface              6 RNDIS Ethernet Data
>>        Endpoint Descriptor:
>>          bLength                 7
>>          bDescriptorType         5
>>          bEndpointAddress     0x8e  EP 14 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     0x0f  EP 15 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           2
>>        bInterfaceClass       255 Vendor Specific Class
>>        bInterfaceSubClass    255 Vendor Specific Subclass
>>        bInterfaceProtocol     48
>>        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 Descriptor:
>>        bLength                 9
>>        bDescriptorType         4
>>        bInterfaceNumber        3
>>        bAlternateSetting       0
>>        bNumEndpoints           2
>>        bInterfaceClass       255 Vendor Specific Class
>>        bInterfaceSubClass     66
>>        bInterfaceProtocol      1
>>        iInterface              8 ADB Interface
>>        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
>>        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
> 
> //snip
> 
> Interface #3 for ADB must be blacklisted in the option entry for the 
> device, by using .driver_info = RSVD(3)
> 


When looking at the entries for other Telit deices in the option driver 
I see that their diag interface always has
the NCTRL flag so it is likely that you need that for this device also.
See the entry for PID 1052


thanks
Lars

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] USB: serial: option: Add Telit FT980-KS composition
  2020-10-04 14:32       ` Lars Melin
@ 2020-10-04 16:03         ` Leonid Bloch
  2020-10-05  2:04           ` Lars Melin
  0 siblings, 1 reply; 8+ messages in thread
From: Leonid Bloch @ 2020-10-04 16:03 UTC (permalink / raw)
  To: Lars Melin, Leonid Bloch, linux-kernel
  Cc: linux-usb, Greg Kroah-Hartman, Johan Hovold

Lars,


Thank you for your review! The changes which you have suggested also 
made ModemManager to recognize the device (which it didn't do before). 
Please check out the v2.


Cheers,
Leonid.

___

On 10/4/20 5:32 PM, Lars Melin wrote:
> On 10/4/2020 21:16, Lars Melin wrote:
>> On 10/4/2020 20:29, Leonid Bloch wrote:
>>> On 10/4/20 1:58 PM, Lars Melin wrote:
>>>> On 10/4/2020 16:57, Leonid Bloch wrote:
>>>>> This commit adds the following Telit FT980-KS composition:
>>>>>
>>>>> 0x1054: rndis, diag, adb, nmea, modem, modem, aux
>>>>>
>>>>> AT commands can be sent to /dev/ttyUSB5.
>>>>>
>>>>
>>>> Please submit a verbose lsusb listing for the device, I can't imagine
>>>> that the adb interface should be handled by the option serial driver so
>>>> there will never be a ttyUSB5.
>>>
>>> Please see below.
>>>
>>> Thanks,
>>> Leonid.
>>>
>>> ```
>>> Bus 001 Device 005: ID 1bc7:1054 Telit Wireless Solutions
>>> Device Descriptor:
>>>     bLength                18
>>>     bDescriptorType         1
>>>     bcdUSB               2.10
>>>     bDeviceClass            0
>>>     bDeviceSubClass         0
>>>     bDeviceProtocol         0
>>>     bMaxPacketSize0        64
>>>     idVendor           0x1bc7 Telit Wireless Solutions
>>>     idProduct          0x1054
>>>     bcdDevice            4.14
>>>     iManufacturer           1 Telit Wireless Solutions
>>>     iProduct                2 FT980-KS
>>>     iSerial                 3 cb42f61
>>>     bNumConfigurations      1
>>>     Configuration Descriptor:
>>>       bLength                 9
>>>       bDescriptorType         2
>>>       wTotalLength       0x013d
>>>       bNumInterfaces          8
>>>       bConfigurationValue     1
>>>       iConfiguration          4 RNDIS_DIAG_ADB_NMEA_DUN_DUN_SER
>>>       bmAttributes         0xa0
>>>         (Bus Powered)
>>>         Remote Wakeup
>>>       MaxPower              500mA
>>>       Interface Association:
>>>         bLength                 8
>>>         bDescriptorType        11
>>>         bFirstInterface         0
>>>         bInterfaceCount         2
>>>         bFunctionClass        239 Miscellaneous Device
>>>         bFunctionSubClass       4
>>>         bFunctionProtocol       1
>>>         iFunction               7 RNDIS
>>>       Interface Descriptor:
>>>         bLength                 9
>>>         bDescriptorType         4
>>>         bInterfaceNumber        0
>>>         bAlternateSetting       0
>>>         bNumEndpoints           1
>>>         bInterfaceClass       239 Miscellaneous Device
>>>         bInterfaceSubClass      4
>>>         bInterfaceProtocol      1
>>>         iInterface              5 RNDIS Communications Control
>>>         ** UNRECOGNIZED:  05 24 00 10 01
>>>         ** UNRECOGNIZED:  05 24 01 00 01
>>>         ** UNRECOGNIZED:  04 24 02 00
>>>         ** UNRECOGNIZED:  05 24 06 00 01
>>>         Endpoint Descriptor:
>>>           bLength                 7
>>>           bDescriptorType         5
>>>           bEndpointAddress     0x81  EP 1 IN
>>>           bmAttributes            3
>>>             Transfer Type            Interrupt
>>>             Synch Type               None
>>>             Usage Type               Data
>>>           wMaxPacketSize     0x0008  1x 8 bytes
>>>           bInterval               9
>>>       Interface Descriptor:
>>>         bLength                 9
>>>         bDescriptorType         4
>>>         bInterfaceNumber        1
>>>         bAlternateSetting       0
>>>         bNumEndpoints           2
>>>         bInterfaceClass        10 CDC Data
>>>         bInterfaceSubClass      0
>>>         bInterfaceProtocol      0
>>>         iInterface              6 RNDIS Ethernet Data
>>>         Endpoint Descriptor:
>>>           bLength                 7
>>>           bDescriptorType         5
>>>           bEndpointAddress     0x8e  EP 14 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     0x0f  EP 15 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           2
>>>         bInterfaceClass       255 Vendor Specific Class
>>>         bInterfaceSubClass    255 Vendor Specific Subclass
>>>         bInterfaceProtocol     48
>>>         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 Descriptor:
>>>         bLength                 9
>>>         bDescriptorType         4
>>>         bInterfaceNumber        3
>>>         bAlternateSetting       0
>>>         bNumEndpoints           2
>>>         bInterfaceClass       255 Vendor Specific Class
>>>         bInterfaceSubClass     66
>>>         bInterfaceProtocol      1
>>>         iInterface              8 ADB Interface
>>>         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
>>>         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
>>
>> //snip
>>
>> Interface #3 for ADB must be blacklisted in the option entry for the
>> device, by using .driver_info = RSVD(3)
>>
> 
> 
> When looking at the entries for other Telit deices in the option driver
> I see that their diag interface always has
> the NCTRL flag so it is likely that you need that for this device also.
> See the entry for PID 1052
> 
> 
> thanks
> Lars
> 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] USB: serial: option: Add Telit FT980-KS composition
  2020-10-04 16:03         ` Leonid Bloch
@ 2020-10-05  2:04           ` Lars Melin
  0 siblings, 0 replies; 8+ messages in thread
From: Lars Melin @ 2020-10-05  2:04 UTC (permalink / raw)
  To: Leonid Bloch, Leonid Bloch, linux-kernel
  Cc: linux-usb, Greg Kroah-Hartman, Johan Hovold

On 10/4/2020 23:03, Leonid Bloch wrote:
> Lars,
> 
> 
> Thank you for your review! The changes which you have suggested also 
> made ModemManager to recognize the device (which it didn't do before). 
> Please check out the v2.
> 
> 
> Cheers,
> Leonid.

The v2 looks good to me

br
Lars

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [tip: perf/urgent] USB: serial: option: Add Telit FT980-KS composition
  2020-10-04 13:29   ` Leonid Bloch
  2020-10-04 14:16     ` Lars Melin
@ 2020-10-19 17:02     ` tip-bot2 for Leonid Bloch
  1 sibling, 0 replies; 8+ messages in thread
From: tip-bot2 for Leonid Bloch @ 2020-10-19 17:02 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: Leonid Bloch, stable, Johan Hovold, Greg Kroah-Hartman, x86, LKML

The following commit has been merged into the perf/urgent branch of tip:

Commit-ID:     da6f40842515774026d5bfad297491eb513c40cc
Gitweb:        https://git.kernel.org/tip/da6f40842515774026d5bfad297491eb513c40cc
Author:        Leonid Bloch <lb.workbox@gmail.com>
AuthorDate:    Sun, 04 Oct 2020 18:58:13 +03:00
Committer:     Greg Kroah-Hartman <gregkh@linuxfoundation.org>
CommitterDate: Sat, 17 Oct 2020 08:31:21 +02:00

USB: serial: option: Add Telit FT980-KS composition

commit 924a9213358fb92fa3c3225d6d042aa058167405 upstream.

This commit adds the following Telit FT980-KS composition:

0x1054: rndis, diag, adb, nmea, modem, modem, aux

AT commands can be sent to /dev/ttyUSB2.

Signed-off-by: Leonid Bloch <lb.workbox@gmail.com>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/ce86bc05-f4e2-b199-0cdc-792715e3f275@asocscloud.com
Link: https://lore.kernel.org/r/20201004155813.2342-1-lb.workbox@gmail.com
Signed-off-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 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 a65e620..2a3bfd6 100644
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
@@ -1187,6 +1187,8 @@ static const struct usb_device_id option_ids[] = {
 	  .driver_info = NCTRL(2) | RSVD(3) },
 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1053, 0xff),	/* Telit FN980 (ECM) */
 	  .driver_info = NCTRL(0) | RSVD(1) },
+	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1054, 0xff),	/* Telit FT980-KS */
+	  .driver_info = NCTRL(2) | RSVD(3) },
 	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_ME910),
 	  .driver_info = NCTRL(0) | RSVD(1) | RSVD(3) },
 	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_ME910_DUAL_MODEM),

^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2020-10-19 17:03 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-04  9:57 [PATCH] USB: serial: option: Add Telit FT980-KS composition Leonid Bloch
2020-10-04 10:58 ` Lars Melin
2020-10-04 13:29   ` Leonid Bloch
2020-10-04 14:16     ` Lars Melin
2020-10-04 14:32       ` Lars Melin
2020-10-04 16:03         ` Leonid Bloch
2020-10-05  2:04           ` Lars Melin
2020-10-19 17:02     ` [tip: perf/urgent] " tip-bot2 for Leonid Bloch

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).