diff --git a/msm/dp/dp_drm.c b/msm/dp/dp_drm.c index 1bb2d4a1d9e9..6398f525dfa9 100644 --- a/msm/dp/dp_drm.c +++ b/msm/dp/dp_drm.c @@ -150,6 +150,9 @@ static void dp_bridge_enable(struct drm_bridge *drm_bridge) if (rc) DP_ERR("[%d] DP display post enable failed, rc=%d\n", bridge->id, rc); + + if (dp->is_edp) + sde_connector_helper_bridge_enable(bridge->connector); } static void dp_bridge_disable(struct drm_bridge *drm_bridge) diff --git a/msm/sde/sde_connector.c b/msm/sde/sde_connector.c index 8c23f622a97b..c0b7086e0802 100644 --- a/msm/sde/sde_connector.c +++ b/msm/sde/sde_connector.c @@ -1020,18 +1020,23 @@ void sde_connector_helper_bridge_enable(struct drm_connector *connector) } c_conn = to_sde_connector(connector); - display = (struct dsi_display *) c_conn->display; - /* - * Special handling for some panels which need atleast - * one frame to be transferred to GRAM before enabling backlight. - * So delay backlight update to these panels until the - * first frame commit is received from the HW. - */ - if (display->panel->bl_config.bl_update == - BL_UPDATE_DELAY_UNTIL_FIRST_FRAME) - sde_encoder_wait_for_event(c_conn->encoder, - MSM_ENC_TX_COMPLETE); + if (c_conn->connector_type == DRM_MODE_CONNECTOR_DSI) { + display = (struct dsi_display *) c_conn->display; + + /* + * Special handling for some panels which need atleast + * one frame to be transferred to GRAM before enabling + * backlight. + * So delay backlight update to these panels until the + * first frame commit is received from the HW. + */ + if (display->panel->bl_config.bl_update == + BL_UPDATE_DELAY_UNTIL_FIRST_FRAME) + sde_encoder_wait_for_event(c_conn->encoder, + MSM_ENC_TX_COMPLETE); + } + c_conn->allow_bl_update = true; if (!sde_in_trusted_vm(sde_kms) && c_conn->bl_device) {