[PATCH] usb: gadget: add USB3 support to the printer driver

From: Jorge Ramirez-Ortiz
Date: Tue Nov 18 2014 - 15:12:37 EST


This patch adds USB3 support to the printer driver.
Tests used two binaries (host/device) to handle the file transfer

[gadget] $ dmesg

net2280 0000:02:00.0: usb_reset_338x: Defect 7374 FsmValue 0xf0000000
net2280 0000:02:00.0: usb_reinit_338x: Defect 7374 FsmValue f0000000
net2280 0000:02:00.0: irq 35 for MSI/MSI-X
net2280 0000:02:00.0: PLX NET228x/USB338x USB Peripheral Controller
net2280 0000:02:00.0: irq 35, pci mem ffffc90005574000, chip rev 00ab
net2280 0000:02:00.0: version: 2005 Sept 27/v3.0; dma enabled legacy mode
printer gadget: Printer Gadget, version: 2007 OCT 06
printer gadget: printer ready
net2280 0000:02:00.0: Operate Defect 7374 workaround soft this time
net2280 0000:02:00.0: It will operate on cold-reboot and SS connect
net2280 0000:02:00.0: ep0_start_338x: Defect 7374 FsmValue 10000000
net2280 0000:02:00.0: INFO: Defect 7374 workaround waited about 40uSec for
Control Read Data Phase ACK
printer gadget: super-speed config #1: printer
printer gadget: Using interface 0

[gadget]$ sudo ./usbdevice
[sudo] password for jramirez:
Receive file:
..done
Transfer rate => 461 Mbits/sec [57MB/sec]
- file size : 58 MB
- time : 1.15 sec
Dump file: /tmp/dump.txt
..done


[host]$ sudo ./usbhost file.txt
Opening device 0525:A4A8...

Device properties:
bus number: 4
port path: 2 (from root hub)
device speed: 5000 Mbit/s (USB SuperSpeed)

Reading device descriptor:
length: 18
device class: 0
S/N: 3
VID:PID: 0525:A4A8
bcdDevice: 0318
iMan:iProd:iSer: 1:2:3
nb confs: 1

Reading BOS descriptor: 2 caps
USB 2.0 extension:
attributes : 06
USB 3.0 capabilities:
attributes : 00
supported speeds : 000F
supported functionality: 01

Reading first configuration descriptor:
nb interfaces: 1
interface[0]: id = 0
interface[0].altsetting[0]: num endpoints = 2
Class.SubClass.Protocol: 07.01.02
endpoint[0].address: 81
max packet size: 0400
polling interval: 00
max burst: 00 (USB 3.0)
bytes per interval: 0000 (USB 3.0)
endpoint[1].address: 01
max packet size: 0400
polling interval: 00
max burst: 00 (USB 3.0)
bytes per interval: 0000 (USB 3.0)

Claiming interface 0...

Reading string descriptors:
String (0x01): "Linux 3.18.0-rc5+ with net2280"
String (0x02): "Printer Gadget"
Transfering: endpoint_out 1, size 61387314
- number of bulk transfers : 7494
- max user transfer size : 8192 bytes
- max usb transfer size : 1024 bytes

[host]$ lsusb
Bus 002 Device 006: ID 05ac:1303 Apple, Inc. iPod Shuffle 4.Gen
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 009: ID 0525:a4a8 Netchip Technology, Inc. Linux-USB Printer
Gadget
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 005: ID 0403:6001 Future Technology Devices International, Ltd
FT232 USB-Serial (UART) IC
Bus 001 Device 003: ID 046d:0990 Logitech, Inc. QuickCam Pro 9000
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/