Message ID | 20250303-uvc-granpower-ng-v5-4-a3dfbe29fe91@chromium.org |
---|---|
State | Superseded |
Headers | show |
Series | media: uvcvideo: Implement Granular Power Saving | expand |
Hi Ricardo, Thank you for the patch. On Mon, Mar 03, 2025 at 07:13:41PM +0000, Ricardo Ribalda wrote: > Now that every ioctl takes care of their power management we can remove > the "global" power management. > > Despite its size, this is a relatively big change. We hope that there > are no size effects of it. If there are some specific devices that > miss-behave, we can add a small quirk for them. > > This patch introduces a behavioral change for the uvc "trigger" button. > Before the "trigger" button would work as long as userspace has opened > /dev/videoX. Now it only works when the camera is actually streaming. We > consider that this the most common (if not the only) usecase and > therefore we do not think of this as a regression. We'll see :-) > Reviewed-by: Hans de Goede <hdegoede@redhat.com> > Signed-off-by: Ricardo Ribalda <ribalda@chromium.org> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > --- > drivers/media/usb/uvc/uvc_v4l2.c | 8 -------- > 1 file changed, 8 deletions(-) > > diff --git a/drivers/media/usb/uvc/uvc_v4l2.c b/drivers/media/usb/uvc/uvc_v4l2.c > index 1c9ac72be58a..6af93e00b304 100644 > --- a/drivers/media/usb/uvc/uvc_v4l2.c > +++ b/drivers/media/usb/uvc/uvc_v4l2.c > @@ -652,7 +652,6 @@ static int uvc_v4l2_open(struct file *file) > { > struct uvc_streaming *stream; > struct uvc_fh *handle; > - int ret = 0; > > stream = video_drvdata(file); > uvc_dbg(stream->dev, CALLS, "%s\n", __func__); > @@ -662,12 +661,6 @@ static int uvc_v4l2_open(struct file *file) > if (!handle) > return -ENOMEM; > > - ret = uvc_pm_get(stream->dev); > - if (ret) { > - kfree(handle); > - return ret; > - } > - > v4l2_fh_init(&handle->vfh, &stream->vdev); > v4l2_fh_add(&handle->vfh); > handle->chain = stream->chain; > @@ -701,7 +694,6 @@ static int uvc_v4l2_release(struct file *file) > kfree(handle); > file->private_data = NULL; > > - uvc_pm_put(stream->dev); > return 0; > } >
diff --git a/drivers/media/usb/uvc/uvc_v4l2.c b/drivers/media/usb/uvc/uvc_v4l2.c index 1c9ac72be58a..6af93e00b304 100644 --- a/drivers/media/usb/uvc/uvc_v4l2.c +++ b/drivers/media/usb/uvc/uvc_v4l2.c @@ -652,7 +652,6 @@ static int uvc_v4l2_open(struct file *file) { struct uvc_streaming *stream; struct uvc_fh *handle; - int ret = 0; stream = video_drvdata(file); uvc_dbg(stream->dev, CALLS, "%s\n", __func__); @@ -662,12 +661,6 @@ static int uvc_v4l2_open(struct file *file) if (!handle) return -ENOMEM; - ret = uvc_pm_get(stream->dev); - if (ret) { - kfree(handle); - return ret; - } - v4l2_fh_init(&handle->vfh, &stream->vdev); v4l2_fh_add(&handle->vfh); handle->chain = stream->chain; @@ -701,7 +694,6 @@ static int uvc_v4l2_release(struct file *file) kfree(handle); file->private_data = NULL; - uvc_pm_put(stream->dev); return 0; }