]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amdgpu: Init mcm_addr look up table
authorHawking Zhang <Hawking.Zhang@amd.com>
Thu, 12 Jun 2025 13:52:19 +0000 (21:52 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 5 Jan 2026 21:59:55 +0000 (16:59 -0500)
Encode mcm address look up table in SPX mode
as a temp solution.

v2: fill in when interface is ready (Alex)

Signed-off-by: Hawking Zhang <Hawking.Zhang@amd.com>
Reviewed-by: Likun Gao <Likun.Gao@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_imu.h
drivers/gpu/drm/amd/amdgpu/gfx_v12_1.c
drivers/gpu/drm/amd/amdgpu/imu_v12_1.c

index eb8537558f5fb6b94b831f7ca97217ade0853cbb..9c56be725ff3d547891b94f900a290d227ca542d 100644 (file)
@@ -39,6 +39,7 @@ struct amdgpu_imu_funcs {
     int (*switch_compute_partition)(struct amdgpu_device *adev,
                                    int num_xccs_per_xcp,
                                    int compute_partition_mode);
+    void (*init_mcm_addr_lut)(struct amdgpu_device *adev);
 };
 
 struct imu_rlc_ram_golden {
index 1f567bd6cc4602d5f29c789d8b3d45d85ee22745..a904edc2869c25f99b5236ed8b64a0904692e965 100644 (file)
@@ -2666,6 +2666,11 @@ static void gfx_v12_1_init_golden_registers(struct amdgpu_device *adev)
                gfx_v12_1_xcc_enable_atomics(adev, i);
                gfx_v12_1_xcc_setup_tcp_thrashing_ctrl(adev, i);
        }
+
+       if (adev->gfx.imu.funcs &&
+           adev->gfx.imu.funcs->init_mcm_addr_lut &&
+           amdgpu_emu_mode)
+               adev->gfx.imu.funcs->init_mcm_addr_lut(adev);
 }
 
 static int gfx_v12_1_hw_init(struct amdgpu_ip_block *ip_block)
index 8e33ffcdfa4ccb6a9bb86ef9653493eadc4a0fa5..539785a51f69f61efa71ca74a57ab1bacc86c636 100644 (file)
@@ -153,8 +153,14 @@ static int imu_v12_1_switch_compute_partition(struct amdgpu_device *adev,
        return 0;
 }
 
+static void imu_v12_1_init_mcm_addr_lut(struct amdgpu_device *adev)
+{
+       /* todo: fill in when interface is ready */
+}
+
 const struct amdgpu_imu_funcs gfx_v12_1_imu_funcs = {
        .init_microcode = imu_v12_1_init_microcode,
        .load_microcode = imu_v12_1_load_microcode,
        .switch_compute_partition = imu_v12_1_switch_compute_partition,
+       .init_mcm_addr_lut = imu_v12_1_init_mcm_addr_lut,
 };