diff mbox series

CDC-ACM : Add Icom PMR F3400 support (0c26:0020)

Message ID 20220817102440.117640-1-thierry.guibert@croix-rouge.fr (mailing list archive)
State Superseded
Headers show
Series CDC-ACM : Add Icom PMR F3400 support (0c26:0020) | expand

Commit Message

Thierry GUIBERT Aug. 17, 2022, 10:24 a.m. UTC
Supports for ICOM F3400 and ICOM F4400 PMR radios in CDC-ACM driver
enabling the AT serial port.
The Vendor Id is 0x0C26
The Product ID is 0x0020

Output of lsusb :
Bus 001 Device 009: ID 0c26:0020 Prolific Technology Inc. ICOM Radio
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            2 Communications
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x0c26 Prolific Technology Inc.
  idProduct          0x0020
  bcdDevice            0.00
  iManufacturer           1 ICOM Inc.
  iProduct                2 ICOM Radio
  iSerial                 3 *obfuscated*
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0030
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xc0
      Self Powered
    MaxPower                0mA
    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
      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              12
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass        10 CDC Data
      bInterfaceSubClass      0
      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     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0

Signed-off-by: Thierry GUIBERT <thierry.guibert@croix-rouge.fr>
---
 drivers/usb/class/cdc-acm.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Greg KH Aug. 18, 2022, 3:04 p.m. UTC | #1
On Wed, Aug 17, 2022 at 12:24:40PM +0200, Thierry GUIBERT wrote:
> Supports for ICOM F3400 and ICOM F4400 PMR radios in CDC-ACM driver
> enabling the AT serial port.
> The Vendor Id is 0x0C26
> The Product ID is 0x0020
> 
> Output of lsusb :
> Bus 001 Device 009: ID 0c26:0020 Prolific Technology Inc. ICOM Radio
> Couldn't open device, some information will be missing
> Device Descriptor:
>   bLength                18
>   bDescriptorType         1
>   bcdUSB               2.00
>   bDeviceClass            2 Communications
>   bDeviceSubClass         0
>   bDeviceProtocol         0
>   bMaxPacketSize0        64
>   idVendor           0x0c26 Prolific Technology Inc.
>   idProduct          0x0020
>   bcdDevice            0.00
>   iManufacturer           1 ICOM Inc.
>   iProduct                2 ICOM Radio
>   iSerial                 3 *obfuscated*
>   bNumConfigurations      1
>   Configuration Descriptor:
>     bLength                 9
>     bDescriptorType         2
>     wTotalLength       0x0030
>     bNumInterfaces          2
>     bConfigurationValue     1
>     iConfiguration          0
>     bmAttributes         0xc0
>       Self Powered
>     MaxPower                0mA
>     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
>       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              12
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        1
>       bAlternateSetting       0
>       bNumEndpoints           2
>       bInterfaceClass        10 CDC Data
>       bInterfaceSubClass      0
>       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     0x02  EP 2 OUT
>         bmAttributes            2
>           Transfer Type            Bulk
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0200  1x 512 bytes
>         bInterval               0
> 
> Signed-off-by: Thierry GUIBERT <thierry.guibert@croix-rouge.fr>
> ---
>  drivers/usb/class/cdc-acm.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c
> index 9b9aea24d58c..7735c6edce73 100644
> --- a/drivers/usb/class/cdc-acm.c
> +++ b/drivers/usb/class/cdc-acm.c
> @@ -1813,6 +1813,9 @@ static const struct usb_device_id acm_ids[] = {
>  	{ USB_DEVICE(0x0ca6, 0xa050), /* Castles VEGA3000 */
>  	.driver_info = NO_UNION_NORMAL, /* reports zero length descriptor */
>  	},
> +	{ USB_DEVICE(0x0c26, 0x0020), /* Icom ICF3400 Serie */
> +	.driver_info = NO_UNION_NORMAL, /* reports zero length descriptor */
> +	},

These were all in sorted order, until your entry :(

Can you fix this up to be in the correct order and resend a v2?

thanks,

greg k-h
Thierry GUIBERT Aug. 18, 2022, 4:54 p.m. UTC | #2
Hi Greg,

Do you expect me to reorder the whole structure by VendorId / ProductId ?

I can place my node after Castles VEGA 3000, but nodes "MARETRON USB100" 
"Alcatel OT-I650" and "DATECS FP-2000" are misplaced too in that case.

Regards,


On 18/08/2022 17:04, Greg KH wrote:
> On Wed, Aug 17, 2022 at 12:24:40PM +0200, Thierry GUIBERT wrote:
>> Supports for ICOM F3400 and ICOM F4400 PMR radios in CDC-ACM driver
>> enabling the AT serial port.
>> The Vendor Id is 0x0C26
>> The Product ID is 0x0020
>>
>> Output of lsusb :
>> Bus 001 Device 009: ID 0c26:0020 Prolific Technology Inc. ICOM Radio
>> Couldn't open device, some information will be missing
>> Device Descriptor:
>>    bLength                18
>>    bDescriptorType         1
>>    bcdUSB               2.00
>>    bDeviceClass            2 Communications
>>    bDeviceSubClass         0
>>    bDeviceProtocol         0
>>    bMaxPacketSize0        64
>>    idVendor           0x0c26 Prolific Technology Inc.
>>    idProduct          0x0020
>>    bcdDevice            0.00
>>    iManufacturer           1 ICOM Inc.
>>    iProduct                2 ICOM Radio
>>    iSerial                 3 *obfuscated*
>>    bNumConfigurations      1
>>    Configuration Descriptor:
>>      bLength                 9
>>      bDescriptorType         2
>>      wTotalLength       0x0030
>>      bNumInterfaces          2
>>      bConfigurationValue     1
>>      iConfiguration          0
>>      bmAttributes         0xc0
>>        Self Powered
>>      MaxPower                0mA
>>      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
>>        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              12
>>      Interface Descriptor:
>>        bLength                 9
>>        bDescriptorType         4
>>        bInterfaceNumber        1
>>        bAlternateSetting       0
>>        bNumEndpoints           2
>>        bInterfaceClass        10 CDC Data
>>        bInterfaceSubClass      0
>>        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     0x02  EP 2 OUT
>>          bmAttributes            2
>>            Transfer Type            Bulk
>>            Synch Type               None
>>            Usage Type               Data
>>          wMaxPacketSize     0x0200  1x 512 bytes
>>          bInterval               0
>>
>> Signed-off-by: Thierry GUIBERT <thierry.guibert@croix-rouge.fr>
>> ---
>>   drivers/usb/class/cdc-acm.c | 3 +++
>>   1 file changed, 3 insertions(+)
>>
>> diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c
>> index 9b9aea24d58c..7735c6edce73 100644
>> --- a/drivers/usb/class/cdc-acm.c
>> +++ b/drivers/usb/class/cdc-acm.c
>> @@ -1813,6 +1813,9 @@ static const struct usb_device_id acm_ids[] = {
>>   	{ USB_DEVICE(0x0ca6, 0xa050), /* Castles VEGA3000 */
>>   	.driver_info = NO_UNION_NORMAL, /* reports zero length descriptor */
>>   	},
>> +	{ USB_DEVICE(0x0c26, 0x0020), /* Icom ICF3400 Serie */
>> +	.driver_info = NO_UNION_NORMAL, /* reports zero length descriptor */
>> +	},
> These were all in sorted order, until your entry :(
>
> Can you fix this up to be in the correct order and resend a v2?
>
> thanks,
>
> greg k-h
Greg KH Aug. 18, 2022, 4:59 p.m. UTC | #3
On Thu, Aug 18, 2022 at 06:54:15PM +0200, Thierry GUIBERT wrote:
> Hi Greg,
> 
> Do you expect me to reorder the whole structure by VendorId / ProductId ?

No.

> I can place my node after Castles VEGA 3000, but nodes "MARETRON USB100"
> "Alcatel OT-I650" and "DATECS FP-2000" are misplaced too in that case.

Just move your entry up one and that should be good enough, right?

thanks,

greg k-h
diff mbox series

Patch

diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c
index 9b9aea24d58c..7735c6edce73 100644
--- a/drivers/usb/class/cdc-acm.c
+++ b/drivers/usb/class/cdc-acm.c
@@ -1813,6 +1813,9 @@  static const struct usb_device_id acm_ids[] = {
 	{ USB_DEVICE(0x0ca6, 0xa050), /* Castles VEGA3000 */
 	.driver_info = NO_UNION_NORMAL, /* reports zero length descriptor */
 	},
+	{ USB_DEVICE(0x0c26, 0x0020), /* Icom ICF3400 Serie */
+	.driver_info = NO_UNION_NORMAL, /* reports zero length descriptor */
+	},
 
 	{ USB_DEVICE(0x2912, 0x0001), /* ATOL FPrint */
 	.driver_info = CLEAR_HALT_CONDITIONS,