Loading drivers/usb/gadget/composite.c +12 −5 Original line number Diff line number Diff line Loading @@ -150,6 +150,7 @@ int config_ep_by_speed(struct usb_gadget *g, struct usb_function *f, struct usb_ep *_ep) { struct usb_composite_dev *cdev; struct usb_endpoint_descriptor *chosen_desc = NULL; struct usb_descriptor_header **speed_desc = NULL; Loading @@ -161,6 +162,8 @@ int config_ep_by_speed(struct usb_gadget *g, if (!g || !f || !_ep) return -EIO; cdev = get_gadget_data(g); /* select desired speed */ switch (g->speed) { case USB_SPEED_SUPER_PLUS: Loading @@ -186,6 +189,13 @@ int config_ep_by_speed(struct usb_gadget *g, default: speed_desc = f->fs_descriptors; } if (!speed_desc) { DBG(cdev, "%s desc not present for function %s\n", usb_speed_string(g->speed), f->name); return -EIO; } /* find descriptors */ for_each_ep_desc(speed_desc, d_spd) { chosen_desc = (struct usb_endpoint_descriptor *)*d_spd; Loading Loading @@ -228,12 +238,9 @@ int config_ep_by_speed(struct usb_gadget *g, _ep->maxburst = comp_desc->bMaxBurst + 1; break; default: if (comp_desc->bMaxBurst != 0) { struct usb_composite_dev *cdev; cdev = get_gadget_data(g); if (comp_desc->bMaxBurst != 0) ERROR(cdev, "ep0 bMaxBurst must be 0\n"); } _ep->maxburst = 1; break; } Loading drivers/usb/gadget/function/u_audio.c +9 −4 Original line number Diff line number Diff line Loading @@ -402,11 +402,14 @@ int u_audio_start_capture(struct g_audio *audio_dev) struct usb_ep *ep; struct uac_rtd_params *prm; struct uac_params *params = &audio_dev->params; int req_len, i; int req_len, i, ret; ep = audio_dev->out_ep; prm = &uac->c_prm; config_ep_by_speed(gadget, &audio_dev->func, ep); ret = config_ep_by_speed(gadget, &audio_dev->func, ep); if (ret) return ret; req_len = prm->max_psize; prm->ep_enabled = true; Loading Loading @@ -455,11 +458,13 @@ int u_audio_start_playback(struct g_audio *audio_dev) struct uac_params *params = &audio_dev->params; unsigned int factor, rate; const struct usb_endpoint_descriptor *ep_desc; int req_len, i; int req_len, i, ret; ep = audio_dev->in_ep; prm = &uac->p_prm; config_ep_by_speed(gadget, &audio_dev->func, ep); ret = config_ep_by_speed(gadget, &audio_dev->func, ep); if (ret) return ret; ep_desc = ep->desc; Loading Loading
drivers/usb/gadget/composite.c +12 −5 Original line number Diff line number Diff line Loading @@ -150,6 +150,7 @@ int config_ep_by_speed(struct usb_gadget *g, struct usb_function *f, struct usb_ep *_ep) { struct usb_composite_dev *cdev; struct usb_endpoint_descriptor *chosen_desc = NULL; struct usb_descriptor_header **speed_desc = NULL; Loading @@ -161,6 +162,8 @@ int config_ep_by_speed(struct usb_gadget *g, if (!g || !f || !_ep) return -EIO; cdev = get_gadget_data(g); /* select desired speed */ switch (g->speed) { case USB_SPEED_SUPER_PLUS: Loading @@ -186,6 +189,13 @@ int config_ep_by_speed(struct usb_gadget *g, default: speed_desc = f->fs_descriptors; } if (!speed_desc) { DBG(cdev, "%s desc not present for function %s\n", usb_speed_string(g->speed), f->name); return -EIO; } /* find descriptors */ for_each_ep_desc(speed_desc, d_spd) { chosen_desc = (struct usb_endpoint_descriptor *)*d_spd; Loading Loading @@ -228,12 +238,9 @@ int config_ep_by_speed(struct usb_gadget *g, _ep->maxburst = comp_desc->bMaxBurst + 1; break; default: if (comp_desc->bMaxBurst != 0) { struct usb_composite_dev *cdev; cdev = get_gadget_data(g); if (comp_desc->bMaxBurst != 0) ERROR(cdev, "ep0 bMaxBurst must be 0\n"); } _ep->maxburst = 1; break; } Loading
drivers/usb/gadget/function/u_audio.c +9 −4 Original line number Diff line number Diff line Loading @@ -402,11 +402,14 @@ int u_audio_start_capture(struct g_audio *audio_dev) struct usb_ep *ep; struct uac_rtd_params *prm; struct uac_params *params = &audio_dev->params; int req_len, i; int req_len, i, ret; ep = audio_dev->out_ep; prm = &uac->c_prm; config_ep_by_speed(gadget, &audio_dev->func, ep); ret = config_ep_by_speed(gadget, &audio_dev->func, ep); if (ret) return ret; req_len = prm->max_psize; prm->ep_enabled = true; Loading Loading @@ -455,11 +458,13 @@ int u_audio_start_playback(struct g_audio *audio_dev) struct uac_params *params = &audio_dev->params; unsigned int factor, rate; const struct usb_endpoint_descriptor *ep_desc; int req_len, i; int req_len, i, ret; ep = audio_dev->in_ep; prm = &uac->p_prm; config_ep_by_speed(gadget, &audio_dev->func, ep); ret = config_ep_by_speed(gadget, &audio_dev->func, ep); if (ret) return ret; ep_desc = ep->desc; Loading