media: venus: hfi: Read WRAPPER_TZ_CPU_STATUS_V6 on 6xx
authorBryan O'Donoghue <bryan.odonoghue@linaro.org>
Fri, 2 Apr 2021 10:06:37 +0000 (12:06 +0200)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Tue, 6 Apr 2021 13:49:20 +0000 (15:49 +0200)
On 6xx we should read wrapper cpu status from the wrapper TZ register set.

Co-developed-by: Jonathan Marek <jonathan@marek.ca>
Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Co-developed-by: Dikshita Agarwal <dikshita@codeaurora.org>
Signed-off-by: Dikshita Agarwal <dikshita@codeaurora.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/hfi_venus.c

index 09fc81d..dabff86 100644 (file)
@@ -1472,10 +1472,14 @@ static int venus_suspend_1xx(struct venus_core *core)
 static bool venus_cpu_and_video_core_idle(struct venus_hfi_device *hdev)
 {
        void __iomem *wrapper_base = hdev->core->wrapper_base;
+       void __iomem *wrapper_tz_base = hdev->core->wrapper_tz_base;
        void __iomem *cpu_cs_base = hdev->core->cpu_cs_base;
        u32 ctrl_status, cpu_status;
 
-       cpu_status = readl(wrapper_base + WRAPPER_CPU_STATUS);
+       if (IS_V6(hdev->core))
+               cpu_status = readl(wrapper_tz_base + WRAPPER_TZ_CPU_STATUS_V6);
+       else
+               cpu_status = readl(wrapper_base + WRAPPER_CPU_STATUS);
        ctrl_status = readl(cpu_cs_base + CPU_CS_SCIACMDARG0);
 
        if (cpu_status & WRAPPER_CPU_STATUS_WFI &&
@@ -1488,10 +1492,14 @@ static bool venus_cpu_and_video_core_idle(struct venus_hfi_device *hdev)
 static bool venus_cpu_idle_and_pc_ready(struct venus_hfi_device *hdev)
 {
        void __iomem *wrapper_base = hdev->core->wrapper_base;
+       void __iomem *wrapper_tz_base = hdev->core->wrapper_tz_base;
        void __iomem *cpu_cs_base = hdev->core->cpu_cs_base;
        u32 ctrl_status, cpu_status;
 
-       cpu_status = readl(wrapper_base + WRAPPER_CPU_STATUS);
+       if (IS_V6(hdev->core))
+               cpu_status = readl(wrapper_tz_base + WRAPPER_TZ_CPU_STATUS_V6);
+       else
+               cpu_status = readl(wrapper_base + WRAPPER_CPU_STATUS);
        ctrl_status = readl(cpu_cs_base + CPU_CS_SCIACMDARG0);
 
        if (cpu_status & WRAPPER_CPU_STATUS_WFI &&