From fa0384dc997dad3573f40e3ed9986bae28a8d849 Mon Sep 17 00:00:00 2001 From: "Oliver F. Brown" <oliver.brown@nxp.com> Date: Fri, 6 May 2022 13:24:36 -0500 Subject: [PATCH] LF-6005: gpu: imx: dpu: framegen: Improve clock handling The bypass clock and display pixel clock needs to be set for HDMI. Signed-off-by: Oliver F. Brown <oliver.brown@nxp.com> Reviewed-by: Liu Ying <victor.liu@nxp.com> --- drivers/gpu/imx/dpu/dpu-framegen.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/imx/dpu/dpu-framegen.c b/drivers/gpu/imx/dpu/dpu-framegen.c index aac9efbd4d2c6..50d7d50e1ff87 100644 --- a/drivers/gpu/imx/dpu/dpu-framegen.c +++ b/drivers/gpu/imx/dpu/dpu-framegen.c @@ -250,12 +250,16 @@ void framegen_cfg_videomode(struct dpu_framegen *fg, struct drm_display_mode *m, disp_clock_rate = m->crtc_clock * 1000; if (encoder_type == DRM_MODE_ENCODER_TMDS) { - if (side_by_side) + clk_set_parent(fg->clk_disp, fg->clk_bypass); + if (side_by_side) { dpu_pxlink_set_mst_addr(dpu, fg->id, fg->id ? 2 : 1); - else + clk_set_rate(fg->clk_bypass, disp_clock_rate / 2); + clk_set_rate(fg->clk_disp, disp_clock_rate / 2); + } else { dpu_pxlink_set_mst_addr(dpu, fg->id, 1); - - clk_set_parent(fg->clk_disp, fg->clk_bypass); + clk_set_rate(fg->clk_bypass, disp_clock_rate); + clk_set_rate(fg->clk_disp, disp_clock_rate); + } fg->use_bypass_clk = true; } else { -- GitLab