Loading drivers/gpu/drm/msm/dsi-staging/dsi_display.c +23 −10 Original line number Diff line number Diff line Loading @@ -7146,21 +7146,11 @@ int dsi_display_pre_kickoff(struct drm_connector *connector, { int rc = 0; int i; bool enable; /* check and setup MISR */ if (display->misr_enable) _dsi_display_setup_misr(display); if (params->qsync_update) { enable = (params->qsync_mode > 0) ? true : false; rc = dsi_display_qsync(display, enable); if (rc) pr_err("%s failed to send qsync commands", __func__); SDE_EVT32(params->qsync_mode, rc); } rc = dsi_display_set_roi(display, params->rois); /* dynamic DSI clock setting */ Loading Loading @@ -7241,6 +7231,29 @@ int dsi_display_config_ctrl_for_cont_splash(struct dsi_display *display) return rc; } int dsi_display_pre_commit(void *display, struct msm_display_conn_params *params) { bool enable = false; int rc = 0; if (!display || !params) { pr_err("Invalid params\n"); return -EINVAL; } if (params->qsync_update) { enable = (params->qsync_mode > 0) ? true : false; rc = dsi_display_qsync(display, enable); if (rc) pr_err("%s failed to send qsync commands\n", __func__); SDE_EVT32(params->qsync_mode, rc); } return rc; } int dsi_display_enable(struct dsi_display *display) { int rc = 0; Loading drivers/gpu/drm/msm/dsi-staging/dsi_display.h +9 −0 Original line number Diff line number Diff line Loading @@ -670,6 +670,15 @@ int dsi_display_set_power(struct drm_connector *connector, int dsi_display_pre_kickoff(struct drm_connector *connector, struct dsi_display *display, struct msm_display_kickoff_params *params); /* * dsi_display_pre_commit - program pre commit features * @display: Pointer to private display structure * @params: Parameters for pre commit time programming * Returns: Zero on success */ int dsi_display_pre_commit(void *display, struct msm_display_conn_params *params); /** * dsi_display_get_dst_format() - get dst_format from DSI display * @connector: Pointer to drm connector structure Loading drivers/gpu/drm/msm/dsi-staging/dsi_drm.c +21 −1 Original line number Diff line number Diff line Loading @@ -891,6 +891,17 @@ int dsi_conn_pre_kickoff(struct drm_connector *connector, return dsi_display_pre_kickoff(connector, display, params); } int dsi_conn_prepare_commit(void *display, struct msm_display_conn_params *params) { if (!display || !params) { pr_err("Invalid params\n"); return -EINVAL; } return dsi_display_pre_commit(display, params); } void dsi_conn_enable_event(struct drm_connector *connector, uint32_t event_idx, bool enable, void *display) { Loading @@ -905,7 +916,8 @@ void dsi_conn_enable_event(struct drm_connector *connector, event_idx, &event_info, enable); } int dsi_conn_post_kickoff(struct drm_connector *connector) int dsi_conn_post_kickoff(struct drm_connector *connector, struct msm_display_conn_params *params) { struct drm_encoder *encoder; struct dsi_bridge *c_bridge; Loading @@ -913,6 +925,7 @@ int dsi_conn_post_kickoff(struct drm_connector *connector) struct dsi_display *display; struct dsi_display_ctrl *m_ctrl, *ctrl; int i, rc = 0; bool enable; if (!connector || !connector->state) { pr_err("invalid connector or connector state"); Loading Loading @@ -958,6 +971,13 @@ int dsi_conn_post_kickoff(struct drm_connector *connector) /* ensure dynamic clk switch flag is reset */ c_bridge->dsi_mode.dsi_mode_flags &= ~DSI_MODE_FLAG_DYN_CLK; if (params->qsync_update) { enable = (params->qsync_mode > 0) ? true : false; display_for_each_ctrl(i, display) { dsi_ctrl_setup_avr(display->ctrl[i].ctrl, enable); } } return 0; } Loading drivers/gpu/drm/msm/dsi-staging/dsi_drm.h +14 −1 Original line number Diff line number Diff line Loading @@ -127,9 +127,11 @@ int dsi_conn_pre_kickoff(struct drm_connector *connector, /** * dsi_display_post_kickoff - program post kickoff-time features * @connector: Pointer to drm connector structure * @params: Parameters for post kickoff programming * Returns: Zero on success */ int dsi_conn_post_kickoff(struct drm_connector *connector); int dsi_conn_post_kickoff(struct drm_connector *connector, struct msm_display_conn_params *params); /** * dsi_convert_to_drm_mode - Update drm mode with dsi mode information Loading @@ -141,4 +143,15 @@ void dsi_convert_to_drm_mode(const struct dsi_display_mode *dsi_mode, u64 dsi_drm_find_bit_clk_rate(void *display, const struct drm_display_mode *drm_mode); /** * dsi_conn_prepare_commit - program pre commit time features * @display: Pointer to private display structure * @params: Parameters for pre commit programming * Returns: Zero on success */ int dsi_conn_prepare_commit(void *display, struct msm_display_conn_params *params); #endif /* _DSI_DRM_H_ */ drivers/gpu/drm/msm/dsi-staging/dsi_panel.c +8 −7 Original line number Diff line number Diff line Loading @@ -3239,12 +3239,14 @@ struct dsi_panel *dsi_panel_get(struct device *parent, if (rc) pr_err("failed to parse dfps configuration, rc=%d\n", rc); if (!(panel->dfps_caps.dfps_support)) { /* qsync and dfps are mutually exclusive features */ rc = dsi_panel_parse_qsync_caps(panel, of_node); if (rc) pr_err("failed to parse qsync features, rc=%d\n", rc); } /* allow qsync support only if DFPS is with VFP approach */ if ((panel->dfps_caps.dfps_support) && !(panel->dfps_caps.type == DSI_DFPS_IMMEDIATE_VFP)) panel->qsync_min_fps = 0; rc = dsi_panel_parse_dyn_clk_caps(panel); if (rc) Loading Loading @@ -3273,7 +3275,6 @@ struct dsi_panel *dsi_panel_get(struct device *parent, goto error; } rc = dsi_panel_parse_misc_features(panel); if (rc) pr_err("failed to parse misc features, rc=%d\n", rc); Loading Loading
drivers/gpu/drm/msm/dsi-staging/dsi_display.c +23 −10 Original line number Diff line number Diff line Loading @@ -7146,21 +7146,11 @@ int dsi_display_pre_kickoff(struct drm_connector *connector, { int rc = 0; int i; bool enable; /* check and setup MISR */ if (display->misr_enable) _dsi_display_setup_misr(display); if (params->qsync_update) { enable = (params->qsync_mode > 0) ? true : false; rc = dsi_display_qsync(display, enable); if (rc) pr_err("%s failed to send qsync commands", __func__); SDE_EVT32(params->qsync_mode, rc); } rc = dsi_display_set_roi(display, params->rois); /* dynamic DSI clock setting */ Loading Loading @@ -7241,6 +7231,29 @@ int dsi_display_config_ctrl_for_cont_splash(struct dsi_display *display) return rc; } int dsi_display_pre_commit(void *display, struct msm_display_conn_params *params) { bool enable = false; int rc = 0; if (!display || !params) { pr_err("Invalid params\n"); return -EINVAL; } if (params->qsync_update) { enable = (params->qsync_mode > 0) ? true : false; rc = dsi_display_qsync(display, enable); if (rc) pr_err("%s failed to send qsync commands\n", __func__); SDE_EVT32(params->qsync_mode, rc); } return rc; } int dsi_display_enable(struct dsi_display *display) { int rc = 0; Loading
drivers/gpu/drm/msm/dsi-staging/dsi_display.h +9 −0 Original line number Diff line number Diff line Loading @@ -670,6 +670,15 @@ int dsi_display_set_power(struct drm_connector *connector, int dsi_display_pre_kickoff(struct drm_connector *connector, struct dsi_display *display, struct msm_display_kickoff_params *params); /* * dsi_display_pre_commit - program pre commit features * @display: Pointer to private display structure * @params: Parameters for pre commit time programming * Returns: Zero on success */ int dsi_display_pre_commit(void *display, struct msm_display_conn_params *params); /** * dsi_display_get_dst_format() - get dst_format from DSI display * @connector: Pointer to drm connector structure Loading
drivers/gpu/drm/msm/dsi-staging/dsi_drm.c +21 −1 Original line number Diff line number Diff line Loading @@ -891,6 +891,17 @@ int dsi_conn_pre_kickoff(struct drm_connector *connector, return dsi_display_pre_kickoff(connector, display, params); } int dsi_conn_prepare_commit(void *display, struct msm_display_conn_params *params) { if (!display || !params) { pr_err("Invalid params\n"); return -EINVAL; } return dsi_display_pre_commit(display, params); } void dsi_conn_enable_event(struct drm_connector *connector, uint32_t event_idx, bool enable, void *display) { Loading @@ -905,7 +916,8 @@ void dsi_conn_enable_event(struct drm_connector *connector, event_idx, &event_info, enable); } int dsi_conn_post_kickoff(struct drm_connector *connector) int dsi_conn_post_kickoff(struct drm_connector *connector, struct msm_display_conn_params *params) { struct drm_encoder *encoder; struct dsi_bridge *c_bridge; Loading @@ -913,6 +925,7 @@ int dsi_conn_post_kickoff(struct drm_connector *connector) struct dsi_display *display; struct dsi_display_ctrl *m_ctrl, *ctrl; int i, rc = 0; bool enable; if (!connector || !connector->state) { pr_err("invalid connector or connector state"); Loading Loading @@ -958,6 +971,13 @@ int dsi_conn_post_kickoff(struct drm_connector *connector) /* ensure dynamic clk switch flag is reset */ c_bridge->dsi_mode.dsi_mode_flags &= ~DSI_MODE_FLAG_DYN_CLK; if (params->qsync_update) { enable = (params->qsync_mode > 0) ? true : false; display_for_each_ctrl(i, display) { dsi_ctrl_setup_avr(display->ctrl[i].ctrl, enable); } } return 0; } Loading
drivers/gpu/drm/msm/dsi-staging/dsi_drm.h +14 −1 Original line number Diff line number Diff line Loading @@ -127,9 +127,11 @@ int dsi_conn_pre_kickoff(struct drm_connector *connector, /** * dsi_display_post_kickoff - program post kickoff-time features * @connector: Pointer to drm connector structure * @params: Parameters for post kickoff programming * Returns: Zero on success */ int dsi_conn_post_kickoff(struct drm_connector *connector); int dsi_conn_post_kickoff(struct drm_connector *connector, struct msm_display_conn_params *params); /** * dsi_convert_to_drm_mode - Update drm mode with dsi mode information Loading @@ -141,4 +143,15 @@ void dsi_convert_to_drm_mode(const struct dsi_display_mode *dsi_mode, u64 dsi_drm_find_bit_clk_rate(void *display, const struct drm_display_mode *drm_mode); /** * dsi_conn_prepare_commit - program pre commit time features * @display: Pointer to private display structure * @params: Parameters for pre commit programming * Returns: Zero on success */ int dsi_conn_prepare_commit(void *display, struct msm_display_conn_params *params); #endif /* _DSI_DRM_H_ */
drivers/gpu/drm/msm/dsi-staging/dsi_panel.c +8 −7 Original line number Diff line number Diff line Loading @@ -3239,12 +3239,14 @@ struct dsi_panel *dsi_panel_get(struct device *parent, if (rc) pr_err("failed to parse dfps configuration, rc=%d\n", rc); if (!(panel->dfps_caps.dfps_support)) { /* qsync and dfps are mutually exclusive features */ rc = dsi_panel_parse_qsync_caps(panel, of_node); if (rc) pr_err("failed to parse qsync features, rc=%d\n", rc); } /* allow qsync support only if DFPS is with VFP approach */ if ((panel->dfps_caps.dfps_support) && !(panel->dfps_caps.type == DSI_DFPS_IMMEDIATE_VFP)) panel->qsync_min_fps = 0; rc = dsi_panel_parse_dyn_clk_caps(panel); if (rc) Loading Loading @@ -3273,7 +3275,6 @@ struct dsi_panel *dsi_panel_get(struct device *parent, goto error; } rc = dsi_panel_parse_misc_features(panel); if (rc) pr_err("failed to parse misc features, rc=%d\n", rc); Loading