This is an automatic generated email to let you know that the following patch 
were queued at the 
http://git.linuxtv.org/cgit.cgi/v4l-utils.git tree:

Subject: cec-ctl: fail if HPD goes high unexpectedly
Author:  Hans Verkuil <hverk...@xs4all.nl>
Date:    Tue Apr 1 09:16:43 2025 +0200

In init_standby_wakeup_cycle_test() the display is put into standby.
Some displays pull the HPD low when in standby. This function checks
if that happened 5 seconds after the display reported that it is in
standby mode.

Wait two more seconds in that case and check if the HPD is still low
(i.e., the physical address is invalid). If it isn't, then something
weird is happening since you would not expect the HPD to go low and high
again while in standby.

Report a fail if this is detected.

Signed-off-by: Hans Verkuil <hverk...@xs4all.nl>

 utils/cec-ctl/cec-ctl.cpp | 10 ++++++++++
 1 file changed, 10 insertions(+)

---

http://git.linuxtv.org/cgit.cgi/v4l-utils.git/commit/?id=ce7d88199feff50d80d5345643dfaa962a7a6bdb
diff --git a/utils/cec-ctl/cec-ctl.cpp b/utils/cec-ctl/cec-ctl.cpp
index 9dcd74dba7a1..b23ac025013f 100644
--- a/utils/cec-ctl/cec-ctl.cpp
+++ b/utils/cec-ctl/cec-ctl.cpp
@@ -1487,6 +1487,16 @@ static int init_standby_wakeup_cycle_test(const struct 
node &node,
        if (pa != CEC_PHYS_ADDR_INVALID)
                return from;
 
+       sleep(2);
+
+       doioctl(&node, CEC_ADAP_G_PHYS_ADDR, &pa);
+       if (pa != CEC_PHYS_ADDR_INVALID) {
+               printf("FAIL: Five seconds after being put in the Standby state 
the HPD was low.\n");
+               printf("      Two seconds later the HPD was high again. HPD 
toggles while in Standby\n");
+               printf("      are not allowed.\n");
+               std::exit(EXIT_FAILURE);
+       }
+
        struct cec_caps caps = { };
        doioctl(&node, CEC_ADAP_G_CAPS, &caps);
        unsigned major = caps.version >> 16;

Reply via email to