[PATCH] drm/ast: Fix black screen when getting out of suspend

Lyude Paul lyude at redhat.com
Wed Jun 22 18:34:19 UTC 2022


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 at redhat.com>
> Tested-by: Venkat Tadikonda <venkateswara.rao at intel.com>

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 at redhat.com>

> +                       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



More information about the dri-devel mailing list