]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amdgpu: Initialize vram_info for gmc v12_1
authorHawking Zhang <Hawking.Zhang@amd.com>
Thu, 12 Jun 2025 16:08:10 +0000 (00:08 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 10 Dec 2025 22:39:27 +0000 (17:39 -0500)
Initialize vram_info for gmc v12_1

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/gmc_v12_0.c
drivers/gpu/drm/amd/amdgpu/gmc_v12_1.c
drivers/gpu/drm/amd/amdgpu/gmc_v12_1.h

index 8e3e2d3c553fc2b5820daa152c65de5e6093dd33..90c5159a5a85b038513afccc3297f8e5ed2694ab 100644 (file)
@@ -781,12 +781,15 @@ static int gmc_v12_0_sw_init(struct amdgpu_ip_block *ip_block)
 
        spin_lock_init(&adev->gmc.invalidate_lock);
 
-       r = amdgpu_atomfirmware_get_vram_info(adev,
-                                             &vram_width, &vram_type, &vram_vendor);
-       adev->gmc.vram_width = vram_width;
-
-       adev->gmc.vram_type = vram_type;
-       adev->gmc.vram_vendor = vram_vendor;
+       if (amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(12, 1, 0)) {
+               gmc_v12_1_init_vram_info(adev);
+       } else {
+               r = amdgpu_atomfirmware_get_vram_info(adev,
+                             &vram_width, &vram_type, &vram_vendor);
+               adev->gmc.vram_width = vram_width;
+               adev->gmc.vram_type = vram_type;
+               adev->gmc.vram_vendor = vram_vendor;
+       }
 
        switch (amdgpu_ip_version(adev, GC_HWIP, 0)) {
        case IP_VERSION(12, 0, 0):
index 50208a3456a159d087acd801e13e4fb39e9d3f08..c54d2d10a8cafe58493acef250b0004d616e93b0 100644 (file)
@@ -597,3 +597,10 @@ void gmc_v12_1_set_irq_funcs(struct amdgpu_device *adev)
        adev->gmc.vm_fault.num_types = 1;
        adev->gmc.vm_fault.funcs = &gmc_v12_1_irq_funcs;
 }
+
+void gmc_v12_1_init_vram_info(struct amdgpu_device *adev)
+{
+       /* TODO: query vram_info from ip discovery binary */
+       adev->gmc.vram_type = AMDGPU_VRAM_TYPE_HBM4;
+       adev->gmc.vram_width = 384 * 64;
+}
index 67ee5f7fd9b45ecc7d9d5466dadf60f3f75f7937..2f08f4b8cd99e2b3b69fa26a43e4f2af77184ae2 100644 (file)
@@ -26,5 +26,5 @@
 
 void gmc_v12_1_set_gmc_funcs(struct amdgpu_device *adev);
 void gmc_v12_1_set_irq_funcs(struct amdgpu_device *adev);
-
+void gmc_v12_1_init_vram_info(struct amdgpu_device *adev);
 #endif