Skip to content

Commit c9edd2e

Browse files
Erling Ljunggrenmchehab
authored andcommitted
media: v4l2-dev: handle V4L2_CAP_EDID
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 <[email protected]> Signed-off-by: Hans Verkuil <[email protected]> Reviewed-by: Sebastian Fricke <[email protected]> Reviewed-by: Ricardo Ribalda <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
1 parent 6fe0593 commit c9edd2e

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

drivers/media/v4l2-core/v4l2-dev.c

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -557,6 +557,7 @@ static void determine_valid_ioctls(struct video_device *vdev)
557557
bool is_tx = vdev->vfl_dir != VFL_DIR_RX;
558558
bool is_io_mc = vdev->device_caps & V4L2_CAP_IO_MC;
559559
bool has_streaming = vdev->device_caps & V4L2_CAP_STREAMING;
560+
bool is_edid = vdev->device_caps & V4L2_CAP_EDID;
560561

561562
bitmap_zero(valid_ioctls, BASE_VIDIOC_PRIVATE);
562563

@@ -784,6 +785,20 @@ static void determine_valid_ioctls(struct video_device *vdev)
784785
SET_VALID_IOCTL(ops, VIDIOC_S_TUNER, vidioc_s_tuner);
785786
SET_VALID_IOCTL(ops, VIDIOC_S_HW_FREQ_SEEK, vidioc_s_hw_freq_seek);
786787
}
788+
if (is_edid) {
789+
SET_VALID_IOCTL(ops, VIDIOC_G_EDID, vidioc_g_edid);
790+
if (is_tx) {
791+
SET_VALID_IOCTL(ops, VIDIOC_G_OUTPUT, vidioc_g_output);
792+
SET_VALID_IOCTL(ops, VIDIOC_S_OUTPUT, vidioc_s_output);
793+
SET_VALID_IOCTL(ops, VIDIOC_ENUMOUTPUT, vidioc_enum_output);
794+
}
795+
if (is_rx) {
796+
SET_VALID_IOCTL(ops, VIDIOC_ENUMINPUT, vidioc_enum_input);
797+
SET_VALID_IOCTL(ops, VIDIOC_G_INPUT, vidioc_g_input);
798+
SET_VALID_IOCTL(ops, VIDIOC_S_INPUT, vidioc_s_input);
799+
SET_VALID_IOCTL(ops, VIDIOC_S_EDID, vidioc_s_edid);
800+
}
801+
}
787802

788803
bitmap_andnot(vdev->valid_ioctls, valid_ioctls, vdev->valid_ioctls,
789804
BASE_VIDIOC_PRIVATE);

0 commit comments

Comments
 (0)