rk29: vpu_service: move atomic_add after power_on
author陈恒明 <chm@rock-chips.com>
Wed, 10 Aug 2011 03:06:34 +0000 (11:06 +0800)
committer陈恒明 <chm@rock-chips.com>
Wed, 10 Aug 2011 03:07:48 +0000 (11:07 +0800)
arch/arm/mach-rk29/vpu_service.c

index 07b2a28ab9711bb7c322a92d6fa981fe891f5a62..02a5f79ba0a97d5afa23efa23c9116c92e5b31bc 100644 (file)
@@ -256,8 +256,6 @@ static void reg_from_wait_to_run(vpu_reg *reg)
 
        list_del_init(&reg->session_link);
        list_add_tail(&reg->session_link, &reg->session->running);
-
-       atomic_add(1, &service.task_running);
 }
 
 static void reg_copy_from_hw(vpu_reg *reg, volatile u32 *src, u32 count)
@@ -315,7 +313,7 @@ void reg_copy_to_hw(vpu_reg *reg)
 {
        int i;
        u32 *src = (u32 *)&reg->reg[0];
-
+       atomic_add(1, &service.task_running);
        switch (reg->type) {
        case VPU_ENC : {
                u32 *dst = (u32 *)enc_dev.hwregs;
@@ -376,6 +374,7 @@ void reg_copy_to_hw(vpu_reg *reg)
        } break;
        default : {
                pr_err("unsupport session type %d", reg->type);
+               atomic_sub(1, &service.task_running);
                break;
        }
        }