On Mon, 22 Aug 2011, Michal Nazarewicz wrote: > >> --- 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. Yes, that sounds like the right thing to do. Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html