diff --git a/drivers/gpu/drm/stm/ltdc.c b/drivers/gpu/drm/stm/ltdc.c index a7c85a92221d4f..104dcefe43712b 100644 --- a/drivers/gpu/drm/stm/ltdc.c +++ b/drivers/gpu/drm/stm/ltdc.c @@ -1134,6 +1134,14 @@ static void ltdc_encoder_enable(struct drm_encoder *encoder) DRM_DEBUG_DRIVER("\n"); + /* + * Set to default state the pinctrl only with DPI type. + * Others types like DSI, don't need pinctrl due to + * internal bridge (the signals do not come out of the chipset). + */ + if (encoder->encoder_type == DRM_MODE_ENCODER_DPI) + pinctrl_pm_select_default_state(ddev->dev); + /* Enable LTDC */ reg_set(ldev->regs, LTDC_GCR, GCR_LTDCEN); } @@ -1146,11 +1154,7 @@ static void ltdc_encoder_mode_set(struct drm_encoder *encoder, DRM_DEBUG_DRIVER("\n"); - /* - * Set to default state the pinctrl only with DPI type. - * Others types like DSI, don't need pinctrl due to - * internal bridge (the signals do not come out of the chipset). - */ + /* Set pinctrl to default as soon as possible */ if (encoder->encoder_type == DRM_MODE_ENCODER_DPI) pinctrl_pm_select_default_state(ddev->dev); }