[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250528-uvc-grannular-invert-v1-8-d01581f9cc25@chromium.org>
Date: Wed, 28 May 2025 17:58:03 +0000
From: Ricardo Ribalda <ribalda@...omium.org>
To: Laurent Pinchart <laurent.pinchart@...asonboard.com>,
Hans de Goede <hdegoede@...hat.com>,
Mauro Carvalho Chehab <mchehab@...nel.org>,
Hans Verkuil <hverkuil@...all.nl>
Cc: linux-media@...r.kernel.org, linux-kernel@...r.kernel.org,
Ricardo Ribalda <ribalda@...omium.org>
Subject: [PATCH 8/9] media: uvcvideo: Do not turn on the camera unless is
needed
There are a lot of IOCTLs that do not need to turn on the camera. Eg:
- They only operate to internal data, like UVCIOC_CTRL_MAP.
- They are not applicable to the uvc driver, like VIDIOC_G_AUDIO.
- They are handled by the uvc framework, like VIDIOC_STREAMON.
Remove them from the turn-on list.
Signed-off-by: Ricardo Ribalda <ribalda@...omium.org>
---
drivers/media/usb/uvc/uvc_v4l2.c | 57 ----------------------------------------
1 file changed, 57 deletions(-)
diff --git a/drivers/media/usb/uvc/uvc_v4l2.c b/drivers/media/usb/uvc/uvc_v4l2.c
index e7373a2ae3c37ca02f9076773154901a603820ac..fcb1b79c214849ce4da96a86a688d777b32cc688 100644
--- a/drivers/media/usb/uvc/uvc_v4l2.c
+++ b/drivers/media/usb/uvc/uvc_v4l2.c
@@ -1291,75 +1291,18 @@ static long uvc_v4l2_unlocked_ioctl(struct file *file,
/* The following IOCTLs do need to turn on the camera. */
switch (cmd) {
- case UVCIOC_CTRL_MAP:
case UVCIOC_CTRL_QUERY:
- case VIDIOC_CROPCAP:
- case VIDIOC_DBG_G_CHIP_INFO:
- case VIDIOC_DBG_G_REGISTER:
- case VIDIOC_DBG_S_REGISTER:
- case VIDIOC_DECODER_CMD:
- case VIDIOC_DQEVENT:
- case VIDIOC_DV_TIMINGS_CAP:
- case VIDIOC_ENCODER_CMD:
- case VIDIOC_ENUMAUDIO:
- case VIDIOC_ENUMAUDOUT:
- case VIDIOC_ENUMOUTPUT:
- case VIDIOC_ENUMSTD:
- case VIDIOC_ENUM_DV_TIMINGS:
- case VIDIOC_ENUM_FREQ_BANDS:
- case VIDIOC_G_AUDIO:
- case VIDIOC_G_AUDOUT:
- case VIDIOC_G_CROP:
case VIDIOC_G_CTRL:
- case VIDIOC_G_DV_TIMINGS:
- case VIDIOC_G_EDID:
- case VIDIOC_G_ENC_INDEX:
case VIDIOC_G_EXT_CTRLS:
- case VIDIOC_G_FBUF:
- case VIDIOC_G_FREQUENCY:
case VIDIOC_G_INPUT:
- case VIDIOC_G_JPEGCOMP:
- case VIDIOC_G_MODULATOR:
- case VIDIOC_G_OUTPUT:
- case VIDIOC_G_PRIORITY:
- case VIDIOC_G_SLICED_VBI_CAP:
- case VIDIOC_G_STD:
- case VIDIOC_G_TUNER:
- case VIDIOC_LOG_STATUS:
- case VIDIOC_OVERLAY:
- case VIDIOC_PREPARE_BUF:
- case VIDIOC_QUERYBUF:
- case VIDIOC_QUERYCAP:
case VIDIOC_QUERYCTRL:
case VIDIOC_QUERYMENU:
- case VIDIOC_QUERYSTD:
- case VIDIOC_QUERY_DV_TIMINGS:
case VIDIOC_QUERY_EXT_CTRL:
- case VIDIOC_REMOVE_BUFS:
- case VIDIOC_STREAMOFF:
- case VIDIOC_STREAMON:
- case VIDIOC_S_AUDIO:
- case VIDIOC_S_AUDOUT:
- case VIDIOC_S_CROP:
case VIDIOC_S_CTRL:
- case VIDIOC_S_DV_TIMINGS:
- case VIDIOC_S_EDID:
case VIDIOC_S_EXT_CTRLS:
- case VIDIOC_S_FBUF:
case VIDIOC_S_FMT:
- case VIDIOC_S_FREQUENCY:
- case VIDIOC_S_HW_FREQ_SEEK:
case VIDIOC_S_INPUT:
- case VIDIOC_S_JPEGCOMP:
- case VIDIOC_S_MODULATOR:
- case VIDIOC_S_OUTPUT:
case VIDIOC_S_PARM:
- case VIDIOC_S_PRIORITY:
- case VIDIOC_S_SELECTION:
- case VIDIOC_S_STD:
- case VIDIOC_S_TUNER:
- case VIDIOC_TRY_DECODER_CMD:
- case VIDIOC_TRY_ENCODER_CMD:
case VIDIOC_TRY_EXT_CTRLS:
case VIDIOC_TRY_FMT:
return uvc_v4l2_pm_ioctl(file, cmd, arg);
--
2.49.0.1266.g31b7d2e469-goog
Powered by blists - more mailing lists