mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
media: cec: add new tx/rx status bits to detect aborts/timeouts
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>
This commit is contained in:
parent
81e33279d1
commit
7ec2b3b941
3 changed files with 44 additions and 50 deletions
|
@ -152,10 +152,13 @@ static inline void cec_msg_set_reply_to(struct cec_msg *msg,
|
|||
#define CEC_TX_STATUS_LOW_DRIVE (1 << 3)
|
||||
#define CEC_TX_STATUS_ERROR (1 << 4)
|
||||
#define CEC_TX_STATUS_MAX_RETRIES (1 << 5)
|
||||
#define CEC_TX_STATUS_ABORTED (1 << 6)
|
||||
#define CEC_TX_STATUS_TIMEOUT (1 << 7)
|
||||
|
||||
#define CEC_RX_STATUS_OK (1 << 0)
|
||||
#define CEC_RX_STATUS_TIMEOUT (1 << 1)
|
||||
#define CEC_RX_STATUS_FEATURE_ABORT (1 << 2)
|
||||
#define CEC_RX_STATUS_ABORTED (1 << 3)
|
||||
|
||||
static inline int cec_msg_status_is_ok(const struct cec_msg *msg)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue