浏览代码

video: driver: skip core deinit if deinited already

Do not try to deinitialize core if core was already
in deinited. Also in failed cases skip calling
venus_hfi_core_deinit() from within venus_hfi_core_init()
as the caller will anyway call venus_hfi_core_deinit().

Change-Id: Idda3d989a8eb500b0d5392a1eac65109e3d73b81
Signed-off-by: Maheshwar Ajja <[email protected]>
Maheshwar Ajja 4 年之前
父节点
当前提交
e6e1004dd5
共有 1 个文件被更改,包括 2 次插入1 次删除
  1. 2 1
      driver/vidc/src/venus_hfi.c

+ 2 - 1
driver/vidc/src/venus_hfi.c

@@ -2823,7 +2823,6 @@ int venus_hfi_core_init(struct msm_vidc_core *core)
 
 error:
 	d_vpr_h("%s(): failed\n", __func__);
-	venus_hfi_core_deinit(core);
 	return rc;
 }
 
@@ -2835,6 +2834,8 @@ int venus_hfi_core_deinit(struct msm_vidc_core *core)
 	}
 	d_vpr_h("%s(): core %pK\n", __func__, core);
 	__strict_check(core);
+	if (core->state == MSM_VIDC_CORE_DEINIT)
+		return 0;
 	__resume(core);
 	__flush_debug_queue(core, core->packet, core->packet_size);
 	__disable_subcaches(core);