lkml.org 
[lkml]   [2017]   [Oct]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.4 04/27] usb: cdc_acm: Add quirk for Elatec TWN3
    Date
    4.4-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Maksim Salau <msalau@iotecha.com>

    commit 765fb2f181cad669f2beb87842a05d8071f2be85 upstream.

    Elatec TWN3 has the union descriptor on data interface. This results in
    failure to bind the device to the driver with the following log:
    usb 1-1.2: new full speed USB device using streamplug-ehci and address 4
    usb 1-1.2: New USB device found, idVendor=09d8, idProduct=0320
    usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
    usb 1-1.2: Product: RFID Device (COM)
    usb 1-1.2: Manufacturer: OEM
    cdc_acm 1-1.2:1.0: Zero length descriptor references
    cdc_acm: probe of 1-1.2:1.0 failed with error -22

    Adding the NO_UNION_NORMAL quirk for the device fixes the issue.

    `lsusb -v` of the device:

    Bus 001 Device 003: ID 09d8:0320
    Device Descriptor:
    bLength 18
    bDescriptorType 1
    bcdUSB 2.00
    bDeviceClass 2 Communications
    bDeviceSubClass 0
    bDeviceProtocol 0
    bMaxPacketSize0 32
    idVendor 0x09d8
    idProduct 0x0320
    bcdDevice 3.00
    iManufacturer 1 OEM
    iProduct 2 RFID Device (COM)
    iSerial 0
    bNumConfigurations 1
    Configuration Descriptor:
    bLength 9
    bDescriptorType 2
    wTotalLength 67
    bNumInterfaces 2
    bConfigurationValue 1
    iConfiguration 0
    bmAttributes 0x80
    (Bus Powered)
    MaxPower 250mA
    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 0x0020 1x 32 bytes
    bInterval 2
    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 0x02 EP 2 OUT
    bmAttributes 2
    Transfer Type Bulk
    Synch Type None
    Usage Type Data
    wMaxPacketSize 0x0020 1x 32 bytes
    bInterval 0
    Endpoint Descriptor:
    bLength 7
    bDescriptorType 5
    bEndpointAddress 0x81 EP 1 IN
    bmAttributes 2
    Transfer Type Bulk
    Synch Type None
    Usage Type Data
    wMaxPacketSize 0x0020 1x 32 bytes
    bInterval 0
    CDC Header:
    bcdCDC 1.10
    CDC Call Management:
    bmCapabilities 0x03
    call management
    use DataInterface
    bDataInterface 1
    CDC ACM:
    bmCapabilities 0x06
    sends break
    line coding and serial state
    CDC Union:
    bMasterInterface 0
    bSlaveInterface 1
    Device Status: 0x0000
    (Bus Powered)

    Signed-off-by: Maksim Salau <msalau@iotecha.com>
    Acked-by: Oliver Neukum <oneukum@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/usb/class/cdc-acm.c | 3 +++
    1 file changed, 3 insertions(+)

    --- a/drivers/usb/class/cdc-acm.c
    +++ b/drivers/usb/class/cdc-acm.c
    @@ -1762,6 +1762,9 @@ static const struct usb_device_id acm_id
    { USB_DEVICE(0xfff0, 0x0100), /* DATECS FP-2000 */
    .driver_info = NO_UNION_NORMAL, /* reports zero length descriptor */
    },
    + { USB_DEVICE(0x09d8, 0x0320), /* Elatec GmbH TWN3 */
    + .driver_info = NO_UNION_NORMAL, /* has misplaced union descriptor */
    + },

    { USB_DEVICE(0x2912, 0x0001), /* ATOL FPrint */
    .driver_info = CLEAR_HALT_CONDITIONS,

    \
     
     \ /
      Last update: 2017-10-24 15:46    [W:4.713 / U:0.244 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site