Re: [PATCH 1/1] drm/amdgpu: Do not enter PSR if multiple displays are active
Leo Li <[email protected]> Fri, 7 Aug 2026 10:59:35 -0400
| Newsgroups | org.freedesktop.lists.amd-gfx |
|---|---|
| Message-ID | <[email protected]> |
On 2026-08-06 10:34, [email protected] wrote: > [Some people who received this message don't often get email from [email protected]. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ] > > From: Mitchell Augustin <[email protected]> > > Issue: https://gitlab.freedesktop.org/drm/amd/-/work_items/5394 > Ubuntu BugLink: https://bugs.launchpad.net/bugs/2162904 > > This commit disables panel self-refresh when more than one display is > active to eliminate a common hang and system crash that happens > frequently on some laptops, evidently due to race conditions between > the DMCUB, amdgpu module, and possibly other components which are > exacerbated when more than one display is active. > > To my knowledge, a fix for the underlying failure condition is not > available upstream, so given how disruptive this is for impacted users, > I propose disabling this feature under this condition until it is fixed. > The main downside of disabling PSR is that it > will increase power consumption, but this should be barely noticeable to > end users, since PSR will remain enabled on laptops unconnected to > external monitors, and since laptops connected to external monitors are > likely typically also connected to power (and thus less concerned with > the energy savings afforded by PSR). > > Signed-off-by: Mitchell Augustin <[email protected]> > Hi Mitchell, Do you know if this issue still occurs on 7.2-rc6? It includes a bunch of fixes targeting flip-done timeout issues that involved PSR. Thanks, Leo > --- > drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c > index 5d2715f78314..272f195b8c28 100644 > --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c > +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c > @@ -152,7 +152,8 @@ void amdgpu_dm_crtc_set_panel_sr_feature( > struct amdgpu_dm_connector *aconn = > (struct amdgpu_dm_connector *) stream->dm_stream_context; > > - if (!aconn->disallow_edp_enter_psr) { > + /* Do not enter PSR if multiple displays are active to prevent DMCUB hangs */ > + if (!aconn->disallow_edp_enter_psr && dm->dc->current_state->stream_count == 1) { > amdgpu_dm_psr_enable(stream); > if (dm->idle_workqueue && > (dm->dc->config.disable_ips == DMUB_IPS_ENABLE) && > -- > 2.43.0 >