media: venus: Add num_vpp_pipes to resource structure
authorDikshita Agarwal <dikshita@codeaurora.org>
Tue, 10 Aug 2021 09:47:51 +0000 (11:47 +0200)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Fri, 8 Oct 2021 09:26:13 +0000 (11:26 +0200)
V6 HW can have vpp pipes as 1 or 4, add num_vpp_pipes
to resource struture to differentiate.

Signed-off-by: Dikshita Agarwal <dikshita@codeaurora.org>
Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/media/platform/qcom/venus/core.c
drivers/media/platform/qcom/venus/core.h
drivers/media/platform/qcom/venus/helpers.c
drivers/media/platform/qcom/venus/hfi_platform.c
drivers/media/platform/qcom/venus/hfi_platform.h
drivers/media/platform/qcom/venus/hfi_platform_v6.c

index e5af4d7..de7b32c 100644 (file)
@@ -727,6 +727,7 @@ static const struct venus_resources sm8250_res = {
        .vcodec_num = 1,
        .max_load = 7833600,
        .hfi_version = HFI_VERSION_6XX,
+       .num_vpp_pipes = 4,
        .vmem_id = VIDC_RESOURCE_NONE,
        .vmem_size = 0,
        .vmem_addr = 0,
@@ -778,6 +779,7 @@ static const struct venus_resources sc7280_res = {
        .opp_pmdomain = (const char *[]) { "cx", NULL },
        .vcodec_num = 1,
        .hfi_version = HFI_VERSION_6XX,
+       .num_vpp_pipes = 1,
        .vmem_id = VIDC_RESOURCE_NONE,
        .vmem_size = 0,
        .vmem_addr = 0,
index 5ec8511..62228cc 100644 (file)
@@ -68,6 +68,7 @@ struct venus_resources {
        const char * const resets[VIDC_RESETS_NUM_MAX];
        unsigned int resets_num;
        enum hfi_version hfi_version;
+       u8 num_vpp_pipes;
        u32 max_load;
        unsigned int vmem_id;
        u32 vmem_size;
index 8012f5c..1f46a6f 100644 (file)
@@ -583,7 +583,7 @@ static int platform_get_bufreq(struct venus_inst *inst, u32 buftype,
                return -EINVAL;
 
        params.version = version;
-       params.num_vpp_pipes = hfi_platform_num_vpp_pipes(version);
+       params.num_vpp_pipes = inst->core->res->num_vpp_pipes;
 
        if (is_dec) {
                params.width = inst->width;
index f5b4e1f..f16f896 100644 (file)
@@ -66,16 +66,3 @@ hfi_platform_get_codec_lp_freq(enum hfi_version version, u32 codec, u32 session_
        return freq;
 }
 
-u8 hfi_platform_num_vpp_pipes(enum hfi_version version)
-{
-       const struct hfi_platform *plat;
-
-       plat = hfi_platform_get(version);
-       if (!plat)
-               return 0;
-
-       if (plat->num_vpp_pipes)
-               return plat->num_vpp_pipes();
-
-       return 0;
-}
index 2dbe608..1dcf408 100644 (file)
@@ -52,7 +52,6 @@ struct hfi_platform {
        unsigned long (*codec_lp_freq)(u32 session_type, u32 codec);
        void (*codecs)(u32 *enc_codecs, u32 *dec_codecs, u32 *count);
        const struct hfi_plat_caps *(*capabilities)(unsigned int *entries);
-       u8 (*num_vpp_pipes)(void);
        int (*bufreq)(struct hfi_plat_buffers_params *params, u32 session_type,
                      u32 buftype, struct hfi_buffer_requirements *bufreq);
 };
@@ -67,5 +66,4 @@ unsigned long hfi_platform_get_codec_vsp_freq(enum hfi_version version, u32 code
                                              u32 session_type);
 unsigned long hfi_platform_get_codec_lp_freq(enum hfi_version version, u32 codec,
                                             u32 session_type);
-u8 hfi_platform_num_vpp_pipes(enum hfi_version version);
 #endif
index d8243b2..c10618e 100644 (file)
@@ -322,17 +322,11 @@ static unsigned long codec_lp_freq(u32 session_type, u32 codec)
        return 0;
 }
 
-static u8 num_vpp_pipes(void)
-{
-       return 4;
-}
-
 const struct hfi_platform hfi_plat_v6 = {
        .codec_vpp_freq = codec_vpp_freq,
        .codec_vsp_freq = codec_vsp_freq,
        .codec_lp_freq = codec_lp_freq,
        .codecs = get_codecs,
        .capabilities = get_capabilities,
-       .num_vpp_pipes = num_vpp_pipes,
        .bufreq = hfi_plat_bufreq_v6,
 };