]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
media: venus: hfi: Correct session init return error
authorStanimir Varbanov <stanimir.varbanov@linaro.org>
Fri, 4 Dec 2020 10:01:39 +0000 (11:01 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 2 May 2025 05:41:11 +0000 (07:41 +0200)
[ Upstream commit e922a33e0228fa314ffc4f70b3b9ffbc4aad1bbe ]

The hfi_session_init can be called many times and it returns
EINVAL when the session was already initialized. This error code
(EINVAL) is confusing for the callers. Change hfi_session_init to
return EALREADY error code when the session has been already
initialized.

Tested-by: Fritz Koenig <frkoenig@chromium.org>
Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Stable-dep-of: 9edaaa8e3e15 ("media: venus: hfi_parser: refactor hfi packet parsing logic")
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/media/platform/qcom/venus/hfi.c
drivers/media/platform/qcom/venus/vdec.c
drivers/media/platform/qcom/venus/venc.c

index 17da555905e98f85f648ef6787223248bcdb9b49..5fd53227c2c0bad85167cba84bbd6005ae667993 100644 (file)
@@ -212,7 +212,7 @@ int hfi_session_init(struct venus_inst *inst, u32 pixfmt)
        int ret;
 
        if (inst->state != INST_UNINIT)
-               return -EINVAL;
+               return -EALREADY;
 
        inst->hfi_codec = to_codec_type(pixfmt);
        reinit_completion(&inst->done);
index d91030a134c0ea94fda58096cbdcb8f5bbb35fed..6e9b62645e9173492ffc1f37942c4cbc56037c90 100644 (file)
@@ -768,7 +768,7 @@ static int vdec_session_init(struct venus_inst *inst)
        int ret;
 
        ret = hfi_session_init(inst, inst->fmt_out->pixfmt);
-       if (ret == -EINVAL)
+       if (ret == -EALREADY)
                return 0;
        else if (ret)
                return ret;
index 18d20b4ca2cfdd05d29049657596b59f558263b9..9f1b02e31b98c6bfe30ec0802698c45f3ddc066f 100644 (file)
@@ -727,7 +727,7 @@ static int venc_init_session(struct venus_inst *inst)
        int ret;
 
        ret = hfi_session_init(inst, inst->fmt_cap->pixfmt);
-       if (ret == -EINVAL)
+       if (ret == -EALREADY)
                return 0;
        else if (ret)
                return ret;