Loading drivers/gpu/drm/msm/dp/dp_drm.c +3 −0 Original line number Diff line number Diff line Loading @@ -184,6 +184,9 @@ static void dp_bridge_disable(struct drm_bridge *drm_bridge) bridge = to_dp_bridge(drm_bridge); dp = bridge->display; if (dp && dp->connector) sde_connector_helper_bridge_disable(dp->connector); rc = dp->pre_disable(dp); if (rc) { pr_err("[%d] DP display pre disable failed, rc=%d\n", Loading drivers/gpu/drm/msm/dsi-staging/dsi_display.h +2 −0 Original line number Diff line number Diff line Loading @@ -124,6 +124,7 @@ struct dsi_display_clk_info { * struct dsi_display - dsi display information * @pdev: Pointer to platform device. * @drm_dev: DRM device associated with the display. * @drm_conn: Pointer to DRM connector associated with the display * @name: Name of the display. * @display_type: Display type as defined in device tree. * @list: List pointer. Loading Loading @@ -161,6 +162,7 @@ struct dsi_display_clk_info { struct dsi_display { struct platform_device *pdev; struct drm_device *drm_dev; struct drm_connector *drm_conn; const char *name; const char *display_type; Loading drivers/gpu/drm/msm/dsi-staging/dsi_drm.c +7 −0 Original line number Diff line number Diff line Loading @@ -197,12 +197,17 @@ static void dsi_bridge_enable(struct drm_bridge *bridge) static void dsi_bridge_disable(struct drm_bridge *bridge) { int rc = 0; struct dsi_display *display; struct dsi_bridge *c_bridge = to_dsi_bridge(bridge); if (!bridge) { pr_err("Invalid params\n"); return; } display = c_bridge->display; if (display && display->drm_conn) sde_connector_helper_bridge_disable(display->drm_conn); rc = dsi_display_pre_disable(c_bridge->display); if (rc) { Loading Loading @@ -369,6 +374,8 @@ int dsi_conn_set_info_blob(struct drm_connector *connector, if (!info || !dsi_display) return -EINVAL; dsi_display->drm_conn = connector; sde_kms_info_add_keystr(info, "display type", dsi_display->display_type); Loading drivers/gpu/drm/msm/sde/sde_connector.c +14 −0 Original line number Diff line number Diff line Loading @@ -425,6 +425,20 @@ void sde_connector_schedule_status_work(struct drm_connector *connector, } } void sde_connector_helper_bridge_disable(struct drm_connector *connector) { int rc; if (!connector) return; /* trigger a final connector pre-kickoff for power mode updates */ rc = sde_connector_pre_kickoff(connector); if (rc) SDE_ERROR("conn %d final pre kickoff failed %d\n", connector->base.id, rc); } static int _sde_connector_update_power_locked(struct sde_connector *c_conn) { struct drm_connector *connector; Loading drivers/gpu/drm/msm/sde/sde_connector.h +7 −0 Original line number Diff line number Diff line Loading @@ -705,4 +705,11 @@ int sde_connector_get_mode_info(struct drm_connector_state *conn_state, * conn: Pointer to drm_connector struct */ void sde_conn_timeline_status(struct drm_connector *conn); /** * sde_connector_helper_bridge_disable - helper function for drm bridge disable * @connector: Pointer to DRM connector object */ void sde_connector_helper_bridge_disable(struct drm_connector *connector); #endif /* _SDE_CONNECTOR_H_ */ Loading
drivers/gpu/drm/msm/dp/dp_drm.c +3 −0 Original line number Diff line number Diff line Loading @@ -184,6 +184,9 @@ static void dp_bridge_disable(struct drm_bridge *drm_bridge) bridge = to_dp_bridge(drm_bridge); dp = bridge->display; if (dp && dp->connector) sde_connector_helper_bridge_disable(dp->connector); rc = dp->pre_disable(dp); if (rc) { pr_err("[%d] DP display pre disable failed, rc=%d\n", Loading
drivers/gpu/drm/msm/dsi-staging/dsi_display.h +2 −0 Original line number Diff line number Diff line Loading @@ -124,6 +124,7 @@ struct dsi_display_clk_info { * struct dsi_display - dsi display information * @pdev: Pointer to platform device. * @drm_dev: DRM device associated with the display. * @drm_conn: Pointer to DRM connector associated with the display * @name: Name of the display. * @display_type: Display type as defined in device tree. * @list: List pointer. Loading Loading @@ -161,6 +162,7 @@ struct dsi_display_clk_info { struct dsi_display { struct platform_device *pdev; struct drm_device *drm_dev; struct drm_connector *drm_conn; const char *name; const char *display_type; Loading
drivers/gpu/drm/msm/dsi-staging/dsi_drm.c +7 −0 Original line number Diff line number Diff line Loading @@ -197,12 +197,17 @@ static void dsi_bridge_enable(struct drm_bridge *bridge) static void dsi_bridge_disable(struct drm_bridge *bridge) { int rc = 0; struct dsi_display *display; struct dsi_bridge *c_bridge = to_dsi_bridge(bridge); if (!bridge) { pr_err("Invalid params\n"); return; } display = c_bridge->display; if (display && display->drm_conn) sde_connector_helper_bridge_disable(display->drm_conn); rc = dsi_display_pre_disable(c_bridge->display); if (rc) { Loading Loading @@ -369,6 +374,8 @@ int dsi_conn_set_info_blob(struct drm_connector *connector, if (!info || !dsi_display) return -EINVAL; dsi_display->drm_conn = connector; sde_kms_info_add_keystr(info, "display type", dsi_display->display_type); Loading
drivers/gpu/drm/msm/sde/sde_connector.c +14 −0 Original line number Diff line number Diff line Loading @@ -425,6 +425,20 @@ void sde_connector_schedule_status_work(struct drm_connector *connector, } } void sde_connector_helper_bridge_disable(struct drm_connector *connector) { int rc; if (!connector) return; /* trigger a final connector pre-kickoff for power mode updates */ rc = sde_connector_pre_kickoff(connector); if (rc) SDE_ERROR("conn %d final pre kickoff failed %d\n", connector->base.id, rc); } static int _sde_connector_update_power_locked(struct sde_connector *c_conn) { struct drm_connector *connector; Loading
drivers/gpu/drm/msm/sde/sde_connector.h +7 −0 Original line number Diff line number Diff line Loading @@ -705,4 +705,11 @@ int sde_connector_get_mode_info(struct drm_connector_state *conn_state, * conn: Pointer to drm_connector struct */ void sde_conn_timeline_status(struct drm_connector *conn); /** * sde_connector_helper_bridge_disable - helper function for drm bridge disable * @connector: Pointer to DRM connector object */ void sde_connector_helper_bridge_disable(struct drm_connector *connector); #endif /* _SDE_CONNECTOR_H_ */