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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html