Re: PD: [Bug 92341] xHCI USB driver, support for non-conformant HS USB devices with bulk endpoints of maxpacket size different than 512

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Dear Alan,
Your patch works like a charm.
Tested both on my device and on a few standard MassStorageDevice class USB card-readers.
Tests were conducted on Gigabyte GA-J1900N-D3V mainboard (with Intel® Celeron™ J1900 quad-core processor onboard).
dumps from running system follow.

-bash-4.2# dmesg | grep -i xhci
[    2.325894] xhci_hcd 0000:00:14.0: setting latency timer to 64
[    2.325903] xhci_hcd 0000:00:14.0: xHCI Host Controller
[    2.325917] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 1
[    2.326058] xhci_hcd 0000:00:14.0: cache line size of 64 is not supported
[    2.326082] xhci_hcd 0000:00:14.0: irq 106 for MSI/MSI-X
[    2.326235] usb usb1: Product: xHCI Host Controller
[    2.326239] usb usb1: Manufacturer: Linux 3.12.17r2 xhci_hcd
[    2.327300] xhci_hcd 0000:00:14.0: xHCI Host Controller
[    2.327309] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 2
[    2.327422] usb usb2: Product: xHCI Host Controller
[    2.327426] usb usb2: Manufacturer: Linux 3.12.17r2 xhci_hcd
[    2.537398] usb 2-1: new SuperSpeed USB device number 2 using xhci_hcd
[    2.721199] usb 1-1: new high-speed USB device number 2 using xhci_hcd
[    2.905195] usb 1-2: new high-speed USB device number 3 using xhci_hcd
[    3.025201] usb 1-1.2: new low-speed USB device number 4 using xhci_hcd
[  303.853145] usb 1-1.3: new high-speed USB device number 5 using xhci_hcd

-bash-4.2# lsusb
Bus 001 Device 002: ID 045b:0209 Hitachi, Ltd
Bus 001 Device 003: ID 03eb:0002 Atmel Corp. //MY DEVICE
Bus 002 Device 002: ID 045b:0210 Hitachi, Ltd
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 046d:c31c Logitech, Inc. Keyboard K120 for Business
Bus 001 Device 005: ID 1e3d:4083 Chipsbank Microelectronics Co., Ltd //standard MSD class USB reader

details of my device:
-bash-4.2# lsusb -v -d 03eb:

Bus 001 Device 003: ID 03eb:0002 Atmel Corp.
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x03eb Atmel Corp.
  idProduct          0x0002
  bcdDevice            0.01
  iManufacturer           1 webpage
  iProduct                2 USB2boards bridge with MSD.
  iSerial                 3 53303120313739343030372035323035
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           69
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xc0
      Self Powered
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk-Only
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0080  1x 128 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x86  EP 6 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0100  1x 256 bytes
        bInterval               0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           4
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol    255 Vendor Specific Protocol
      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     0x03  EP 3 OUT
        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     0x04  EP 4 OUT
        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     0x85  EP 5 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  bNumConfigurations      1
Device Status:     0x0001
  Self Powered

and a quick and dirty MSD-class  testing for any discrepancies/file errors :
-bash-4.2# dd if=/dev/urandom of=rand.rnd bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 116.22 s, 902 kB/s
-bash-4.2# sync
-bash-4.2# cp rand.rnd rand2.rnd
-bash-4.2# sync
-bash-4.2# cmp rand2.rnd rand.rnd
-bash-4.2# 

Regards.


--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux