[AMD Official Use Only - General] Acked-by: Hawking Zhang <Hawking.Zhang@xxxxxxx> Regards, Hawking -----Original Message----- From: amd-gfx <amd-gfx-bounces@xxxxxxxxxxxxxxxxxxxxx> On Behalf Of Alex Deucher Sent: Thursday, June 15, 2023 21:18 To: Deucher, Alexander <Alexander.Deucher@xxxxxxx> Cc: amd-gfx@xxxxxxxxxxxxxxxxxxxxx Subject: Re: [PATCH] drm/amdgpu/atomfirmware: fix DDR5 width reporting Ping? On Mon, Jun 12, 2023 at 5:47 PM Alex Deucher <alexdeucher@xxxxxxxxx> wrote: > > 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 > >