diff options
author | Hans Verkuil <hverkuil@xs4all.nl> | 2018-11-05 11:52:24 +0100 |
---|---|---|
committer | Hans Verkuil <hverkuil@xs4all.nl> | 2018-11-05 11:52:24 +0100 |
commit | f9881444e80c2d87275fddbef8eb9aecab148722 (patch) | |
tree | f1538f3680d8a1f55101f9247d9957c584e47976 /utils/cec-compliance/cec-test-power.cpp | |
parent | c36dbbdfa8b30b2badd4f893b59d0bd4f0bd12aa (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/cec-test-power.cpp')
-rw-r--r-- | utils/cec-compliance/cec-test-power.cpp | 10 |
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; } |