Re: [PATCH 2/6] media: v4l2-dev: handle V4L2_CAP_EDID

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Aug 28, 2024 at 2:38 PM Sebastian Fricke
<sebastian.fricke@xxxxxxxxxxxxx> wrote:
>
> Hello,
>
> On 09.08.2024 09:57, Hans Verkuil wrote:
> >From: Erling Ljunggren <hljunggr@xxxxxxxxx>
> >
> >When the V4L2_CAP_EDID capability flag is set,
> >ioctls for enum inputs/outputs and get/set edid are automatically set.
> >
> >Signed-off-by: Erling Ljunggren <hljunggr@xxxxxxxxx>
> >Signed-off-by: Hans Verkuil <hverkuil-cisco@xxxxxxxxx>
>
> Reviewed-by: Sebastian Fricke <sebastian.fricke@xxxxxxxxxxxxx>
Reviewed-by: Ricardo Ribalda <ribalda@xxxxxxxxxxxx>
>
> Regards,
> Sebastian
> >---
> > drivers/media/v4l2-core/v4l2-dev.c | 15 +++++++++++++++
> > 1 file changed, 15 insertions(+)
> >
> >diff --git a/drivers/media/v4l2-core/v4l2-dev.c b/drivers/media/v4l2-core/v4l2-dev.c
> >index be2ba7ca5de2..570ba00e00b3 100644
> >--- a/drivers/media/v4l2-core/v4l2-dev.c
> >+++ b/drivers/media/v4l2-core/v4l2-dev.c
> >@@ -557,6 +557,7 @@ static void determine_valid_ioctls(struct video_device *vdev)
> >       bool is_tx = vdev->vfl_dir != VFL_DIR_RX;
> >       bool is_io_mc = vdev->device_caps & V4L2_CAP_IO_MC;
> >       bool has_streaming = vdev->device_caps & V4L2_CAP_STREAMING;
> >+      bool is_edid =  vdev->device_caps & V4L2_CAP_EDID;
> >
> >       bitmap_zero(valid_ioctls, BASE_VIDIOC_PRIVATE);
> >
> >@@ -784,6 +785,20 @@ static void determine_valid_ioctls(struct video_device *vdev)
> >               SET_VALID_IOCTL(ops, VIDIOC_S_TUNER, vidioc_s_tuner);
> >               SET_VALID_IOCTL(ops, VIDIOC_S_HW_FREQ_SEEK, vidioc_s_hw_freq_seek);
> >       }
> >+      if (is_edid) {
> >+              SET_VALID_IOCTL(ops, VIDIOC_G_EDID, vidioc_g_edid);
> >+              if (is_tx) {
> >+                      SET_VALID_IOCTL(ops, VIDIOC_G_OUTPUT, vidioc_g_output);
> >+                      SET_VALID_IOCTL(ops, VIDIOC_S_OUTPUT, vidioc_s_output);
> >+                      SET_VALID_IOCTL(ops, VIDIOC_ENUMOUTPUT, vidioc_enum_output);
> >+              }
> >+              if (is_rx) {
> >+                      SET_VALID_IOCTL(ops, VIDIOC_ENUMINPUT, vidioc_enum_input);
> >+                      SET_VALID_IOCTL(ops, VIDIOC_G_INPUT, vidioc_g_input);
> >+                      SET_VALID_IOCTL(ops, VIDIOC_S_INPUT, vidioc_s_input);
> >+                      SET_VALID_IOCTL(ops, VIDIOC_S_EDID, vidioc_s_edid);
> >+              }
> >+      }
> >
> >       bitmap_andnot(vdev->valid_ioctls, valid_ioctls, vdev->valid_ioctls,
> >                       BASE_VIDIOC_PRIVATE);
> >--
> >2.43.0
> >
> >
>


-- 
Ricardo Ribalda





[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux