mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-18 13:16:55 +07:00
media: venus: vdec: a new function for output configuration
Make a new function vdec_output_conf() for decoder output configuration. vdec_output_conf() will set properties via HFI interface related to the output configuration, and keep vdec_set_properties() which will set properties related to decoding parameters. 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>
This commit is contained in:
parent
7094af54c5
commit
ea8ce23513
@ -543,6 +543,22 @@ static const struct v4l2_ioctl_ops vdec_ioctl_ops = {
|
||||
static int vdec_set_properties(struct venus_inst *inst)
|
||||
{
|
||||
struct vdec_controls *ctr = &inst->controls.dec;
|
||||
struct hfi_enable en = { .enable = 1 };
|
||||
u32 ptype;
|
||||
int ret;
|
||||
|
||||
if (ctr->post_loop_deb_mode) {
|
||||
ptype = HFI_PROPERTY_CONFIG_VDEC_POST_LOOP_DEBLOCKER;
|
||||
ret = hfi_session_set_property(inst, ptype, &en);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int vdec_output_conf(struct venus_inst *inst)
|
||||
{
|
||||
struct venus_core *core = inst->core;
|
||||
struct hfi_enable en = { .enable = 1 };
|
||||
u32 ptype;
|
||||
@ -567,14 +583,6 @@ static int vdec_set_properties(struct venus_inst *inst)
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (ctr->post_loop_deb_mode) {
|
||||
ptype = HFI_PROPERTY_CONFIG_VDEC_POST_LOOP_DEBLOCKER;
|
||||
en.enable = 1;
|
||||
ret = hfi_session_set_property(inst, ptype, &en);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -722,7 +730,6 @@ static int vdec_verify_conf(struct venus_inst *inst)
|
||||
static int vdec_start_streaming(struct vb2_queue *q, unsigned int count)
|
||||
{
|
||||
struct venus_inst *inst = vb2_get_drv_priv(q);
|
||||
struct venus_core *core = inst->core;
|
||||
int ret;
|
||||
|
||||
mutex_lock(&inst->lock);
|
||||
@ -751,12 +758,9 @@ static int vdec_start_streaming(struct vb2_queue *q, unsigned int count)
|
||||
if (ret)
|
||||
goto deinit_sess;
|
||||
|
||||
if (core->res->hfi_version == HFI_VERSION_3XX) {
|
||||
ret = venus_helper_set_bufsize(inst, inst->output_buf_size,
|
||||
HFI_BUFFER_OUTPUT);
|
||||
if (ret)
|
||||
goto deinit_sess;
|
||||
}
|
||||
ret = vdec_output_conf(inst);
|
||||
if (ret)
|
||||
goto deinit_sess;
|
||||
|
||||
ret = vdec_verify_conf(inst);
|
||||
if (ret)
|
||||
|
Loading…
Reference in New Issue
Block a user