Merge branch 'drm-tda9950-fixes' of git://git.armlinux.org.uk/~rmk/linux-arm into...
authorDave Airlie <airlied@redhat.com>
Thu, 4 Oct 2018 00:28:27 +0000 (10:28 +1000)
committerDave Airlie <airlied@redhat.com>
Thu, 4 Oct 2018 00:32:14 +0000 (10:32 +1000)
two tda9950 fixes.

Signed-off-by: Dave Airlie <airlied@redhat.com>
From: Russell King <rmk@armlinux.org.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20181001162948.GA9508@rmk-PC.armlinux.org.uk
drivers/gpu/drm/i2c/tda9950.c

index 5d2f0d548469e1dd4808d8be5dfe8be62edfef0b..250b5e02a314a493fd0c41477237bf44f7208225 100644 (file)
@@ -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);