This reverts commit cd65f5547f06b8c144063b1744011a135157e364.

FW programming is not yet functional fully. Revert till the programming
is in place in FW.

Signed-off-by: Lijo Lazar <[email protected]>
Reviewed-by: Hawking Zhang <[email protected]>
---
 drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c | 29 +++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c 
b/drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c
index 738226ed6e50..c0855c3769d4 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c
@@ -1034,6 +1034,32 @@ static void gfx_v9_4_3_xcc_disable_gpa_mode(struct 
amdgpu_device *adev, int xcc_
        WREG32_SOC15(GC, GET_INST(GC, xcc_id), regCPC_PSP_DEBUG, data);
 }
 
+static void gfx_v9_4_3_xcc_program_xcc_id(struct amdgpu_device *adev,
+                                         int xcc_id)
+{
+       uint32_t tmp = 0;
+       int num_xcc;
+
+       num_xcc = NUM_XCC(adev->gfx.xcc_mask);
+       switch (num_xcc) {
+       /* directly config VIRTUAL_XCC_ID to 0 for 1-XCC */
+       case 1:
+               WREG32_SOC15(GC, GET_INST(GC, xcc_id), regCP_HYP_XCP_CTL, 0x8);
+               break;
+       case 2:
+       case 4:
+       case 6:
+       case 8:
+               tmp = (xcc_id % adev->gfx.num_xcc_per_xcp) << 
REG_FIELD_SHIFT(CP_HYP_XCP_CTL, VIRTUAL_XCC_ID);
+               tmp = tmp | (adev->gfx.num_xcc_per_xcp << 
REG_FIELD_SHIFT(CP_HYP_XCP_CTL, NUM_XCC_IN_XCP));
+               WREG32_SOC15(GC, GET_INST(GC, xcc_id), regCP_HYP_XCP_CTL, tmp);
+
+               break;
+       default:
+               break;
+       }
+}
+
 static bool gfx_v9_4_3_is_rlc_enabled(struct amdgpu_device *adev)
 {
        uint32_t rlc_setting;
@@ -1910,6 +1936,9 @@ static int gfx_v9_4_3_xcc_cp_resume(struct amdgpu_device 
*adev, int xcc_id)
                        return r;
        }
 
+       /* set the virtual and physical id based on partition_mode */
+       gfx_v9_4_3_xcc_program_xcc_id(adev, xcc_id);
+
        r = gfx_v9_4_3_xcc_kiq_resume(adev, xcc_id);
        if (r)
                return r;
-- 
2.25.1

Reply via email to