[PATCH] drm/ast: Fix black screen when getting out of suspend
Thomas Zimmermann
tzimmermann at suse.de
Mon Jun 27 07:39:27 UTC 2022
Am 27.06.22 um 09:31 schrieb Jocelyn Falempe:
> On 23/06/2022 10:21, Jocelyn Falempe wrote:
>> On 22/06/2022 20:34, Lyude Paul wrote:
>>> 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
>>
>> Sure I will add cc to stable for the v2
>
> In fact it doesn't apply to older kernel version, (it depends on
> 594e9c04b586 Create the driver for ASPEED proprietory Display-Port).
>
> So I think I will just push it to drm-misc-next, with the indentation
> fixed.
Sure, go ahead.
>
>>>
>>>> ---
>>>> 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 '{'.
>>
>> looks like I forget to run checkpatch.pl on it before sending :(
>>
>> I'll wait a bit for other comments, and sent a v2 with cc for stable.
>>>
>>> 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:
>>>
>>
>
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
(HRB 36809, AG Nürnberg)
Geschäftsführer: Ivo Totev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 840 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20220627/14201644/attachment-0001.sig>
More information about the dri-devel
mailing list