Re: [PATCH] drm/amdgpu/atomfirmware: fix DDR5 width reporting

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Ping?

On Wed, Jun 7, 2023 at 12:46 PM Alex Deucher <alexander.deucher@xxxxxxx> wrote:
>
> DDR5 channels are 32 bit rather than 64, report the width properly
> in the log.
>
> Link: https://gitlab.freedesktop.org/drm/amd/-/issues/2468
> Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
> ---
>  .../gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c  | 20 +++++++++++++------
>  1 file changed, 14 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c
> index ef4b9a41f20a..6b3bdc27f778 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c
> @@ -327,10 +327,14 @@ amdgpu_atomfirmware_get_vram_info(struct amdgpu_device *adev,
>                                         mem_channel_number = igp_info->v11.umachannelnumber;
>                                         if (!mem_channel_number)
>                                                 mem_channel_number = 1;
> -                                       /* channel width is 64 */
> -                                       if (vram_width)
> -                                               *vram_width = mem_channel_number * 64;
>                                         mem_type = igp_info->v11.memorytype;
> +                                       if ((mem_type == Ddr5MemType) ||
> +                                           (mem_type == LpDdr5MemType))
> +                                               mem_channel_width = 32;
> +                                       else
> +                                               mem_channel_width = 64;
> +                                       if (vram_width)
> +                                               *vram_width = mem_channel_number * mem_channel_width;
>                                         if (vram_type)
>                                                 *vram_type = convert_atom_mem_type_to_vram_type(adev, mem_type);
>                                         break;
> @@ -345,10 +349,14 @@ amdgpu_atomfirmware_get_vram_info(struct amdgpu_device *adev,
>                                         mem_channel_number = igp_info->v21.umachannelnumber;
>                                         if (!mem_channel_number)
>                                                 mem_channel_number = 1;
> -                                       /* channel width is 64 */
> -                                       if (vram_width)
> -                                               *vram_width = mem_channel_number * 64;
>                                         mem_type = igp_info->v21.memorytype;
> +                                       if ((mem_type == Ddr5MemType) ||
> +                                           (mem_type == LpDdr5MemType))
> +                                               mem_channel_width = 32;
> +                                       else
> +                                               mem_channel_width = 64;
> +                                       if (vram_width)
> +                                               *vram_width = mem_channel_number * mem_channel_width;
>                                         if (vram_type)
>                                                 *vram_type = convert_atom_mem_type_to_vram_type(adev, mem_type);
>                                         break;
> --
> 2.40.1
>




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux