]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - drivers/media/platform/mtk-vcodec/mtk_vcodec_dec.c
[media] mtk_vcodec_dec: return error at mtk_vdec_pic_info_update()
[linux.git] / drivers / media / platform / mtk-vcodec / mtk_vcodec_dec.c
index a60b538686ea9bd66deef19b55d1e0ca0504ee37..843510979ad8eab76ca014ada078af8b28dd345f 100644 (file)
@@ -278,7 +278,7 @@ static void mtk_vdec_flush_decoder(struct mtk_vcodec_ctx *ctx)
        clean_free_buffer(ctx);
 }
 
-static void mtk_vdec_pic_info_update(struct mtk_vcodec_ctx *ctx)
+static int mtk_vdec_pic_info_update(struct mtk_vcodec_ctx *ctx)
 {
        unsigned int dpbsize = 0;
        int ret;
@@ -288,7 +288,7 @@ static void mtk_vdec_pic_info_update(struct mtk_vcodec_ctx *ctx)
                                &ctx->last_decoded_picinfo)) {
                mtk_v4l2_err("[%d]Error!! Cannot get param : GET_PARAM_PICTURE_INFO ERR",
                                ctx->id);
-               return;
+               return -EINVAL;
        }
 
        if (ctx->last_decoded_picinfo.pic_w == 0 ||
@@ -296,12 +296,12 @@ static void mtk_vdec_pic_info_update(struct mtk_vcodec_ctx *ctx)
                ctx->last_decoded_picinfo.buf_w == 0 ||
                ctx->last_decoded_picinfo.buf_h == 0) {
                mtk_v4l2_err("Cannot get correct pic info");
-               return;
+               return -EINVAL;
        }
 
        if ((ctx->last_decoded_picinfo.pic_w == ctx->picinfo.pic_w) ||
            (ctx->last_decoded_picinfo.pic_h == ctx->picinfo.pic_h))
-               return;
+               return 0;
 
        mtk_v4l2_debug(1,
                        "[%d]-> new(%d,%d), old(%d,%d), real(%d,%d)",
@@ -316,6 +316,8 @@ static void mtk_vdec_pic_info_update(struct mtk_vcodec_ctx *ctx)
                mtk_v4l2_err("Incorrect dpb size, ret=%d", ret);
 
        ctx->dpb_size = dpbsize;
+
+       return ret;
 }
 
 static void mtk_vdec_worker(struct work_struct *work)