media: i2c: adv748x: Fix lookup of DV timings

The loop to match the requested timings with the ones supported by the
driver is incorrect. It always iterates thru the whole array of
supported modes. The bounds check after the loop always triggers
resulting in adv748x_hdmi_set_video_timings() always returning -EINVAL.

Fix this by correcting the lookup to break the loop when a match is
found.

Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
This commit is contained in:
Niklas Söderlund 2023-02-22 23:12:47 +01:00 committed by Hans Verkuil
parent 89013969e2
commit 1e293874fa
1 changed files with 3 additions and 3 deletions

View File

@ -176,9 +176,9 @@ static int adv748x_hdmi_set_video_timings(struct adv748x_state *state,
unsigned int i;
for (i = 0; i < ARRAY_SIZE(adv748x_hdmi_video_standards); i++) {
if (!v4l2_match_dv_timings(timings, &stds[i].timings, 250000,
false))
continue;
if (v4l2_match_dv_timings(timings, &stds[i].timings, 250000,
false))
break;
}
if (i >= ARRAY_SIZE(adv748x_hdmi_video_standards))