media: cec: abort if the current transmit was canceled
authorHans Verkuil <hverkuil-cisco@xs4all.nl>
Thu, 3 Mar 2022 14:01:44 +0000 (14:01 +0000)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Sun, 24 Apr 2022 06:38:19 +0000 (07:38 +0100)
commit590a8e564c6eff7e77a84e728612f1269e3c0685
treea4364838c77cbcb7a9d5957a4f79a313d192a78d
parent3813c932ed970dd4f413498ccecb03c73c4f1784
media: cec: abort if the current transmit was canceled

If a transmit-in-progress was canceled, then, once the transmit
is done, mark it as aborted and refrain from retrying the transmit.

To signal this situation the new transmit_in_progress_aborted field is
set to true.

The old implementation would just set adap->transmitting to NULL and
set adap->transmit_in_progress to false, but on the hardware level
the transmit was still ongoing. However, the framework would think
the transmit was aborted, and if a new transmit was issued, then
it could overwrite the HW buffer containing the old transmit with the
new transmit, leading to garbled data on the CEC bus.

Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/media/cec/core/cec-adap.c
include/media/cec.h