]> git.itanic.dy.fi Git - linux-stable/commitdiff
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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 9 Jan 2020 09:19:00 +0000 (10:19 +0100)
commit cec935ce69fc386f13959578deb40963ebbb85c3 upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/media/cec/cec-adap.c

index dd6f3e6ce00628abb8ffe37b7c3fc5c6bec83441..913b3ff6c7bcb8aa245041315584759cd455533d 100644 (file)
@@ -1038,11 +1038,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) {