]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
[media] cec: don't zero reply and timeout on error
authorHans Verkuil <hverkuil@xs4all.nl>
Wed, 13 Jul 2016 07:33:58 +0000 (04:33 -0300)
committerMauro Carvalho Chehab <mchehab@s-opensource.com>
Fri, 15 Jul 2016 16:10:43 +0000 (13:10 -0300)
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>
drivers/staging/media/cec/cec-adap.c

index ca34339e3ebaad27b82204d9ce38db721468d219..07147a1d2b6b73e9096181d408ad65de77e039cf 100644 (file)
@@ -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);