Loading msm/dsi/dsi_display.c +23 −10 Original line number Diff line number Diff line Loading @@ -7019,21 +7019,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) DSI_ERR("%s failed to send qsync commands\n", __func__); SDE_EVT32(params->qsync_mode, rc); } rc = dsi_display_set_roi(display, params->rois); /* dynamic DSI clock setting */ Loading Loading @@ -7114,6 +7104,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 msm/dsi/dsi_display.h +10 −0 Original line number Diff line number Diff line Loading @@ -679,6 +679,16 @@ 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 msm/dsi/dsi_drm.c +20 −1 Original line number Diff line number Diff line Loading @@ -911,6 +911,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 @@ -925,7 +936,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 @@ -933,6 +945,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) { DSI_ERR("invalid connector or connector state\n"); Loading Loading @@ -978,6 +991,12 @@ 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 msm/dsi/dsi_drm.h +13 −1 Original line number Diff line number Diff line Loading @@ -120,9 +120,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 @@ -134,4 +136,14 @@ 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_ */ msm/dsi/dsi_panel.c +8 −7 Original line number Diff line number Diff line Loading @@ -3257,13 +3257,14 @@ struct dsi_panel *dsi_panel_get(struct device *parent, if (rc) DSI_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) DSI_DEBUG("failed to parse qsync features, rc=%d\n", rc); } DSI_DEBUG("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
msm/dsi/dsi_display.c +23 −10 Original line number Diff line number Diff line Loading @@ -7019,21 +7019,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) DSI_ERR("%s failed to send qsync commands\n", __func__); SDE_EVT32(params->qsync_mode, rc); } rc = dsi_display_set_roi(display, params->rois); /* dynamic DSI clock setting */ Loading Loading @@ -7114,6 +7104,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
msm/dsi/dsi_display.h +10 −0 Original line number Diff line number Diff line Loading @@ -679,6 +679,16 @@ 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
msm/dsi/dsi_drm.c +20 −1 Original line number Diff line number Diff line Loading @@ -911,6 +911,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 @@ -925,7 +936,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 @@ -933,6 +945,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) { DSI_ERR("invalid connector or connector state\n"); Loading Loading @@ -978,6 +991,12 @@ 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
msm/dsi/dsi_drm.h +13 −1 Original line number Diff line number Diff line Loading @@ -120,9 +120,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 @@ -134,4 +136,14 @@ 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_ */
msm/dsi/dsi_panel.c +8 −7 Original line number Diff line number Diff line Loading @@ -3257,13 +3257,14 @@ struct dsi_panel *dsi_panel_get(struct device *parent, if (rc) DSI_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) DSI_DEBUG("failed to parse qsync features, rc=%d\n", rc); } DSI_DEBUG("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