Hi Roger, > In a dual speed configuration we need to check at runtime if > we want to enable the Full-Speed or High-Speed endpoint. > > Signed-off-by: Roger Quadros <rog...@ti.com> > --- > drivers/usb/gadget/f_fastboot.c | 19 +++++++++++++++---- > 1 file changed, 15 insertions(+), 4 deletions(-) > > diff --git a/drivers/usb/gadget/f_fastboot.c > b/drivers/usb/gadget/f_fastboot.c index e1038ea..8ab187e 100644 > --- a/drivers/usb/gadget/f_fastboot.c > +++ b/drivers/usb/gadget/f_fastboot.c > @@ -115,6 +115,15 @@ static struct usb_descriptor_header > *fb_hs_function[] = { NULL, > }; > > +static struct usb_endpoint_descriptor * > +fb_ep_desc(struct usb_gadget *g, struct usb_endpoint_descriptor *fs, > + struct usb_endpoint_descriptor *hs) > +{ > + if (gadget_is_dualspeed(g) && g->speed == USB_SPEED_HIGH) > + return hs; > + return fs; > +} > + > /* > * static strings, in UTF-8 > */ > @@ -255,18 +264,19 @@ static int fastboot_set_alt(struct usb_function > *f, struct usb_composite_dev *cdev = f->config->cdev; > struct usb_gadget *gadget = cdev->gadget; > struct f_fastboot *f_fb = func_to_fastboot(f); > + const struct usb_endpoint_descriptor *d; > > debug("%s: func: %s intf: %d alt: %d\n", > __func__, f->name, interface, alt); > > - /* make sure we don't enable the ep twice */ > if (gadget->speed == USB_SPEED_HIGH) { > - ret = usb_ep_enable(f_fb->out_ep, &hs_ep_out); > is_high_speed = true; > } else { > - ret = usb_ep_enable(f_fb->out_ep, &fs_ep_out); > is_high_speed = false; > }
Very minor remark - Those {} are not needed. > + > + d = fb_ep_desc(gadget, &fs_ep_out, &hs_ep_out); > + ret = usb_ep_enable(f_fb->out_ep, d); > if (ret) { > puts("failed to enable out ep\n"); > return ret; > @@ -280,7 +290,8 @@ static int fastboot_set_alt(struct usb_function > *f, } > f_fb->out_req->complete = rx_handler_command; > > - ret = usb_ep_enable(f_fb->in_ep, &fs_ep_in); > + d = fb_ep_desc(gadget, &fs_ep_in, &hs_ep_in); > + ret = usb_ep_enable(f_fb->in_ep, d); > if (ret) { > puts("failed to enable in ep\n"); > goto err; Despite of that: Acked-by: Lukasz Majewski <l.majew...@samsung.com> -- Best regards, Lukasz Majewski Samsung R&D Institute Poland (SRPOL) | Linux Platform Group _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot