media: cec: add new tx/rx status bits to detect aborts/timeouts
authorHans Verkuil <hans.verkuil@cisco.com>
Thu, 4 Oct 2018 07:28:21 +0000 (03:28 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 13 Nov 2018 19:08:53 +0000 (11:08 -0800)
commit94ec4487af9f08d10270bd2ad5d6802a2a42d74f
tree9a77b7286c758958b268e955435a99181002a036
parent587960d865b2ccaabc77fda31c77874a245590e8
media: cec: add new tx/rx status bits to detect aborts/timeouts

commit 7ec2b3b941a666a942859684281b5f6460a0c234 upstream.

If the HDMI cable is disconnected or the CEC adapter is manually
unconfigured, then all pending transmits and wait-for-replies are
aborted. Signal this with new status bits (CEC_RX/TX_STATUS_ABORTED).

If due to (usually) a driver bug a transmit never ends (i.e. the
transmit_done was never called by the driver), then when this times
out the message is marked with CEC_TX_STATUS_TIMEOUT.

This should not happen and is an indication of a driver bug.

Without a separate status bit for this it was impossible to detect
this from userspace.

The 'transmit timed out' kernel message is now a warning, so this
should be more prominent in the kernel log as well.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Cc: <stable@vger.kernel.org> # for v4.18 and up
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Documentation/media/uapi/cec/cec-ioc-receive.rst
drivers/media/cec/cec-adap.c
include/uapi/linux/cec.h