media: uvcvideo: Refactor uvc_queue_streamon

Do uvc_pm_get before we call uvc_queue_streamon. Although the current
code is correct, uvc_ioctl_streamon is allways called after uvc_pm_get,
this change makes the code more resiliant to future changes.

Suggested-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Link: https://lore.kernel.org/r/20250509-uvc-followup-v1-2-73bcde30d2b5@chromium.org
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
This commit is contained in:
Ricardo Ribalda 2025-05-09 18:24:14 +00:00 committed by Hans Verkuil
parent 0aa112e4a8
commit 7e666b1aac

View File

@ -853,15 +853,16 @@ static int uvc_ioctl_streamon(struct file *file, void *fh,
if (handle->is_streaming)
return 0;
ret = uvc_queue_streamon(&stream->queue, type);
ret = uvc_pm_get(stream->dev);
if (ret)
return ret;
ret = uvc_pm_get(stream->dev);
ret = uvc_queue_streamon(&stream->queue, type);
if (ret) {
uvc_queue_streamoff(&stream->queue, type);
uvc_pm_put(stream->dev);
return ret;
}
handle->is_streaming = true;
return 0;