media: pci: mgb4: Fix timings comparison in VIDIOC_S_DV_TIMINGS

Compare the whole v4l2_bt_timings struct, not just the width/height when
setting new timings. Timings with the same resolution and different
pixelclock can now be properly set.

Signed-off-by: Martin Tůma <martin.tuma@digiteqautomotive.com>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
This commit is contained in:
Martin Tůma 2025-08-26 18:28:29 +02:00 committed by Hans Verkuil
parent 039b9302d6
commit 0750649b52

View File

@ -610,8 +610,7 @@ static int vidioc_s_dv_timings(struct file *file, void *fh,
timings->bt.height < video_timings_cap.bt.min_height ||
timings->bt.height > video_timings_cap.bt.max_height)
return -EINVAL;
if (timings->bt.width == vindev->timings.bt.width &&
timings->bt.height == vindev->timings.bt.height)
if (v4l2_match_dv_timings(timings, &vindev->timings, 0, false))
return 0;
if (vb2_is_busy(&vindev->queue))
return -EBUSY;