media: venus: helpers: rename a helper function and use buffer mode from caps
authorStanimir Varbanov <stanimir.varbanov@linaro.org>
Thu, 5 Jul 2018 13:03:47 +0000 (09:03 -0400)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Wed, 25 Jul 2018 12:50:36 +0000 (08:50 -0400)
Rename is_reg_unreg_needed() to better name is_dynamic_bufmode() and
use buffer mode from enumerated per codec capabilities.

Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
Reviewed-by: Tomasz Figa <tfiga@chromium.org>
Reviewed-by: Alexandre Courbot <acourbot@chromium.org>
Tested-by: Alexandre Courbot <acourbot@chromium.org>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/media/platform/qcom/venus/helpers.c

index c8c4a4b..27c4a40 100644 (file)
@@ -359,18 +359,16 @@ session_process_buf(struct venus_inst *inst, struct vb2_v4l2_buffer *vbuf)
        return 0;
 }
 
-static inline int is_reg_unreg_needed(struct venus_inst *inst)
+static bool is_dynamic_bufmode(struct venus_inst *inst)
 {
-       if (inst->session_type == VIDC_SESSION_TYPE_DEC &&
-           inst->core->res->hfi_version == HFI_VERSION_3XX)
-               return 0;
+       struct venus_core *core = inst->core;
+       struct venus_caps *caps;
 
-       if (inst->session_type == VIDC_SESSION_TYPE_DEC &&
-           inst->cap_bufs_mode_dynamic &&
-           inst->core->res->hfi_version == HFI_VERSION_1XX)
+       caps = venus_caps_by_codec(core, inst->hfi_codec, inst->session_type);
+       if (!caps)
                return 0;
 
-       return 1;
+       return caps->cap_bufs_mode_dynamic;
 }
 
 static int session_unregister_bufs(struct venus_inst *inst)
@@ -379,7 +377,7 @@ static int session_unregister_bufs(struct venus_inst *inst)
        struct hfi_buffer_desc bd;
        int ret = 0;
 
-       if (!is_reg_unreg_needed(inst))
+       if (is_dynamic_bufmode(inst))
                return 0;
 
        list_for_each_entry_safe(buf, n, &inst->registeredbufs, reg_list) {
@@ -399,7 +397,7 @@ static int session_register_bufs(struct venus_inst *inst)
        struct venus_buffer *buf;
        int ret = 0;
 
-       if (!is_reg_unreg_needed(inst))
+       if (is_dynamic_bufmode(inst))
                return 0;
 
        list_for_each_entry(buf, &inst->registeredbufs, reg_list) {