From ae5abd2561b40a1f046088cd30b900ccde63fbc5 Mon Sep 17 00:00:00 2001 From: Philipp Zabel Date: Fri, 18 Jul 2014 07:22:35 -0300 Subject: [PATCH] [media] coda: fix CODA7541 hardware reset Do not try to read the CODA960 GDI status register on CODA7541. Signed-off-by: Philipp Zabel Signed-off-by: Kamil Debski Signed-off-by: Mauro Carvalho Chehab --- drivers/media/platform/coda.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/drivers/media/platform/coda.c b/drivers/media/platform/coda.c index 3a6d1d2b429e..ec82dec04e31 100644 --- a/drivers/media/platform/coda.c +++ b/drivers/media/platform/coda.c @@ -350,19 +350,22 @@ static int coda_hw_reset(struct coda_ctx *ctx) idx = coda_read(dev, CODA_REG_BIT_RUN_INDEX); - timeout = jiffies + msecs_to_jiffies(100); - coda_write(dev, 0x11, CODA9_GDI_BUS_CTRL); - while (coda_read(dev, CODA9_GDI_BUS_STATUS) != 0x77) { - if (time_after(jiffies, timeout)) - return -ETIME; - cpu_relax(); + if (dev->devtype->product == CODA_960) { + timeout = jiffies + msecs_to_jiffies(100); + coda_write(dev, 0x11, CODA9_GDI_BUS_CTRL); + while (coda_read(dev, CODA9_GDI_BUS_STATUS) != 0x77) { + if (time_after(jiffies, timeout)) + return -ETIME; + cpu_relax(); + } } ret = reset_control_reset(dev->rstc); if (ret < 0) return ret; - coda_write(dev, 0x00, CODA9_GDI_BUS_CTRL); + if (dev->devtype->product == CODA_960) + coda_write(dev, 0x00, CODA9_GDI_BUS_CTRL); coda_write(dev, CODA_REG_BIT_BUSY_FLAG, CODA_REG_BIT_BUSY); coda_write(dev, CODA_REG_RUN_ENABLE, CODA_REG_BIT_CODE_RUN); ret = coda_wait_timeout(dev); -- 2.30.2