]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
media: tc358743: ignore video while HPD is low
authorHans Verkuil <hverkuil@xs4all.nl>
Tue, 1 Apr 2025 09:54:17 +0000 (11:54 +0200)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Wed, 30 Apr 2025 06:16:07 +0000 (08:16 +0200)
If the HPD is low (happens if there is no EDID or the
EDID is being updated), then return -ENOLINK in
tc358743_get_detected_timings() instead of detecting video.

This avoids userspace thinking that it can start streaming when
the HPD is low.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Tested-by: Maxime Ripard <mripard@kernel.org>
Link: https://lore.kernel.org/linux-media/20240628-stoic-bettong-of-fortitude-e25611@houat/
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/media/i2c/tc358743.c

index 2d5f42f111583bcda1c2ccca60436973168cb89c..dcef93e1a3bcdf2874844ba2a5128d94f1a651ae 100644 (file)
@@ -313,6 +313,10 @@ static int tc358743_get_detected_timings(struct v4l2_subdev *sd,
 
        memset(timings, 0, sizeof(struct v4l2_dv_timings));
 
+       /* if HPD is low, ignore any video */
+       if (!(i2c_rd8(sd, HPD_CTL) & MASK_HPD_OUT0))
+               return -ENOLINK;
+
        if (no_signal(sd)) {
                v4l2_dbg(1, debug, sd, "%s: no valid signal\n", __func__);
                return -ENOLINK;