rk29: vpu: fix bug on pp reset

This commit is contained in:
陈恒明
2011-03-04 12:38:38 +08:00
parent 41ef7d91e3
commit 6d74f4e4f1

View File

@@ -291,11 +291,10 @@ static long vpu_write_dec(u32 *src)
int i;
u32 *dst = (u32 *)dec_dev.hwregs;
dst[VPU_REG_DEC_GATE] = src[VPU_REG_DEC_GATE] | VPU_REG_DEC_GATE_BIT;
for (i = VPU_REG_DEC_GATE + 1; i < REG_NUM_DEC; i++)
for (i = REG_NUM_DEC - 1; i > VPU_REG_DEC_GATE; i--)
dst[i] = src[i];
dst[VPU_REG_DEC_GATE] = src[VPU_REG_DEC_GATE] | VPU_REG_DEC_GATE_BIT;
dst[VPU_REG_EN_DEC] = src[VPU_REG_EN_DEC];
return 0;
@@ -402,8 +401,7 @@ static long vpu_clear_irqs(VPU_CLIENT_TYPE type)
writel(0, &enc_dev.hwregs[ENC_INTERRUPT_REGISTER]);
break;
}
case VPU_DEC :
case VPU_DEC_PP : {
case VPU_DEC : {
writel(0, &dec_dev.hwregs[DEC_INTERRUPT_REGISTER]);
break;
}
@@ -411,6 +409,11 @@ static long vpu_clear_irqs(VPU_CLIENT_TYPE type)
writel(0, &pp_dev.hwregs[PP_INTERRUPT_REGISTER]);
break;
}
case VPU_DEC_PP : {
writel(0, &pp_dev.hwregs[PP_INTERRUPT_REGISTER]);
writel(0, &dec_dev.hwregs[DEC_INTERRUPT_REGISTER]);
break;
}
default : {
ret = -1;
}