media: venus: hfi: Skip AON register programming for V6 1pipe
authorDikshita Agarwal <dikshita@codeaurora.org>
Tue, 10 Aug 2021 09:47:52 +0000 (11:47 +0200)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Fri, 8 Oct 2021 09:26:14 +0000 (11:26 +0200)
AON register programming is used to set NOC to low power mode
during V6 power off sequence. However AON register memory map
is not applicable to 1pipe, hence skipping AON register programming.

Co-developed-by: Mansur Alisha Shaik <mansur@codeaurora.org>
Signed-off-by: Mansur Alisha Shaik <mansur@codeaurora.org>
Co-developed-by: Vikash Garodia <vgarodia@codeaurora.org>
Signed-off-by: Vikash Garodia <vgarodia@codeaurora.org>
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/hfi_venus.c

index ce98c523b3c683771c684c270fa0cb7c09655d6b..3a75a27632fbc47e7e00d98b6cbd753210cebc7a 100644 (file)
@@ -551,6 +551,9 @@ static int venus_halt_axi(struct venus_hfi_device *hdev)
        if (IS_V6(hdev->core)) {
                writel(0x3, cpu_cs_base + CPU_CS_X2RPMH_V6);
 
+               if (hdev->core->res->num_vpp_pipes == 1)
+                       goto skip_aon_mvp_noc;
+
                writel(0x1, aon_base + AON_WRAPPER_MVP_NOC_LPI_CONTROL);
                ret = readl_poll_timeout(aon_base + AON_WRAPPER_MVP_NOC_LPI_STATUS,
                                         val,
@@ -560,6 +563,7 @@ static int venus_halt_axi(struct venus_hfi_device *hdev)
                if (ret)
                        return -ETIMEDOUT;
 
+skip_aon_mvp_noc:
                mask_val = (BIT(2) | BIT(1) | BIT(0));
                writel(mask_val, wrapper_base + WRAPPER_DEBUG_BRIDGE_LPI_CONTROL_V6);