From fe1c48e9bda60b1b4d4f1d84980c66dde7c1954a Mon Sep 17 00:00:00 2001 From: Likun Gao Date: Fri, 21 Mar 2025 11:23:44 +0800 Subject: [PATCH] drm/amdgpu: add soc config init for GC v12_1 Add function to initialize soc configuration information for GC 12.1.0 ASICs. Use it to map IPs and other SOC related information once IP configuration information is available through discovery. Signed-off-by: Likun Gao Reviewed-by: Hawking Zhang Signed-off-by: Alex Deucher --- drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c | 3 +++ drivers/gpu/drm/amd/amdgpu/soc_v1_0.c | 10 ++++++++++ drivers/gpu/drm/amd/amdgpu/soc_v1_0.h | 1 + 3 files changed, 14 insertions(+) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c index ffffc60c98db..20d05a3e4516 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c @@ -2592,6 +2592,9 @@ static void amdgpu_discovery_init_soc_config(struct amdgpu_device *adev) case IP_VERSION(9, 5, 0): aqua_vanjaram_init_soc_config(adev); break; + case IP_VERSION(12, 1, 0): + soc_v1_0_init_soc_config(adev); + break; default: break; } diff --git a/drivers/gpu/drm/amd/amdgpu/soc_v1_0.c b/drivers/gpu/drm/amd/amdgpu/soc_v1_0.c index 815f130f760c..0ede5e22e905 100644 --- a/drivers/gpu/drm/amd/amdgpu/soc_v1_0.c +++ b/drivers/gpu/drm/amd/amdgpu/soc_v1_0.c @@ -24,6 +24,7 @@ #include "soc15.h" #include "soc15_common.h" #include "soc_v1_0.h" +#include "amdgpu_ip.h" #include "gc/gc_12_1_0_offset.h" #include "gc/gc_12_1_0_sh_mask.h" @@ -334,3 +335,12 @@ const struct amdgpu_ip_block_version soc_v1_0_common_ip_block = { .rev = 0, .funcs = &soc_v1_0_common_ip_funcs, }; + +int soc_v1_0_init_soc_config(struct amdgpu_device *adev) +{ + adev->sdma.num_inst_per_xcc = 2; + + amdgpu_ip_map_init(adev); + + return 0; +} diff --git a/drivers/gpu/drm/amd/amdgpu/soc_v1_0.h b/drivers/gpu/drm/amd/amdgpu/soc_v1_0.h index d9de040c3729..23517c3a3d1b 100644 --- a/drivers/gpu/drm/amd/amdgpu/soc_v1_0.h +++ b/drivers/gpu/drm/amd/amdgpu/soc_v1_0.h @@ -29,5 +29,6 @@ void soc_v1_0_grbm_select(struct amdgpu_device *adev, u32 me, u32 pipe, u32 queue, u32 vmid, int xcc_id); +int soc_v1_0_init_soc_config(struct amdgpu_device *adev); #endif -- 2.47.3