Re: [PATCHv3 4/4] usb: gadget: get rid ofUSB_GADGET_{DUAL,SUPER}SPEED

From: Michal Nazarewicz
Date: Mon Aug 22 2011 - 10:51:23 EST


On Sat, 20 Aug 2011, Michal Nazarewicz wrote:
--- a/drivers/usb/gadget/dummy_hcd.c
+++ b/drivers/usb/gadget/dummy_hcd.c
@@ -985,7 +985,7 @@ static int dummy_udc_probe (struct platform_device *pdev)

dum->gadget.name = gadget_name;
dum->gadget.ops = &dummy_ops;
- dum->gadget.max_speed = USB_SPEED_SUPER;;
+ dum->gadget.max_speed = USB_SPEED_SUPER;

On Sat, 20 Aug 2011 15:41:17 +0200, Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote:
You might as well get this right in patch 2/4. Then this hunk
wouldn't be needed.

Sorry about that, I've fixuped the wrong commit

--- a/drivers/usb/gadget/inode.c
+++ b/drivers/usb/gadget/inode.c
...
@@ -1773,11 +1767,7 @@ gadgetfs_suspend (struct usb_gadget *gadget)
}

static struct usb_gadget_driver gadgetfs_driver = {
-#ifdef CONFIG_USB_GADGET_DUALSPEED
.max_speed = USB_SPEED_HIGH,
-#else
- .max_speed = USB_SPEED_FULL,
-#endif

I'm not sure that a static definition is correct here. The actual
max_speed depends on what descriptors the userspace program sends.
Take a look at the ep_config() routine.

Good catch. I've changed it to:

if (dev->hs_config)
gadgetfs_driver.max_speed = USB_SPEED_HIGH;
else
gadgetfs_driver.max_speed = USB_SPEED_FULL;

just before usb_gadget_probe_driver(), which should do the trick.

--
Best regards, _ _
.o. | Liege of Serenely Enlightened Majesty of o' \,=./ `o
..o | Computer Science, Michal "mina86" Nazarewicz (o o)
ooo +-----<email/xmpp: mnazarewicz@xxxxxxxxxx>-----ooO--(_)--Ooo--
--
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/