From: Hoegeun Kwon Date: Wed, 14 Jun 2023 08:06:14 +0000 (+0900) Subject: drm/verisilicon: hdmi: Fix to timming for hdmi_setup X-Git-Tag: accepted/tizen/unified/riscv/20230725.071352~25 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b47ed893f591923a2e8ae940046d1889f50c7ba8;p=platform%2Fkernel%2Flinux-starfive.git drm/verisilicon: hdmi: Fix to timming for hdmi_setup When changing the mode, a problem occurs because we try to write a value to reg in a state that is not resumed after suspend. Move the timing of writing values to reg to enable. Change-Id: I49db485e947c164129b1412cdff2a16d6306895e Signed-off-by: Hoegeun Kwon --- diff --git a/drivers/gpu/drm/verisilicon/starfive_hdmi.c b/drivers/gpu/drm/verisilicon/starfive_hdmi.c index 128ecca03309..720e06f578bb 100644 --- a/drivers/gpu/drm/verisilicon/starfive_hdmi.c +++ b/drivers/gpu/drm/verisilicon/starfive_hdmi.c @@ -424,8 +424,6 @@ static void starfive_hdmi_encoder_mode_set(struct drm_encoder *encoder, { struct starfive_hdmi *hdmi = encoder_to_hdmi(encoder); - starfive_hdmi_setup(hdmi, adj_mode); - memcpy(&hdmi->previous_mode, adj_mode, sizeof(hdmi->previous_mode)); } @@ -434,6 +432,9 @@ static void starfive_hdmi_encoder_enable(struct drm_encoder *encoder) struct starfive_hdmi *hdmi = encoder_to_hdmi(encoder); pm_runtime_get_sync(hdmi->dev); + + mdelay(10); + starfive_hdmi_setup(hdmi, &hdmi->previous_mode); } static void starfive_hdmi_encoder_disable(struct drm_encoder *encoder)