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

From: Felipe Balbi
Date: Thu Nov 20 2014 - 14:42:22 EST


On Tue, Nov 18, 2014 at 03:11:54PM -0500, Jorge Ramirez-Ortiz wrote:
> 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@xxxxxxxxxx>
> ---
> 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),
> +};
> +
> +struct usb_ss_ep_comp_descriptor ss_ep_in_comp_desc = {
> + .bLength = sizeof(ss_ep_in_comp_desc),
> + .bDescriptorType = USB_DT_SS_ENDPOINT_COMP,
> +};
> +
> +static struct usb_endpoint_descriptor ss_ep_out_desc = {
> + .bLength = USB_DT_ENDPOINT_SIZE,
> + .bDescriptorType = USB_DT_ENDPOINT,
> + .bmAttributes = USB_ENDPOINT_XFER_BULK,
> + .wMaxPacketSize = cpu_to_le16(1024),
> +};
> +
> +struct usb_ss_ep_comp_descriptor ss_ep_out_comp_desc = {
> + .bLength = sizeof(ss_ep_out_comp_desc),
> + .bDescriptorType = USB_DT_SS_ENDPOINT_COMP,
> +};
> +
> +static struct usb_descriptor_header *ss_printer_function[] = {
> + (struct usb_descriptor_header *) &intf_desc,
> + (struct usb_descriptor_header *) &ss_ep_in_desc,
> + (struct usb_descriptor_header *) &ss_ep_in_comp_desc,
> + (struct usb_descriptor_header *) &ss_ep_out_desc,
> + (struct usb_descriptor_header *) &ss_ep_out_comp_desc,
> + NULL
> +};
> +
> static struct usb_otg_descriptor otg_descriptor = {
> .bLength = sizeof otg_descriptor,
> .bDescriptorType = USB_DT_OTG,
> @@ -220,7 +257,20 @@ static const struct usb_descriptor_header *otg_desc[] = {
> };
>
> /* maxpacket and other transfer characteristics vary by speed. */
> -#define ep_desc(g, hs, fs) (((g)->speed == USB_SPEED_HIGH)?(hs):(fs))
> +static inline struct usb_endpoint_descriptor *ep_desc(struct usb_gadget *gadget,
> + struct usb_endpoint_descriptor *fs,
> + struct usb_endpoint_descriptor *hs,
> + struct usb_endpoint_descriptor *ss)
> +{
> + switch(gadget->speed) {
^^
missing space here. I'll fix it, but next time run your
patches through scripts/checkpatch.pl

--
balbi

Attachment: signature.asc
Description: Digital signature