|
@@ -191,7 +191,8 @@ static irqreturn_t tda9950_irq(int irq, void *data)
|
|
|
break;
|
|
|
}
|
|
|
/* TDA9950 executes all retries for us */
|
|
|
- tx_status |= CEC_TX_STATUS_MAX_RETRIES;
|
|
|
+ if (tx_status != CEC_TX_STATUS_OK)
|
|
|
+ tx_status |= CEC_TX_STATUS_MAX_RETRIES;
|
|
|
cec_transmit_done(priv->adap, tx_status, arb_lost_cnt,
|
|
|
nack_cnt, 0, err_cnt);
|
|
|
break;
|
|
@@ -310,7 +311,7 @@ static void tda9950_release(struct tda9950_priv *priv)
|
|
|
/* Wait up to .5s for it to signal non-busy */
|
|
|
do {
|
|
|
csr = tda9950_read(client, REG_CSR);
|
|
|
- if (!(csr & CSR_BUSY) || --timeout)
|
|
|
+ if (!(csr & CSR_BUSY) || !--timeout)
|
|
|
break;
|
|
|
msleep(10);
|
|
|
} while (1);
|