summaryrefslogtreecommitdiffstats
path: root/drivers/staging/media/cec/cec-adap.c
diff options
context:
space:
mode:
authorHans Verkuil <hans.verkuil@cisco.com>2016-11-01 08:55:05 -0200
committerMauro Carvalho Chehab <mchehab@s-opensource.com>2016-11-16 15:32:56 -0200
commitadc0c622783978ab0c740af77f98fc8f65c87d66 (patch)
tree800c4fccd3da0fe3616b144d10c3e21ba208f695 /drivers/staging/media/cec/cec-adap.c
parentf4062625ede8f0280d8246437f4070c8eb7fe9f3 (diff)
downloadop-kernel-dev-adc0c622783978ab0c740af77f98fc8f65c87d66.zip
op-kernel-dev-adc0c622783978ab0c740af77f98fc8f65c87d66.tar.gz
[media] cec: add CEC_MSG_FL_REPLY_TO_FOLLOWERS
Give the caller more control over how replies to a transmit are handled. By default the reply will only go to the filehandle that called CEC_TRANSMIT. If this new flag is set, then the reply will also go to all followers. Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Diffstat (limited to 'drivers/staging/media/cec/cec-adap.c')
-rw-r--r--drivers/staging/media/cec/cec-adap.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/staging/media/cec/cec-adap.c b/drivers/staging/media/cec/cec-adap.c
index 589e457..6aceb1d 100644
--- a/drivers/staging/media/cec/cec-adap.c
+++ b/drivers/staging/media/cec/cec-adap.c
@@ -587,7 +587,6 @@ int cec_transmit_msg_fh(struct cec_adapter *adap, struct cec_msg *msg,
msg->tx_nack_cnt = 0;
msg->tx_low_drive_cnt = 0;
msg->tx_error_cnt = 0;
- msg->flags = 0;
msg->sequence = ++adap->sequence;
if (!msg->sequence)
msg->sequence = ++adap->sequence;
@@ -823,6 +822,7 @@ void cec_received_msg(struct cec_adapter *adap, struct cec_msg *msg)
dst->rx_status = msg->rx_status;
if (abort)
dst->rx_status |= CEC_RX_STATUS_FEATURE_ABORT;
+ msg->flags = dst->flags;
/* Remove it from the wait_queue */
list_del_init(&data->list);
@@ -1575,8 +1575,8 @@ static int cec_receive_notify(struct cec_adapter *adap, struct cec_msg *msg,
}
skip_processing:
- /* If this was a reply, then we're done */
- if (is_reply)
+ /* If this was a reply, then we're done, unless otherwise specified */
+ if (is_reply && !(msg->flags & CEC_MSG_FL_REPLY_TO_FOLLOWERS))
return 0;
/*
OpenPOWER on IntegriCloud