[PATCH] drm/ast: Fix black screen when getting out of suspend
Jocelyn Falempe
jfalempe at redhat.com
Mon Jun 27 08:45:07 UTC 2022
On 27/06/2022 09:39, Thomas Zimmermann wrote:
>
>
> 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.
Applied to drm-misc-next, thank you all.
>
>>
>>>>
>>>>> ---
>>>>> 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:
>>>>
>>>
>>
>
More information about the dri-devel
mailing list