All of lore.kernel.org
 help / color / mirror / Atom feed
From: Felipe Balbi <balbi@ti.com>
To: Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
Cc: <balbi@ti.com>, Greg KH <gregkh@linuxfoundation.org>,
	<linux-usb@vger.kernel.org>, <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH]  usb: gadget: USB3 support to the legacy printer driver
Date: Tue, 18 Nov 2014 09:17:53 -0600	[thread overview]
Message-ID: <20141118151753.GB8223@saruman> (raw)
In-Reply-To: <546B5578.8040809@linaro.org>

[-- Attachment #1: Type: text/plain, Size: 10553 bytes --]

Hi,

On Tue, Nov 18, 2014 at 09:19:36AM -0500, Jorge Ramirez-Ortiz wrote:
> Hi Felipe/Greg
> 
> Thanks for your comments on my previous attempt.
> I think I addressed them here.

no you haven't. Read Documentation/SubmittingPatches, read the mailing
list archives and you'll see your basic mistake.

> I added some logs of a run captured on a recent kernel, fixed the indentations,
> replaced the if/else with a switch statement and removed the copyright.
> 
> Note that the tests seem to indicate a performance issue on the net2280 driver: the
> exact same tests using the usb338x.c driver from PLX allows for transfer speeds of 1Gbps.
> 
> cheers
> Jorge
> 
> File transfer test using g_printer on 10b5:3380
> ================================================
> 
> The host will transfer a file to the device using the g_printer driver.
> 
> 0) enable the net2280 on the g_printer:
> --------------------------------------
> 
>         From 8e306693839a77bfe3411a842d4d20acb9dae9e3 Mon Sep 17 00:00:00 2001
>         From: Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
>         Date: Mon, 17 Nov 2014 22:31:59 -0500
>         Subject: [PATCH] use the 338x
>       
>         ---
>          drivers/usb/gadget/legacy/printer.c | 4 ++--
>          1 file changed, 2 insertions(+), 2 deletions(-)
>       
>        diff --git a/drivers/usb/gadget/legacy/printer.c
> b/drivers/usb/gadget/legacy/printer.c
>        index 456730b..ba919a0 100644
>        --- a/drivers/usb/gadget/legacy/printer.c
>        +++ b/drivers/usb/gadget/legacy/printer.c
>        @@ -99,8 +99,8 @@ static struct printer_dev usb_printer_gadget;
>       
>         /* Thanks to NetChip Technologies for donating this product ID.
>          */
>        -#define PRINTER_VENDOR_NUM     0x0525          /* NetChip */
>        -#define PRINTER_PRODUCT_NUM    0xa4a8          /* Linux-USB Printer Gadget */
>        +#define PRINTER_VENDOR_NUM     0x10B5        
>        +#define PRINTER_PRODUCT_NUM    0x3380        

you have no clue what these mean, do you ? How about reading the USB
specification of even http://www.beyondlogic.org/usbnutshell/usb1.shtml

Changing these will not cause you to use usb338x driver, you're just
using a vendor/product ID you don't own.

>       
>         /* Some systems will want different product identifiers published in the
>          * device descriptor, either numbers or strings or both.  These string
>        --
>        1.9.1
> 
> 
> 1) Host logs:
> -------------
> 
> [jramirez@miro ~]$ 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 007: ID 10b5:3380 Comodo (PLX?)
> 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
> 
> [jramirez@miro ~]$ lsusb -s 004:007 -v
> 
> Bus 004 Device 007: ID 10b5:3380 Comodo (PLX?)
> Couldn't open device, some information will be missing
> Device Descriptor:
>   bLength                18
>   bDescriptorType         1
>   bcdUSB               3.00
>   bDeviceClass            0 (Defined at Interface level)
>   bDeviceSubClass         0
>   bDeviceProtocol         0
>   bMaxPacketSize0         9
>   idVendor           0x10b5 Comodo (PLX?)
>   idProduct          0x3380
>   bcdDevice            3.18
>   iManufacturer           1
>   iProduct                2
>   iSerial                 3
>   bNumConfigurations      1
>   Configuration Descriptor:
>     bLength                 9
>     bDescriptorType         2
>     wTotalLength           44
>     bNumInterfaces          1
>     bConfigurationValue     1
>     iConfiguration          0
>     bmAttributes         0xc0
>       Self Powered
>     MaxPower                2mA
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        0
>       bAlternateSetting       0
>       bNumEndpoints           2
>       bInterfaceClass         7 Printer
>       bInterfaceSubClass      1 Printer
>       bInterfaceProtocol      2 Bidirectional
>       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     0x0400  1x 1024 bytes
>         bInterval               0
>         bMaxBurst               0
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x01  EP 1 OUT
>         bmAttributes            2
>           Transfer Type            Bulk
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0400  1x 1024 bytes
>         bInterval               0
>         bMaxBurst               0
> 
>  
> [jramirez@miro host.git (master%)]$ sudo ./usbhost file.wav
> [sudo] password for jramirez:
> Opening device 10B5:3380...
> 
> 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: 10B5:3380
>          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
> 
> 2) Device Logs:
> --------------
> 
> [jramirez@dali ~]$ cat /proc/version
> Linux version 3.18.0-rc5+ (jramirez@localhost.localdomain) (gcc version 4.8.3
> 20140911 (Red Hat 4.8.3-7) (GCC) ) #1 SMP Mon Nov 17 21:59:22 EST 2014
> 
> 
> [   72.345683] net2280 0000:02:00.0: usb_reset_338x: Defect 7374 FsmValue 0xf0000000
> [   72.345706] net2280 0000:02:00.0: usb_reinit_338x: Defect 7374 FsmValue f0000000
> [   72.345748] net2280 0000:02:00.0: irq 35 for MSI/MSI-X
> [   72.345798] net2280 0000:02:00.0: PLX NET228x/USB338x USB Peripheral Controller
> [   72.345801] net2280 0000:02:00.0: irq 35, pci mem ffffc90004960000, chip rev 00ab
> [   72.345803] net2280 0000:02:00.0: version: 2005 Sept 27/v3.0; dma enabled legacy mode
> [   86.630589] printer gadget: Printer Gadget, version: 2007 OCT 06
> [   86.630593] printer gadget: printer ready
> [   86.630599] net2280 0000:02:00.0: Operate Defect 7374 workaround soft this time
> [   86.630600] net2280 0000:02:00.0: It will operate on cold-reboot and SS connect
> [   86.630709] net2280 0000:02:00.0: ep0_start_338x: Defect 7374 FsmValue 10000000
> [   86.870669] net2280 0000:02:00.0: INFO: Defect 7374 workaround waited about
> [   86.875065] printer gadget: super-speed config #1: printer
> [   86.875077] printer gadget: Using interface 0
> 
> 
> [jramirez@dali device.git (master%)]$ sudo ./usbdevice
> Receiving file
> 
> Transfer rate => 462 Mbits/sec [57MB/sec]
>  - file size : 58 MB
>  - time      : 1.12 sec
> 
> 
> As mentioned above, using the usb338x driver from PLX instead of the net2280 from
> kernel.org, the effective file transfer rate increases 1Gbps.

do you want to debug that and find the culprit since you're already at
it ?

> 
> 
> 3) Patch:
> ---------
> 
> 
> 
> From 9b5ee9330c5c02cf51328c350036c1dac998b732 Mon Sep 17 00:00:00 2001
> From: Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
> Date: Thu, 25 Sep 2014 16:17:20 -0400
> Subject: [PATCH 2/3] usb: gadget: add USB3 support to the printer driver
> 
> Add SS descriptors to support the capabilities provided by USB3 controller
> drivers; unit tests run using a PLX 3380 [max transfer speed measured of 1Gbps]
> 
> This driver shall fallback to lower operating modes when the higher ones are
> not available.
> 
> Signed-off-by: Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
> ---
>  drivers/usb/gadget/legacy/printer.c | 65 +++++++++++++++++++++++++++++++++----
>  1 file changed, 59 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/usb/gadget/legacy/printer.c b/drivers/usb/gadget/legacy/printer.c
> index 6474081..456730b 100644
> --- a/drivers/usb/gadget/legacy/printer.c
> +++ b/drivers/usb/gadget/legacy/printer.c
> @@ -208,6 +208,43 @@ static struct usb_descriptor_header *hs_printer_function[] = {
>      NULL
>  };
>  
> +/*
> + * Added endpoint descriptors for 3.0 devices
> + */
> +
> +static struct usb_endpoint_descriptor ss_ep_in_desc = {
> +    .bLength =              USB_DT_ENDPOINT_SIZE,
> +    .bDescriptorType =      USB_DT_ENDPOINT,
> +    .bmAttributes =         USB_ENDPOINT_XFER_BULK,
> +    .wMaxPacketSize =       cpu_to_le16(1024),
> +};

all your tabs have been converted into spaces. Perhaps try:

	$ git help send-email

and figure out how to use that ?

-- 
balbi

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

  reply	other threads:[~2014-11-18 15:17 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-17 23:19 [PATCH] usb: gadget: USB3 support to the legacy printer driver Jorge Ramirez-Ortiz
2014-11-18  0:30 ` Felipe Balbi
2014-11-18  0:54   ` Greg KH
2014-11-18  1:14     ` Jorge Ramirez-Ortiz
2014-11-18 14:19   ` Jorge Ramirez-Ortiz
2014-11-18 15:17     ` Felipe Balbi [this message]
2014-11-18 17:52       ` Jorge Ramirez-Ortiz
2014-11-18 18:00         ` Felipe Balbi
2014-11-18 20:41           ` Jorge Ramirez-Ortiz
2014-11-18 20:47             ` Felipe Balbi
2014-11-18 21:33               ` Jorge Ramirez-Ortiz
2014-11-19  3:14                 ` Felipe Balbi
2014-11-18 21:45               ` Paul Zimmerman
2014-11-19  3:10                 ` Felipe Balbi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20141118151753.GB8223@saruman \
    --to=balbi@ti.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=jorge.ramirez-ortiz@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.