aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDikshita Agarwal <dikshita@codeaurora.org>2020-12-24 15:00:10 +0530
committerBryan O'Donoghue <bryan.odonoghue@linaro.org>2021-01-06 16:40:13 +0000
commit2df7ba2033d8b1b2cce032a8b509468ae1533d0b (patch)
tree147fdbd2124ce65830820c59639340b881b54f22
parent42857b2a2d0d6bbf8abaa25e785c3f314f6d62ab (diff)
media: venus: helpers: Add internal buffer list for v6 decodertracking-qcomlt-sm8250-venus-04
Internal buffers required for v6 decoder are different than encoder so add a separate list for the decoder. bod: fixed up if/else, removed redundant bool Signed-off-by: Dikshita Agarwal <dikshita@codeaurora.org> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
-rw-r--r--drivers/media/platform/qcom/venus/helpers.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/drivers/media/platform/qcom/venus/helpers.c b/drivers/media/platform/qcom/venus/helpers.c
index 1011e80c4663..626870296a5e 100644
--- a/drivers/media/platform/qcom/venus/helpers.c
+++ b/drivers/media/platform/qcom/venus/helpers.c
@@ -279,13 +279,19 @@ static const unsigned int intbuf_types_4xx[] = {
HFI_BUFFER_INTERNAL_PERSIST_1,
};
-static const unsigned int intbuf_types_6xx[] = {
+static const unsigned int intbuf_types_6xx_enc[] = {
HFI_BUFFER_INTERNAL_SCRATCH(HFI_VERSION_6XX),
HFI_BUFFER_INTERNAL_SCRATCH_1(HFI_VERSION_6XX),
HFI_BUFFER_INTERNAL_SCRATCH_2(HFI_VERSION_6XX),
HFI_BUFFER_INTERNAL_PERSIST,
};
+static const unsigned int intbuf_types_6xx_dec[] = {
+ HFI_BUFFER_INTERNAL_SCRATCH(HFI_VERSION_6XX),
+ HFI_BUFFER_INTERNAL_SCRATCH_1(HFI_VERSION_6XX),
+ HFI_BUFFER_INTERNAL_PERSIST_1,
+};
+
int venus_helper_intbufs_alloc(struct venus_inst *inst)
{
const unsigned int *intbuf;
@@ -293,8 +299,13 @@ int venus_helper_intbufs_alloc(struct venus_inst *inst)
int ret;
if (IS_V6(inst->core)) {
- arr_sz = ARRAY_SIZE(intbuf_types_6xx);
- intbuf = intbuf_types_6xx;
+ if (inst->session_type == VIDC_SESSION_TYPE_DEC) {
+ arr_sz = ARRAY_SIZE(intbuf_types_6xx_dec);
+ intbuf = intbuf_types_6xx_dec;
+ } else {
+ arr_sz = ARRAY_SIZE(intbuf_types_6xx_enc);
+ intbuf = intbuf_types_6xx_enc;
+ }
} else if (IS_V4(inst->core)) {
arr_sz = ARRAY_SIZE(intbuf_types_4xx);
intbuf = intbuf_types_4xx;