On Fri, 15 Jan 2021 15:09:39 +0200, Felipe Balbi wrote: > Thomas Haemmerle <thomas.haemmerle@xxxxxxxxxxxxxx> writes: > > Currently, the UVC function is activated when open on the corresponding > > v4l2 device is called. > > On another open the activation of the function fails since the > > deactivation counter in `usb_function_activate` equals 0. However the > > error is not returned to userspace since the open of the v4l2 device is > > successful. > > > > On a close the function is deactivated (since deactivation counter still > > equals 0) and the video is disabled in `uvc_v4l2_release`, although the > > UVC application potentially is streaming. > > > > Move activation of UVC function to subscription on UVC_EVENT_SETUP > > because there we can guarantee for a userspace application utilizing > > UVC. > > Block subscription on UVC_EVENT_SETUP while another application already > > is subscribed to it, indicated by `bool func_connected` in > > `struct uvc_device`. > > Extend the `struct uvc_file_handle` with member `bool is_uvc_app_handle` > > to tag it as the handle used by the userspace UVC application. > > > > With this a process is able to check capabilities of the v4l2 device > > without deactivating the function for the actual UVC application. > > > > Signed-off-by: Thomas Haemmerle <thomas.haemmerle@xxxxxxxxxxxxxx> > > Laurent, do you agree with the change? Gentle ping. Michael