Re: [PATCH] usb: cdc_acm: Add quirk for Uniden UBC125 scanner

From: Oliver Neukum
Date: Mon Jun 11 2018 - 07:01:24 EST


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@xxxxxxxxxx>
Acked-by: Oliver Neukum <oneukum@xxxxxxxx>