UPSTREAM: usb: gadget: f_uvc: change endpoint allocation in uvc_function_bind()

when call uvc_function_bind(), gadget still have no connection speed,
just follow other gadget function, use fs endpoint descriptor to allocate
a video endpoint, remove gadget_is_{super|dual}speed() API call.

Signed-off-by: Linyu Yuan <quic_linyyuan@quicinc.com>
Link: https://lore.kernel.org/r/20230803091053.9714-4-quic_linyyuan@quicinc.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

Bug: 301887900
Change-Id: I076e51716e4bab7a70a43ad3e080b4c4e110c9db
(cherry picked from commit 3c5b006f3ee800b4bd9ed37b3a8f271b8560126e
 https://kernel.googlesource.com/pub/scm/linux/kernel/git/gregkh/usb usb-next)
Signed-off-by: Avichal Rakesh <arakesh@google.com>
This commit is contained in:
Linyu Yuan 2023-08-03 17:10:49 +08:00 committed by Todd Kjos
parent 5a05f2e755
commit 5c4815f5b6

View File

@ -673,21 +673,13 @@ uvc_function_bind(struct usb_configuration *c, struct usb_function *f)
}
uvc->control_ep = ep;
if (gadget_is_superspeed(c->cdev->gadget))
ep = usb_ep_autoconfig_ss(cdev->gadget, &uvc_ss_streaming_ep,
&uvc_ss_streaming_comp);
else if (gadget_is_dualspeed(cdev->gadget))
ep = usb_ep_autoconfig(cdev->gadget, &uvc_hs_streaming_ep);
else
ep = usb_ep_autoconfig(cdev->gadget, &uvc_fs_streaming_ep);
ep = usb_ep_autoconfig(cdev->gadget, &uvc_fs_streaming_ep);
if (!ep) {
uvcg_info(f, "Unable to allocate streaming EP\n");
goto error;
}
uvc->video.ep = ep;
uvc_fs_streaming_ep.bEndpointAddress = uvc->video.ep->address;
uvc_hs_streaming_ep.bEndpointAddress = uvc->video.ep->address;
uvc_ss_streaming_ep.bEndpointAddress = uvc->video.ep->address;