diff options
Diffstat (limited to 'drivers/gpu/drm/i2c')
| -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)  			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);  | 
