On 2022-01-04 10:33, Mario Limonciello wrote: > The WA from commit 5965280abd30 ("drm/amd/display: Apply w/a for > hard hang on HPD") causes a regression in s0ix where the system will > fail to resume properly. This may be because an HPD was active the last > time clocks were updated but clocks didn't get updated again during s0ix. > > So add an extra call to update clocks as part of the suspend routine: > dm_suspend->dc_set_power_state->clk_mgr_optimize_pwr_state > > Cc: Qingqing Zhuo <qingqing.zhuo@xxxxxxx> > BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=215436 > BugLink: https://gitlab.freedesktop.org/drm/amd/-/issues/1821 > Fixes: 5965280abd30 ("drm/amd/display: Apply w/a for hard hang on HPD") > Signed-off-by: Mario Limonciello <mario.limonciello@xxxxxxx> > --- > drivers/gpu/drm/amd/display/dc/core/dc.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c > index 91c4874473d6..6968ad6c5a64 100644 > --- a/drivers/gpu/drm/amd/display/dc/core/dc.c > +++ b/drivers/gpu/drm/amd/display/dc/core/dc.c > @@ -3299,6 +3299,8 @@ void dc_set_power_state( > } > > break; > + case DC_ACPI_CM_POWER_STATE_D3: > + clk_mgr_optimize_pwr_state(dc, dc->clk_mgr); We probably want a "fallthrough;" statement here. Harry > default: > ASSERT(dc->current_state->stream_count == 0); > /* Zero out the current context so that on resume we start with