[Public] Reviewed-by: Guchun Chen <guchun.chen@xxxxxxx> > -----Original Message----- > From: amd-gfx <amd-gfx-bounces@xxxxxxxxxxxxxxxxxxxxx> On Behalf Of Alex > Deucher > Sent: Monday, June 12, 2023 10:55 PM > To: amd-gfx@xxxxxxxxxxxxxxxxxxxxx > Cc: Deucher, Alexander <Alexander.Deucher@xxxxxxx> > Subject: [PATCH] drm/amd/display: don't free stolen console memory during > suspend > > Don't free the memory if we are hitting this as part of suspend. > This way we don't free any memory during suspend; see > amdgpu_bo_free_kernel(). The memory will be freed in the first non- > suspend modeset or when the driver is torn down. > > Link: https://gitlab.freedesktop.org/drm/amd/-/issues/2568 > Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx> > --- > drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 15 > +++++++++++---- > 1 file changed, 11 insertions(+), 4 deletions(-) > > 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 0454e94d5680..fc0dd31785cb 100644 > --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > @@ -8963,10 +8963,17 @@ static void > amdgpu_dm_atomic_commit_tail(struct drm_atomic_state *state) > > drm_atomic_helper_cleanup_planes(dev, state); > > - /* return the stolen vga memory back to VRAM */ > - if (!adev->mman.keep_stolen_vga_memory) > - amdgpu_bo_free_kernel(&adev->mman.stolen_vga_memory, > NULL, NULL); > - amdgpu_bo_free_kernel(&adev->mman.stolen_extended_memory, > NULL, NULL); > + /* Don't free the memory if we are hitting this as part of suspend. > + * This way we don't free any memory during suspend; see > + * amdgpu_bo_free_kernel(). The memory will be freed in the first > + * non-suspend modeset or when the driver is torn down. > + */ > + if (!adev->in_suspend) { > + /* return the stolen vga memory back to VRAM */ > + if (!adev->mman.keep_stolen_vga_memory) > + amdgpu_bo_free_kernel(&adev- > >mman.stolen_vga_memory, NULL, NULL); > + amdgpu_bo_free_kernel(&adev- > >mman.stolen_extended_memory, NULL, NULL); > + } > > /* > * Finally, drop a runtime PM reference for each newly disabled CRTC, > -- > 2.40.1