[Public]

> -----Original Message-----
> From: Lazar, Lijo <lijo.la...@amd.com>
> Sent: Tuesday, February 25, 2025 1:46 AM
> To: amd-gfx@lists.freedesktop.org
> Cc: Zhang, Hawking <hawking.zh...@amd.com>; Deucher, Alexander
> <alexander.deuc...@amd.com>; Kim, Jonathan <jonathan....@amd.com>
> Subject: [PATCH v3 4/4] drm/amdgpu: Calculate IP specific xgmi bandwidth
>
> Use IP version specific xgmi speed/width for bandwidth calculation.
>
> Signed-off-by: Lijo Lazar <lijo.la...@amd.com>

This patch is:
Reviewed-by: Jonathan Kim <jonathan....@amd.com>

> ---
> v2:
>       Move XGMI info init to early init phase (Jon)
> v3:
>       Rebase on top of drm/amdgpu: simplify xgmi peer info calls
>
>  drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 3 +++
>  drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c   | 4 +++-
>  2 files changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> index b2e9e116be44..df7cb692d8c0 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> @@ -2757,6 +2757,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);
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
> index 45566c320615..0cc42a43408e 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
> @@ -843,7 +843,9 @@ int amdgpu_xgmi_get_bandwidth(struct amdgpu_device
> *adev, struct amdgpu_device *
>  {
>       bool peer_mode = bw_mode == AMDGPU_XGMI_BW_MODE_PER_PEER;
>       int unit_scale = bw_unit == AMDGPU_XGMI_BW_UNIT_MBYTES ? 1000 :
> 1;
> -     int speed = 25, num_lanes = 16, num_links = !peer_mode ? 1 : -1;
> +     int num_lanes = adev->gmc.xgmi.max_width;
> +     int speed = adev->gmc.xgmi.max_speed;
> +     int num_links = !peer_mode ? 1 : -1;
>
>       if (!(min_bw && max_bw))
>               return -EINVAL;
> --
> 2.25.1

Reply via email to