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: incorrect LA issue with random stress test
Author:  Hans Verkuil <[email protected]>
Date:    Wed Dec 10 08:25:42 2025 +0100

The --stress-test-random-standby-wakeup-cycle sequence detects at the
start whether the display pulls the HPD low when in Standby, and
uses that information to determine whether Image View On should use
Unregisters as the initiator or not.

But some devices take some time before pulling HPD low when in Standby,
so depending on the timing, using Unregistered while the HPD is still
high will cause an error and the message was never transmitted.

Change the code to always check the current logical address before
transmitting Image View On.

Signed-off-by: Hans Verkuil <[email protected]>

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

---

http://git.linuxtv.org/cgit.cgi/v4l-utils.git/commit/?id=5c2d7ebd57c752f4d3be0b490206dfca38e6bf00
diff --git a/utils/cec-ctl/cec-ctl.cpp b/utils/cec-ctl/cec-ctl.cpp
index 3e6454a591e5..65e93420ef99 100644
--- a/utils/cec-ctl/cec-ctl.cpp
+++ b/utils/cec-ctl/cec-ctl.cpp
@@ -2057,8 +2057,14 @@ static void 
stress_test_random_standby_wakeup_cycle(const struct node &node, uns
                fflush(stdout);
                usleep(usecs1);
                printf("%s: ", ts2s(current_ts()).c_str());
-               printf("Transmit Image View On from LA %s (iteration %u): ", 
cec_la2s(wakeup_la), iter);
 
+               doioctl(&node, CEC_ADAP_G_LOG_ADDRS, &laddrs);
+               if (laddrs.log_addr[0] != CEC_LOG_ADDR_INVALID)
+                       wakeup_la = laddrs.log_addr[0];
+               else
+                       wakeup_la = CEC_LOG_ADDR_UNREGISTERED;
+
+               printf("Transmit Image View On from LA %s (iteration %u): ", 
cec_la2s(wakeup_la), iter);
                cec_msg_init(&msg, wakeup_la, CEC_LOG_ADDR_TV);
                cec_msg_image_view_on(&msg);
                for (int i = 0; i < 10; i++) {
@@ -2097,6 +2103,12 @@ static void 
stress_test_random_standby_wakeup_cycle(const struct node &node, uns
                                printf("%s\n", strerror(ret));
                        }
                        printf("%s: ", ts2s(current_ts()).c_str());
+
+                       doioctl(&node, CEC_ADAP_G_LOG_ADDRS, &laddrs);
+                       if (laddrs.log_addr[0] != CEC_LOG_ADDR_INVALID)
+                               wakeup_la = laddrs.log_addr[0];
+                       else
+                               wakeup_la = CEC_LOG_ADDR_UNREGISTERED;
                        printf("Retry transmit Image View On from LA %s: ", 
cec_la2s(wakeup_la));
 
                        cec_msg_init(&msg, wakeup_la, CEC_LOG_ADDR_TV);
_______________________________________________
linuxtv-commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to