media: venus: pm: Toggle 6xx wrapper power in vcodec_control
authorDikshita Agarwal <dikshita@codeaurora.org>
Fri, 2 Apr 2021 10:06:42 +0000 (12:06 +0200)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Tue, 6 Apr 2021 13:56:44 +0000 (15:56 +0200)
When in vcodec_control_v4() on the 4xx path we select between one of two
vcodec cores to toggle power control bits. In 6xx there is only one core
which offsets the relevant control registers to a slightly different
address.

This patch accounts for the address offset for 6xx silicon.

Signed-off-by: Dikshita Agarwal <dikshita@codeaurora.org>
Co-developed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.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/pm_helpers.c

index a91dc24..dfe3ee8 100644 (file)
@@ -414,7 +414,10 @@ static int vcodec_control_v4(struct venus_core *core, u32 coreid, bool enable)
        u32 val;
        int ret;
 
-       if (coreid == VIDC_CORE_ID_1) {
+       if (IS_V6(core)) {
+               ctrl = core->wrapper_base + WRAPPER_CORE_POWER_CONTROL_V6;
+               stat = core->wrapper_base + WRAPPER_CORE_POWER_STATUS_V6;
+       } else if (coreid == VIDC_CORE_ID_1) {
                ctrl = core->wrapper_base + WRAPPER_VCODEC0_MMCC_POWER_CONTROL;
                stat = core->wrapper_base + WRAPPER_VCODEC0_MMCC_POWER_STATUS;
        } else {