From: Hawking Zhang <[email protected]>

Initialize vram_info for gmc v12_1

Signed-off-by: Hawking Zhang <[email protected]>
Reviewed-by: Likun Gao <[email protected]>
Signed-off-by: Alex Deucher <[email protected]>
---
 drivers/gpu/drm/amd/amdgpu/gmc_v12_0.c | 15 +++++++++------
 drivers/gpu/drm/amd/amdgpu/gmc_v12_1.c |  7 +++++++
 drivers/gpu/drm/amd/amdgpu/gmc_v12_1.h |  2 +-
 3 files changed, 17 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v12_0.c 
b/drivers/gpu/drm/amd/amdgpu/gmc_v12_0.c
index 8e3e2d3c553fc..90c5159a5a85b 100644
--- a/drivers/gpu/drm/amd/amdgpu/gmc_v12_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gmc_v12_0.c
@@ -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):
diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v12_1.c 
b/drivers/gpu/drm/amd/amdgpu/gmc_v12_1.c
index 50208a3456a15..c54d2d10a8caf 100644
--- a/drivers/gpu/drm/amd/amdgpu/gmc_v12_1.c
+++ b/drivers/gpu/drm/amd/amdgpu/gmc_v12_1.c
@@ -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;
+}
diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v12_1.h 
b/drivers/gpu/drm/amd/amdgpu/gmc_v12_1.h
index 67ee5f7fd9b45..2f08f4b8cd99e 100644
--- a/drivers/gpu/drm/amd/amdgpu/gmc_v12_1.h
+++ b/drivers/gpu/drm/amd/amdgpu/gmc_v12_1.h
@@ -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
-- 
2.51.1

Reply via email to