Some small nitpicks: On Wed, 2022-06-22 at 14:48 +0200, Jocelyn Falempe wrote: > With an AST2600, the screen is garbage when going out of suspend. > This is because color settings are lost, and not restored on resume. > Force the color settings on DPMS_ON, to make sure the settings are correct. > > I didn't write this code, it comes from the out-of-tree aspeed driver v1.13 > https://www.aspeedtech.com/support_driver/ > > Signed-off-by: Jocelyn Falempe <jfalempe@xxxxxxxxxx> > Tested-by: Venkat Tadikonda <venkateswara.rao@xxxxxxxxx> Should have a Cc: to stable imho, `dim` can do this for you: https://drm.pages.freedesktop.org/maintainer-tools/dim.html > --- > drivers/gpu/drm/ast/ast_mode.c | 13 +++++++++++++ > 1 file changed, 13 insertions(+) > > diff --git a/drivers/gpu/drm/ast/ast_mode.c b/drivers/gpu/drm/ast/ast_mode.c > index 3eb9afecd9d4..cdddcb5c4439 100644 > --- a/drivers/gpu/drm/ast/ast_mode.c > +++ b/drivers/gpu/drm/ast/ast_mode.c > @@ -990,6 +990,9 @@ static void ast_crtc_dpms(struct drm_crtc *crtc, int > mode) > { > struct ast_private *ast = to_ast_private(crtc->dev); > u8 ch = AST_DPMS_VSYNC_OFF | AST_DPMS_HSYNC_OFF; > + struct ast_crtc_state *ast_state; > + const struct drm_format_info *format; > + struct ast_vbios_mode_info *vbios_mode_info; > > /* TODO: Maybe control display signal generation with > * Sync Enable (bit CR17.7). > @@ -1007,6 +1010,16 @@ static void ast_crtc_dpms(struct drm_crtc *crtc, int > mode) > ast_dp_set_on_off(crtc->dev, 1); > } > > + ast_state = to_ast_crtc_state(crtc->state); > + format = ast_state->format; > + > + if (format){ Should be a space between ')' and '{'. With that fixed, this is: Reviewed-by: Lyude Paul <lyude@xxxxxxxxxx> > + vbios_mode_info = &ast_state->vbios_mode_info; > + > + ast_set_color_reg(ast, format); > + ast_set_vbios_color_reg(ast, format, > vbios_mode_info); > + } > + > ast_crtc_load_lut(ast, crtc); > break; > case DRM_MODE_DPMS_STANDBY: -- Cheers, Lyude Paul (she/her) Software Engineer at Red Hat