vcodec: add soft reset after reading dec registers
authorHerman Chen <herman.chen@rock-chips.com>
Wed, 27 May 2015 02:42:38 +0000 (10:42 +0800)
committerHerman Chen <herman.chen@rock-chips.com>
Wed, 27 May 2015 02:53:37 +0000 (10:53 +0800)
Sometimes decoder got a timeout error and can not recover from error status.
We need to add soft reset after reading dec registers.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
arch/arm/mach-rockchip/vcodec_service.c

index 8e0143547b55d4a3849eb0939804072a6611afb3..4a13af81ba649dc39aac40045d535155a17f93aa 100644 (file)
@@ -2446,7 +2446,8 @@ static irqreturn_t vdpu_isr(int irq, void *dev_id)
                        vpu_err("error: dec isr with no task waiting\n");
                } else {
                        reg_from_run_to_done(data, pservice->reg_codec);
-                       writel(1, dev->hwregs + 101);
+                       /* avoid vpu timeout and can't recover problem */
+                       VDPU_SOFT_RESET(data->regs);
                }
        }