All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] usb: cdc_acm: Add quirk for Uniden UBC125 scanner
@ 2018-06-11 10:39 ` Houston Yaroschoff
  0 siblings, 0 replies; 4+ messages in thread
From: Houston Yaroschoff @ 2018-06-11 10:39 UTC (permalink / raw)
  To: oneukum; +Cc: linux-usb, linux-kernel, Houston Yaroschoff

Uniden UBC125 radio scanner has USB interface which fails to work
with cdc_acm driver:
  usb 1-1.5: new full-speed USB device number 4 using xhci_hcd
  cdc_acm 1-1.5:1.0: Zero length descriptor references
  cdc_acm: probe of 1-1.5:1.0 failed with error -22

Adding the NO_UNION_NORMAL quirk for the device fixes the issue:
  usb 1-4: new full-speed USB device number 15 using xhci_hcd
  usb 1-4: New USB device found, idVendor=1965, idProduct=0018
  usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
  usb 1-4: Product: UBC125XLT
  usb 1-4: Manufacturer: Uniden Corp.
  usb 1-4: SerialNumber: 0001
  cdc_acm 1-4:1.0: ttyACM0: USB ACM device

`lsusb -v` of the device:

  Bus 001 Device 015: ID 1965:0018 Uniden Corporation
  Device Descriptor:
    bLength                18
    bDescriptorType         1
    bcdUSB               2.00
    bDeviceClass            2 Communications
    bDeviceSubClass         0
    bDeviceProtocol         0
    bMaxPacketSize0        64
    idVendor           0x1965 Uniden Corporation
    idProduct          0x0018
    bcdDevice            0.01
    iManufacturer           1 Uniden Corp.
    iProduct                2 UBC125XLT
    iSerial                 3 0001
    bNumConfigurations      1
    Configuration Descriptor:
      bLength                 9
      bDescriptorType         2
      wTotalLength           48
      bNumInterfaces          2
      bConfigurationValue     1
      iConfiguration          0
      bmAttributes         0x80
        (Bus Powered)
      MaxPower              500mA
      Interface Descriptor:
        bLength                 9
        bDescriptorType         4
        bInterfaceNumber        0
        bAlternateSetting       0
        bNumEndpoints           1
        bInterfaceClass         2 Communications
        bInterfaceSubClass      2 Abstract (modem)
        bInterfaceProtocol      0 None
        iInterface              0
        Endpoint Descriptor:
          bLength                 7
          bDescriptorType         5
          bEndpointAddress     0x87  EP 7 IN
          bmAttributes            3
            Transfer Type            Interrupt
            Synch Type               None
            Usage Type               Data
          wMaxPacketSize     0x0008  1x 8 bytes
          bInterval              10
      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     0x81  EP 1 IN
          bmAttributes            2
            Transfer Type            Bulk
            Synch Type               None
            Usage Type               Data
          wMaxPacketSize     0x0040  1x 64 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     0x0040  1x 64 bytes
          bInterval               0
  Device Status:     0x0000
    (Bus Powered)

Signed-off-by: Houston Yaroschoff <hstn@4ever3.net>
---
 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 7b366a6c0b49..998b32d0167e 100644
--- a/drivers/usb/class/cdc-acm.c
+++ b/drivers/usb/class/cdc-acm.c
@@ -1758,6 +1758,9 @@ static const struct usb_device_id acm_ids[] = {
 	{ USB_DEVICE(0x11ca, 0x0201), /* VeriFone Mx870 Gadget Serial */
 	.driver_info = SINGLE_RX_URB,
 	},
+	{ USB_DEVICE(0x1965, 0x0018), /* Uniden UBC125XLT */
+	.driver_info = NO_UNION_NORMAL, /* has no union descriptor */
+	},
 	{ USB_DEVICE(0x22b8, 0x7000), /* Motorola Q Phone */
 	.driver_info = NO_UNION_NORMAL, /* has no union descriptor */
 	},
-- 
2.11.0

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

* usb: cdc_acm: Add quirk for Uniden UBC125 scanner
@ 2018-06-11 10:39 ` Houston Yaroschoff
  0 siblings, 0 replies; 4+ messages in thread
From: Houston Yaroschoff @ 2018-06-11 10:39 UTC (permalink / raw)
  To: oneukum; +Cc: linux-usb, linux-kernel, Houston Yaroschoff

Uniden UBC125 radio scanner has USB interface which fails to work
with cdc_acm driver:
  usb 1-1.5: new full-speed USB device number 4 using xhci_hcd
  cdc_acm 1-1.5:1.0: Zero length descriptor references
  cdc_acm: probe of 1-1.5:1.0 failed with error -22

Adding the NO_UNION_NORMAL quirk for the device fixes the issue:
  usb 1-4: new full-speed USB device number 15 using xhci_hcd
  usb 1-4: New USB device found, idVendor=1965, idProduct=0018
  usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
  usb 1-4: Product: UBC125XLT
  usb 1-4: Manufacturer: Uniden Corp.
  usb 1-4: SerialNumber: 0001
  cdc_acm 1-4:1.0: ttyACM0: USB ACM device

`lsusb -v` of the device:

  Bus 001 Device 015: ID 1965:0018 Uniden Corporation
  Device Descriptor:
    bLength                18
    bDescriptorType         1
    bcdUSB               2.00
    bDeviceClass            2 Communications
    bDeviceSubClass         0
    bDeviceProtocol         0
    bMaxPacketSize0        64
    idVendor           0x1965 Uniden Corporation
    idProduct          0x0018
    bcdDevice            0.01
    iManufacturer           1 Uniden Corp.
    iProduct                2 UBC125XLT
    iSerial                 3 0001
    bNumConfigurations      1
    Configuration Descriptor:
      bLength                 9
      bDescriptorType         2
      wTotalLength           48
      bNumInterfaces          2
      bConfigurationValue     1
      iConfiguration          0
      bmAttributes         0x80
        (Bus Powered)
      MaxPower              500mA
      Interface Descriptor:
        bLength                 9
        bDescriptorType         4
        bInterfaceNumber        0
        bAlternateSetting       0
        bNumEndpoints           1
        bInterfaceClass         2 Communications
        bInterfaceSubClass      2 Abstract (modem)
        bInterfaceProtocol      0 None
        iInterface              0
        Endpoint Descriptor:
          bLength                 7
          bDescriptorType         5
          bEndpointAddress     0x87  EP 7 IN
          bmAttributes            3
            Transfer Type            Interrupt
            Synch Type               None
            Usage Type               Data
          wMaxPacketSize     0x0008  1x 8 bytes
          bInterval              10
      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     0x81  EP 1 IN
          bmAttributes            2
            Transfer Type            Bulk
            Synch Type               None
            Usage Type               Data
          wMaxPacketSize     0x0040  1x 64 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     0x0040  1x 64 bytes
          bInterval               0
  Device Status:     0x0000
    (Bus Powered)

Signed-off-by: Houston Yaroschoff <hstn@4ever3.net>
---
 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 7b366a6c0b49..998b32d0167e 100644
--- a/drivers/usb/class/cdc-acm.c
+++ b/drivers/usb/class/cdc-acm.c
@@ -1758,6 +1758,9 @@ static const struct usb_device_id acm_ids[] = {
 	{ USB_DEVICE(0x11ca, 0x0201), /* VeriFone Mx870 Gadget Serial */
 	.driver_info = SINGLE_RX_URB,
 	},
+	{ USB_DEVICE(0x1965, 0x0018), /* Uniden UBC125XLT */
+	.driver_info = NO_UNION_NORMAL, /* has no union descriptor */
+	},
 	{ USB_DEVICE(0x22b8, 0x7000), /* Motorola Q Phone */
 	.driver_info = NO_UNION_NORMAL, /* has no union descriptor */
 	},

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

* Re: [PATCH] usb: cdc_acm: Add quirk for Uniden UBC125 scanner
@ 2018-06-11 10:54   ` Oliver Neukum
  0 siblings, 0 replies; 4+ messages in thread
From: Oliver Neukum @ 2018-06-11 10:54 UTC (permalink / raw)
  To: Houston Yaroschoff; +Cc: linux-kernel, linux-usb

On Mo, 2018-06-11 at 12:39 +0200, Houston Yaroschoff wrote:
> Uniden UBC125 radio scanner has USB interface which fails to work
> with cdc_acm driver:
>   usb 1-1.5: new full-speed USB device number 4 using xhci_hcd
>   cdc_acm 1-1.5:1.0: Zero length descriptor references
>   cdc_acm: probe of 1-1.5:1.0 failed with error -22
> 
> Adding the NO_UNION_NORMAL quirk for the device fixes the issue:
>   usb 1-4: new full-speed USB device number 15 using xhci_hcd
>   usb 1-4: New USB device found, idVendor=1965, idProduct=0018
>   usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
>   usb 1-4: Product: UBC125XLT
>   usb 1-4: Manufacturer: Uniden Corp.
>   usb 1-4: SerialNumber: 0001
>   cdc_acm 1-4:1.0: ttyACM0: USB ACM device
> 
> `lsusb -v` of the device:
> 
>   Bus 001 Device 015: ID 1965:0018 Uniden Corporation
>   Device Descriptor:
>     bLength                18
>     bDescriptorType         1
>     bcdUSB               2.00
>     bDeviceClass            2 Communications
>     bDeviceSubClass         0
>     bDeviceProtocol         0
>     bMaxPacketSize0        64
>     idVendor           0x1965 Uniden Corporation
>     idProduct          0x0018
>     bcdDevice            0.01
>     iManufacturer           1 Uniden Corp.
>     iProduct                2 UBC125XLT
>     iSerial                 3 0001
>     bNumConfigurations      1
>     Configuration Descriptor:
>       bLength                 9
>       bDescriptorType         2
>       wTotalLength           48
>       bNumInterfaces          2
>       bConfigurationValue     1
>       iConfiguration          0
>       bmAttributes         0x80
>         (Bus Powered)
>       MaxPower              500mA
>       Interface Descriptor:
>         bLength                 9
>         bDescriptorType         4
>         bInterfaceNumber        0
>         bAlternateSetting       0
>         bNumEndpoints           1
>         bInterfaceClass         2 Communications
>         bInterfaceSubClass      2 Abstract (modem)
>         bInterfaceProtocol      0 None
>         iInterface              0
>         Endpoint Descriptor:
>           bLength                 7
>           bDescriptorType         5
>           bEndpointAddress     0x87  EP 7 IN
>           bmAttributes            3
>             Transfer Type            Interrupt
>             Synch Type               None
>             Usage Type               Data
>           wMaxPacketSize     0x0008  1x 8 bytes
>           bInterval              10
>       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     0x81  EP 1 IN
>           bmAttributes            2
>             Transfer Type            Bulk
>             Synch Type               None
>             Usage Type               Data
>           wMaxPacketSize     0x0040  1x 64 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     0x0040  1x 64 bytes
>           bInterval               0
>   Device Status:     0x0000
>     (Bus Powered)
> 
> Signed-off-by: Houston Yaroschoff <hstn@4ever3.net>
Acked-by: Oliver Neukum <oneukum@suse.com>

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

* usb: cdc_acm: Add quirk for Uniden UBC125 scanner
@ 2018-06-11 10:54   ` Oliver Neukum
  0 siblings, 0 replies; 4+ messages in thread
From: Oliver Neukum @ 2018-06-11 10:54 UTC (permalink / raw)
  To: Houston Yaroschoff; +Cc: linux-kernel, linux-usb

On Mo, 2018-06-11 at 12:39 +0200, Houston Yaroschoff wrote:
> Uniden UBC125 radio scanner has USB interface which fails to work
> with cdc_acm driver:
>   usb 1-1.5: new full-speed USB device number 4 using xhci_hcd
>   cdc_acm 1-1.5:1.0: Zero length descriptor references
>   cdc_acm: probe of 1-1.5:1.0 failed with error -22
> 
> Adding the NO_UNION_NORMAL quirk for the device fixes the issue:
>   usb 1-4: new full-speed USB device number 15 using xhci_hcd
>   usb 1-4: New USB device found, idVendor=1965, idProduct=0018
>   usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
>   usb 1-4: Product: UBC125XLT
>   usb 1-4: Manufacturer: Uniden Corp.
>   usb 1-4: SerialNumber: 0001
>   cdc_acm 1-4:1.0: ttyACM0: USB ACM device
> 
> `lsusb -v` of the device:
> 
>   Bus 001 Device 015: ID 1965:0018 Uniden Corporation
>   Device Descriptor:
>     bLength                18
>     bDescriptorType         1
>     bcdUSB               2.00
>     bDeviceClass            2 Communications
>     bDeviceSubClass         0
>     bDeviceProtocol         0
>     bMaxPacketSize0        64
>     idVendor           0x1965 Uniden Corporation
>     idProduct          0x0018
>     bcdDevice            0.01
>     iManufacturer           1 Uniden Corp.
>     iProduct                2 UBC125XLT
>     iSerial                 3 0001
>     bNumConfigurations      1
>     Configuration Descriptor:
>       bLength                 9
>       bDescriptorType         2
>       wTotalLength           48
>       bNumInterfaces          2
>       bConfigurationValue     1
>       iConfiguration          0
>       bmAttributes         0x80
>         (Bus Powered)
>       MaxPower              500mA
>       Interface Descriptor:
>         bLength                 9
>         bDescriptorType         4
>         bInterfaceNumber        0
>         bAlternateSetting       0
>         bNumEndpoints           1
>         bInterfaceClass         2 Communications
>         bInterfaceSubClass      2 Abstract (modem)
>         bInterfaceProtocol      0 None
>         iInterface              0
>         Endpoint Descriptor:
>           bLength                 7
>           bDescriptorType         5
>           bEndpointAddress     0x87  EP 7 IN
>           bmAttributes            3
>             Transfer Type            Interrupt
>             Synch Type               None
>             Usage Type               Data
>           wMaxPacketSize     0x0008  1x 8 bytes
>           bInterval              10
>       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     0x81  EP 1 IN
>           bmAttributes            2
>             Transfer Type            Bulk
>             Synch Type               None
>             Usage Type               Data
>           wMaxPacketSize     0x0040  1x 64 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     0x0040  1x 64 bytes
>           bInterval               0
>   Device Status:     0x0000
>     (Bus Powered)
> 
> Signed-off-by: Houston Yaroschoff <hstn@4ever3.net>
Acked-by: Oliver Neukum <oneukum@suse.com>
---
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

end of thread, other threads:[~2018-06-11 11:01 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-06-11 10:39 [PATCH] usb: cdc_acm: Add quirk for Uniden UBC125 scanner Houston Yaroschoff
2018-06-11 10:39 ` Houston Yaroschoff
2018-06-11 10:54 ` [PATCH] " Oliver Neukum
2018-06-11 10:54   ` Oliver Neukum

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.