Re: Subject: [PATCH] usb: gadget:Fixed the problem of abnormal function of mobile phone as UVC camera.

From: gregkh@xxxxxxxxxxxxxxxxxxx
Date: Thu Jul 25 2024 - 03:05:36 EST


On Thu, Jul 25, 2024 at 06:40:14AM +0000, 胡连勤 wrote:
> From b0058484e3fe7830c2092d5d19b46bf1bab73d83 Mon Sep 17 00:00:00 2001
> From: Lianqin Hu <hulianqin@xxxxxxxx>
> Date: Wed, 24 Jul 2024 18:52:27 +0800
> Subject: [PATCH] usb: gadget:Fixed the problem of abnormal function of mobile
> phone as UVC camera.

For some reason this showed up in the body of the email, and your
subject line has "subject" in it :(

> Android 15 USB function option interface adds camera function.
> after switching to camera function, USB enumeration is abnormal.

What do you mean by "abnormal"?

> the reason is that bind_deactivated is set to true in f_uvc driver,
> which causes gadget->deactivated to be set to true during
> usb_add_function,and dwc3 controller cannot perform pullup operation.

Why does the dwc3 controller matter here? What about other controllers?

>
> Therefore, modify f_uvc driver and remove the setting operation
> of func.bind_deactivated.
>
> Signed-off-by: Lianqin Hu <hulianqin@xxxxxxxx>
> ---
> drivers/usb/gadget/function/f_uvc.c | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/drivers/usb/gadget/function/f_uvc.c b/drivers/usb/gadget/function/f_uvc.c
> index 40187b7112e7..6d63bea14211 100644
> --- a/drivers/usb/gadget/function/f_uvc.c
> +++ b/drivers/usb/gadget/function/f_uvc.c
> @@ -1107,7 +1107,6 @@ static struct usb_function *uvc_alloc(struct usb_function_instance *fi)
> uvc->func.disable = uvc_function_disable;
> uvc->func.setup = uvc_function_setup;
> uvc->func.free_func = uvc_free;
> - uvc->func.bind_deactivated = true;

Why was this set to be true to start with? What commit id does this
fix? Should it be backported to older kernels, and if so, how far back?

What user-visable changes does this patch cause? What used to work that
now will not as that was added for a reason, right?

thanks,

greg k-h