VPU, set the power-on flag after power domain already on.
authorAlpha Lin <alpha.lin@rock-chips.com>
Fri, 15 May 2015 08:54:02 +0000 (16:54 +0800)
committerAlpha Lin <alpha.lin@rock-chips.com>
Wed, 20 May 2015 05:54:47 +0000 (13:54 +0800)
Previous register operation before power on.
Software reset vpu inside vdpu interrupt handle.

Signed-off-by: Alpha Lin <alpha.lin@rock-chips.com>
arch/arm/mach-rockchip/vcodec_service.c

index 2c6bc0fb99edca3a58e68bb951180c51d2678f1d..3fa90d33f10e685668096fbf2e850ff4bdea5830 100644 (file)
@@ -785,7 +785,6 @@ static void vpu_service_power_on(struct vpu_service_info *pservice)
        if (pservice->enabled)
                return ;
 
-       pservice->enabled = true;
        pr_info("%s: power on\n", dev_name(pservice->dev));
 
 #define BIT_VCODEC_CLK_SEL     (1<<10)
@@ -808,6 +807,7 @@ static void vpu_service_power_on(struct vpu_service_info *pservice)
 #endif
 
        udelay(10);
+       pservice->enabled = true;
        wake_lock(&pservice->wake_lock);
 }
 
@@ -2430,6 +2430,7 @@ 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);
                }
        }