diff options
author | Ricardo Ribalda <ribalda@chromium.org> | 2025-03-27 21:05:31 +0000 |
---|---|---|
committer | Hans Verkuil <hverkuil@xs4all.nl> | 2025-05-09 15:29:12 +0200 |
commit | d1b618e7954802fe5a08f71b1ef33e9b3518479b (patch) | |
tree | c026769dde59449873351a887440ae1ae1a1c048 /drivers/media | |
parent | a32d9c41bdb86e09ce731aa5fd3add89ac2103a5 (diff) |
media: uvcvideo: Do not turn on the camera for some ioctls
There are some ioctls that do not need to turn on the camera. Do not
call uvc_pm_get in those cases.
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
Message-ID: <20250327-uvc-granpower-ng-v6-5-35a2357ff348@chromium.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Diffstat (limited to 'drivers/media')
-rw-r--r-- | drivers/media/usb/uvc/uvc_v4l2.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/drivers/media/usb/uvc/uvc_v4l2.c b/drivers/media/usb/uvc/uvc_v4l2.c index 0f1ed0387b26..668a4e9d772c 100644 --- a/drivers/media/usb/uvc/uvc_v4l2.c +++ b/drivers/media/usb/uvc/uvc_v4l2.c @@ -1440,6 +1440,26 @@ static long uvc_v4l2_unlocked_ioctl(struct file *file, struct uvc_fh *handle = file->private_data; int ret; + /* The following IOCTLs do not need to turn on the camera. */ + switch (cmd) { + case VIDIOC_CREATE_BUFS: + case VIDIOC_DQBUF: + case VIDIOC_ENUM_FMT: + case VIDIOC_ENUM_FRAMEINTERVALS: + case VIDIOC_ENUM_FRAMESIZES: + case VIDIOC_ENUMINPUT: + case VIDIOC_EXPBUF: + case VIDIOC_G_FMT: + case VIDIOC_G_PARM: + case VIDIOC_G_SELECTION: + case VIDIOC_QBUF: + case VIDIOC_QUERYCAP: + case VIDIOC_REQBUFS: + case VIDIOC_SUBSCRIBE_EVENT: + case VIDIOC_UNSUBSCRIBE_EVENT: + return video_ioctl2(file, cmd, arg); + } + ret = uvc_pm_get(handle->stream->dev); if (ret) return ret; |