[PATCH] drm/amd/display: Fix white screen page fault for gpuvm

Liu, Aaron Aaron.Liu at amd.com
Tue Sep 14 03:37:55 UTC 2021


[AMD Official Use Only]

Verified on Yellow Carp.
Acked-by: Aaron Liu <aaron.liu at amd.com>

--
Best Regards
Aaron Liu

> -----Original Message-----
> From: Kazlauskas, Nicholas <Nicholas.Kazlauskas at amd.com>
> Sent: Tuesday, September 14, 2021 3:26 AM
> To: Alex Deucher <alexdeucher at gmail.com>
> Cc: amd-gfx list <amd-gfx at lists.freedesktop.org>; Liu, Aaron
> <Aaron.Liu at amd.com>
> Subject: Re: [PATCH] drm/amd/display: Fix white screen page fault for
> gpuvm
> 
> On 2021-09-13 3:13 p.m., Alex Deucher wrote:
> > Acked-by: Alex Deucher <alexander.deucher at amd.com>
> >
> > Can you add a fixes: tag?
> >
> > Alex
> 
> Sure, I think the relevant patch is:
> 
> Fixes: 64b1d0e8d50 ("drm/amd/display: Add DCN3.1 HWSEQ")
> 
> Regards,
> Nicholas Kazlauskas
> 
> >
> > On Mon, Sep 13, 2021 at 3:11 PM Nicholas Kazlauskas
> > <nicholas.kazlauskas at amd.com> wrote:
> >>
> >> [Why]
> >> The "base_addr_is_mc_addr" field was added for dcn3.1 support but
> >> pa_config was never updated to set it to false.
> >>
> >> Uninitialized memory causes it to be set to true which results in
> >> address mistranslation and white screen.
> >>
> >> [How]
> >> Use memset to ensure all fields are initialized to 0 by default.
> >>
> >> Cc: Aaron Liu <aaron.liu at amd.com>
> >> Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas at amd.com>
> >> ---
> >>   drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 2 ++
> >>   1 file changed, 2 insertions(+)
> >>
> >> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> >> b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> >> index 53363728dbb..b0426bb3f2e 100644
> >> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> >> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> >> @@ -1125,6 +1125,8 @@ static void
> mmhub_read_system_context(struct amdgpu_device *adev, struct dc_phy_
> >>          uint32_t agp_base, agp_bot, agp_top;
> >>          PHYSICAL_ADDRESS_LOC page_table_start, page_table_end,
> >> page_table_base;
> >>
> >> +       memset(pa_config, 0, sizeof(*pa_config));
> >> +
> >>          logical_addr_low  = min(adev->gmc.fb_start, adev->gmc.agp_start) >>
> 18;
> >>          pt_base = amdgpu_gmc_pd_addr(adev->gart.bo);
> >>
> >> --
> >> 2.25.1
> >>


More information about the amd-gfx mailing list