diff options
Diffstat (limited to 'drivers/gpu/drm/i2c/tda9950.c')
-rw-r--r-- | drivers/gpu/drm/i2c/tda9950.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i2c/tda9950.c b/drivers/gpu/drm/i2c/tda9950.c index 5d2f0d548469..250b5e02a314 100644 --- a/drivers/gpu/drm/i2c/tda9950.c +++ b/drivers/gpu/drm/i2c/tda9950.c | |||
@@ -191,7 +191,8 @@ static irqreturn_t tda9950_irq(int irq, void *data) | |||
191 | break; | 191 | break; |
192 | } | 192 | } |
193 | /* TDA9950 executes all retries for us */ | 193 | /* TDA9950 executes all retries for us */ |
194 | tx_status |= CEC_TX_STATUS_MAX_RETRIES; | 194 | if (tx_status != CEC_TX_STATUS_OK) |
195 | tx_status |= CEC_TX_STATUS_MAX_RETRIES; | ||
195 | cec_transmit_done(priv->adap, tx_status, arb_lost_cnt, | 196 | cec_transmit_done(priv->adap, tx_status, arb_lost_cnt, |
196 | nack_cnt, 0, err_cnt); | 197 | nack_cnt, 0, err_cnt); |
197 | break; | 198 | break; |
@@ -310,7 +311,7 @@ static void tda9950_release(struct tda9950_priv *priv) | |||
310 | /* Wait up to .5s for it to signal non-busy */ | 311 | /* Wait up to .5s for it to signal non-busy */ |
311 | do { | 312 | do { |
312 | csr = tda9950_read(client, REG_CSR); | 313 | csr = tda9950_read(client, REG_CSR); |
313 | if (!(csr & CSR_BUSY) || --timeout) | 314 | if (!(csr & CSR_BUSY) || !--timeout) |
314 | break; | 315 | break; |
315 | msleep(10); | 316 | msleep(10); |
316 | } while (1); | 317 | } while (1); |