On Tue Apr 1 11:54:17 2025 +0200, Hans Verkuil wrote: > 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 <hverk...@xs4all.nl> > Tested-by: Maxime Ripard <mrip...@kernel.org> > Link: > https://lore.kernel.org/linux-media/20240628-stoic-bettong-of-fortitude-e25611@houat/ > Signed-off-by: Mauro Carvalho Chehab <mchehab+hua...@kernel.org>
Patch committed. Thanks, Mauro Carvalho Chehab drivers/media/i2c/tc358743.c | 4 ++++ 1 file changed, 4 insertions(+) --- diff --git a/drivers/media/i2c/tc358743.c b/drivers/media/i2c/tc358743.c index 2d5f42f11158..dcef93e1a3bc 100644 --- a/drivers/media/i2c/tc358743.c +++ b/drivers/media/i2c/tc358743.c @@ -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;