diff options
author | Hans Verkuil <hverkuil@xs4all.nl> | 2016-07-13 09:33:58 +0200 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@s-opensource.com> | 2016-07-15 18:10:43 +0200 |
commit | 86e3577f11d0aa8a5d3c6199f9e3f23cdbd0c0ac (patch) | |
tree | f0f4ac148083adb9a6f1ffd03089aa3a760613eb /drivers/staging | |
parent | [media] mtk-vcodec: fix more type mismatches (diff) | |
download | linux-86e3577f11d0aa8a5d3c6199f9e3f23cdbd0c0ac.tar.xz linux-86e3577f11d0aa8a5d3c6199f9e3f23cdbd0c0ac.zip |
[media] cec: don't zero reply and timeout on error
There is really no reason to zero the reply and timeout fields if an
error occurs. This is a left-over from earlier versions where that
was used to signal errors, but this is now handled by the rx/tx_status
fields.
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Diffstat (limited to 'drivers/staging')
-rw-r--r-- | drivers/staging/media/cec/cec-adap.c | 19 |
1 files changed, 5 insertions, 14 deletions
diff --git a/drivers/staging/media/cec/cec-adap.c b/drivers/staging/media/cec/cec-adap.c index ca34339e3eba..07147a1d2b6b 100644 --- a/drivers/staging/media/cec/cec-adap.c +++ b/drivers/staging/media/cec/cec-adap.c @@ -289,7 +289,6 @@ static void cec_data_cancel(struct cec_data *data) CEC_TX_STATUS_MAX_RETRIES; data->attempts = 0; data->msg.tx_error_cnt = 1; - data->msg.reply = 0; /* Queue transmitted message for monitoring purposes */ cec_queue_msg_monitor(data->adap, &data->msg, 1); @@ -511,16 +510,8 @@ void cec_transmit_done(struct cec_adapter *adap, u8 status, u8 arb_lost_cnt, /* Queue transmitted message for monitoring purposes */ cec_queue_msg_monitor(adap, msg, 1); - /* - * Clear reply and timeout on error or if the adapter is no longer - * configured. It makes no sense to wait for a reply in that case. - */ - if (!(status & CEC_TX_STATUS_OK) || !adap->is_configured) { - msg->reply = 0; - msg->timeout = 0; - } - - if (msg->timeout) { + if ((status & CEC_TX_STATUS_OK) && adap->is_configured && + msg->timeout) { /* * Queue the message into the wait queue if we want to wait * for a reply. @@ -648,6 +639,8 @@ int cec_transmit_msg_fh(struct cec_adapter *adap, struct cec_msg *msg, dprintk(2, "cec_transmit_msg: %*ph%s\n", msg->len, msg->msg, !block ? " (nb)" : ""); + msg->rx_ts = 0; + msg->tx_ts = 0; msg->rx_status = 0; msg->tx_status = 0; msg->tx_arb_lost_cnt = 0; @@ -812,10 +805,8 @@ void cec_received_msg(struct cec_adapter *adap, struct cec_msg *msg) dst->len = msg->len; dst->rx_ts = msg->rx_ts; dst->rx_status = msg->rx_status; - if (abort) { - dst->reply = 0; + if (abort) dst->rx_status |= CEC_RX_STATUS_FEATURE_ABORT; - } /* Remove it from the wait_queue */ list_del_init(&data->list); |