[PATCH v2 4/4] drm/amdgpu: Use xgmi APIs for init and bandwidth
Lijo Lazar
lijo.lazar at amd.com
Mon Feb 10 07:00:34 UTC 2025
Initialize xgmi related static information during early_init. Use xgmi
API to get max bandwidth details.
Signed-off-by: Lijo Lazar <lijo.lazar at amd.com>
---
v2:
Move XGMI info init to early init phase (Jon)
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 6 ++++--
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 3 +++
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
index 2c1b38c5cfc6..e6bc70fb1eb6 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
@@ -576,6 +576,7 @@ int amdgpu_amdkfd_get_xgmi_bandwidth_mbytes(struct amdgpu_device *dst,
bool is_min)
{
struct amdgpu_device *adev = dst, *peer_adev;
+ uint32_t link_max_bandwidth;
int num_links;
if (amdgpu_ip_version(adev, GC_HWIP, 0) < IP_VERSION(9, 4, 2))
@@ -593,8 +594,9 @@ int amdgpu_amdkfd_get_xgmi_bandwidth_mbytes(struct amdgpu_device *dst,
num_links = 0;
}
- /* Aldebaran xGMI DPM is defeatured so assume x16 x 25Gbps for bandwidth. */
- return (num_links * 16 * 25000)/BITS_PER_BYTE;
+ link_max_bandwidth = amdgpu_xgmi_get_max_bandwidth(adev);
+
+ return (num_links * link_max_bandwidth)/BITS_PER_BYTE;
}
int amdgpu_amdkfd_get_pcie_bandwidth_mbytes(struct amdgpu_device *adev, bool is_min)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
index 315ab2d6717a..09aac4542ed7 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -2749,6 +2749,9 @@ static int amdgpu_device_ip_early_init(struct amdgpu_device *adev)
if (!total)
return -ENODEV;
+ if (adev->gmc.xgmi.supported)
+ amdgpu_xgmi_early_init(adev);
+
ip_block = amdgpu_device_ip_get_ip_block(adev, AMD_IP_BLOCK_TYPE_GFX);
if (ip_block->status.valid != false)
amdgpu_amdkfd_device_probe(adev);
--
2.25.1
More information about the amd-gfx
mailing list