aboutsummaryrefslogtreecommitdiffstats
path: root/utils/cec-compliance
diff options
context:
space:
mode:
authorHans Verkuil <hverkuil@xs4all.nl>2018-11-05 11:52:24 +0100
committerHans Verkuil <hverkuil@xs4all.nl>2018-11-05 11:52:24 +0100
commitf9881444e80c2d87275fddbef8eb9aecab148722 (patch)
treef1538f3680d8a1f55101f9247d9957c584e47976 /utils/cec-compliance
parentc36dbbdfa8b30b2badd4f893b59d0bd4f0bd12aa (diff)
cec-compliance: wake-up on Active Source is warn for <2.0
The CEC 2.0 specification explicitly forbids powering on a display when Active Source is received. The older specification does not explicitly forbid this (although it is really very clear from the spec that you shouldn't do this). Because the 1.4 spec was not crystal clear some devices expect a display to power up when receiving Active Source, and so some displays actually support this, thus failing this test. So for 1.4 displays this test will report a warning, but it will fail for 2.0 displays. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Diffstat (limited to 'utils/cec-compliance')
-rw-r--r--utils/cec-compliance/cec-test-power.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/utils/cec-compliance/cec-test-power.cpp b/utils/cec-compliance/cec-test-power.cpp
index f520bfd9..8c83aebb 100644
--- a/utils/cec-compliance/cec-test-power.cpp
+++ b/utils/cec-compliance/cec-test-power.cpp
@@ -396,13 +396,17 @@ static int standby_resume_active_source_nowake(struct node *node, unsigned me, u
cec_msg_active_source(&msg, node->phys_addr);
int res = doioctl(node, CEC_TRANSMIT, &msg);
fail_on_test(res && res != ENONET);
- fail_on_test(wait_changing_power_status(node, me, la, new_status, unresponsive_time));
- fail_on_test(new_status != CEC_OP_POWER_STATUS_STANDBY);
+ fail_on_test_v2_warn(node->remote[la].cec_version,
+ wait_changing_power_status(node, me, la, new_status, unresponsive_time));
+ fail_on_test_v2_warn(node->remote[la].cec_version,
+ new_status != CEC_OP_POWER_STATUS_STANDBY);
+ if (new_status != CEC_OP_POWER_STATUS_STANDBY)
+ return standby_resume_standby(node, me, la, interactive);
+
node->remote[la].in_standby = true;
if (unresponsive_time > 0)
warn("The device stayed correctly in standby, but became unresponsive for %d s.\n",
unresponsive_time);
-
return 0;
}

Privacy Policy