usb: gadget: f_uvc: change endpoint allocation in uvc_function_bind()
authorLinyu Yuan <quic_linyyuan@quicinc.com>
Thu, 3 Aug 2023 09:10:49 +0000 (17:10 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 22 Aug 2023 12:48:33 +0000 (14:48 +0200)
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>
drivers/usb/gadget/function/f_uvc.c

index 5e919fb..c8e149f 100644 (file)
@@ -719,21 +719,13 @@ uvc_function_bind(struct usb_configuration *c, struct usb_function *f)
        }
        uvc->enable_interrupt_ep = opts->enable_interrupt_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;