rockchip/vcodec: set HW mode to none when hw quit work
authorAlpha Lin <alpha.lin@rock-chips.com>
Mon, 18 Jul 2016 12:04:10 +0000 (20:04 +0800)
committerAlpha Lin <alpha.lin@rock-chips.com>
Mon, 25 Jul 2016 08:32:00 +0000 (16:32 +0800)
Before this revision, if IOMMU isn't enable, driver don't
set the HW running mode to none, it will effect next task
to select its required mode properly.

Change-Id: Ib4e7f23b2014813226bef994aee10b1be8a06634
Signed-off-by: Alpha Lin <alpha.lin@rock-chips.com>
drivers/video/rockchip/vcodec/vcodec_service.c

index 2ea76ed5a80f2eff0922a7d794845c8c88df973b..536ad1e05937a4810dfde992bacead2d34c2c92f 100644 (file)
@@ -550,8 +550,13 @@ static void vcodec_exit_mode(struct vpu_subdev_data *data)
        if (data->mmu_dev && test_bit(MMU_ACTIVATED, &data->state)) {
                clear_bit(MMU_ACTIVATED, &data->state);
                rockchip_iovmm_deactivate(data->dev);
-               data->pservice->curr_mode = VCODEC_RUNNING_MODE_NONE;
        }
+       /*
+        * In case of VPU Combo, it require HW switch its running mode
+        * before the other HW component start work. set current HW running
+        * mode to none, can ensure HW switch to its reqired mode properly.
+        */
+       data->pservice->curr_mode = VCODEC_RUNNING_MODE_NONE;
 }
 
 static int vpu_get_clk(struct vpu_service_info *pservice)