]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
media: i2c: adv7604/tc358743/tda1997x: HPD low for HZ / 7
authorHans Verkuil <hverkuil@xs4all.nl>
Wed, 25 Jun 2025 06:35:36 +0000 (08:35 +0200)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Tue, 8 Jul 2025 06:35:26 +0000 (08:35 +0200)
When the EDID is updated, the hotplug detect signal must remain low for
100 ms minimum. Currently these three drivers use that exact minimum,
but some HDMI transmitters need the HPD to be low for a bit longer
before they detect that they need to read the EDID again.

Experience shows that HZ / 7 (= 143 ms) is a good value.

So change HZ / 10 to HZ / 7.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/media/i2c/adv7604.c
drivers/media/i2c/tc358743.c
drivers/media/i2c/tda1997x.c

index e271782b7b70bd15beff57aa5436d453e4d8ebab..afed38596362f8d3866e50eb0fa7595e3d10342e 100644 (file)
@@ -2448,8 +2448,8 @@ static int adv76xx_set_edid(struct v4l2_subdev *sd, struct v4l2_edid *edid)
        }
        cec_s_phys_addr(state->cec_adap, parent_pa, false);
 
-       /* enable hotplug after 100 ms */
-       schedule_delayed_work(&state->delayed_work_enable_hotplug, HZ / 10);
+       /* enable hotplug after 143 ms */
+       schedule_delayed_work(&state->delayed_work_enable_hotplug, HZ / 7);
        return 0;
 }
 
index 37ebc760f73b8db84cb7cab90ca27fd26bddc364..1cc7636e446d77d7c6266ca86517496261d2b039 100644 (file)
@@ -437,9 +437,9 @@ static void tc358743_enable_edid(struct v4l2_subdev *sd)
 
        v4l2_dbg(2, debug, sd, "%s:\n", __func__);
 
-       /* Enable hotplug after 100 ms. DDC access to EDID is also enabled when
+       /* Enable hotplug after 143 ms. DDC access to EDID is also enabled when
         * hotplug is enabled. See register DDC_CTL */
-       schedule_delayed_work(&state->delayed_work_enable_hotplug, HZ / 10);
+       schedule_delayed_work(&state->delayed_work_enable_hotplug, HZ / 7);
 
        tc358743_enable_interrupts(sd, true);
        tc358743_s_ctrl_detect_tx_5v(sd);
index 959590afc80fc3959a09f5fedeb4c9dd5356514a..1087d2bddaf29f81f572ec9eac1915ff5bff64b1 100644 (file)
@@ -589,8 +589,8 @@ static void tda1997x_enable_edid(struct v4l2_subdev *sd)
 
        v4l2_dbg(1, debug, sd, "%s\n", __func__);
 
-       /* Enable hotplug after 100ms */
-       schedule_delayed_work(&state->delayed_work_enable_hpd, HZ / 10);
+       /* Enable hotplug after 143ms */
+       schedule_delayed_work(&state->delayed_work_enable_hpd, HZ / 7);
 }
 
 /* -----------------------------------------------------------------------------