|
@@ -218,11 +218,15 @@ static int fops_vcodec_release(struct file *file)
|
|
mtk_v4l2_debug(1, "[%d] encoder", ctx->id);
|
|
mtk_v4l2_debug(1, "[%d] encoder", ctx->id);
|
|
mutex_lock(&dev->dev_mutex);
|
|
mutex_lock(&dev->dev_mutex);
|
|
|
|
|
|
|
|
+ /*
|
|
|
|
+ * Call v4l2_m2m_ctx_release to make sure the worker thread is not
|
|
|
|
+ * running after venc_if_deinit.
|
|
|
|
+ */
|
|
|
|
+ v4l2_m2m_ctx_release(ctx->m2m_ctx);
|
|
mtk_vcodec_enc_release(ctx);
|
|
mtk_vcodec_enc_release(ctx);
|
|
v4l2_fh_del(&ctx->fh);
|
|
v4l2_fh_del(&ctx->fh);
|
|
v4l2_fh_exit(&ctx->fh);
|
|
v4l2_fh_exit(&ctx->fh);
|
|
v4l2_ctrl_handler_free(&ctx->ctrl_hdl);
|
|
v4l2_ctrl_handler_free(&ctx->ctrl_hdl);
|
|
- v4l2_m2m_ctx_release(ctx->m2m_ctx);
|
|
|
|
|
|
|
|
list_del_init(&ctx->list);
|
|
list_del_init(&ctx->list);
|
|
dev->num_instances--;
|
|
dev->num_instances--;
|