media: cec: CEC 2.0-only bcast messages were ignored
authorHans Verkuil <hverkuil-cisco@xs4all.nl>
Wed, 4 Dec 2019 07:52:08 +0000 (08:52 +0100)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Fri, 13 Dec 2019 10:22:10 +0000 (11:22 +0100)
Some messages are allowed to be a broadcast message in CEC 2.0
only, and should be ignored by CEC 1.4 devices.

Unfortunately, the check was wrong, causing such messages to be
marked as invalid under CEC 2.0.

Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Cc: <stable@vger.kernel.org> # for v4.10 and up
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/media/cec/cec-adap.c

index 9340435a94a095d77bddcb12b6331940878d1c8e..e90c30dac68b69c34754ed8e3d253b9de6441d31 100644 (file)
@@ -1085,11 +1085,11 @@ void cec_received_msg_ts(struct cec_adapter *adap,
                        valid_la = false;
                else if (!cec_msg_is_broadcast(msg) && !(dir_fl & DIRECTED))
                        valid_la = false;
-               else if (cec_msg_is_broadcast(msg) && !(dir_fl & BCAST1_4))
+               else if (cec_msg_is_broadcast(msg) && !(dir_fl & BCAST))
                        valid_la = false;
                else if (cec_msg_is_broadcast(msg) &&
-                        adap->log_addrs.cec_version >= CEC_OP_CEC_VERSION_2_0 &&
-                        !(dir_fl & BCAST2_0))
+                        adap->log_addrs.cec_version < CEC_OP_CEC_VERSION_2_0 &&
+                        !(dir_fl & BCAST1_4))
                        valid_la = false;
        }
        if (valid_la && min_len) {