Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit aad3dd45 authored by Jayaprakash's avatar Jayaprakash
Browse files

disp: msm: sde: update avr mode config during commit prepare



Add changes to support avr mode config update during
prepare commit which happens before gpu fence wait
for the input buffers.

Change-Id: Ib2cb5b7e1f10501914c003f6cf066b85048f79d4
Signed-off-by: default avatarKalyan Thota <kalyant@codeaurora.org>
Signed-off-by: default avatarJayaprakash <jmadiset@codeaurora.org>
parent 985ffddc
Loading
Loading
Loading
Loading
+23 −10
Original line number Diff line number Diff line
@@ -7011,21 +7011,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 */
@@ -7106,6 +7096,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;
+10 −0
Original line number Diff line number Diff line
@@ -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
+12 −1
Original line number Diff line number Diff line
@@ -901,6 +901,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)
{
@@ -916,7 +927,7 @@ void dsi_conn_enable_event(struct drm_connector *connector,
}

int dsi_conn_post_kickoff(struct drm_connector *connector,
	struct msm_display_kickoff_params *params)
	struct msm_display_conn_params *params)
{
	struct drm_encoder *encoder;
	struct dsi_bridge *c_bridge;
+11 −1
Original line number Diff line number Diff line
@@ -124,7 +124,7 @@ int dsi_conn_pre_kickoff(struct drm_connector *connector,
 * Returns: Zero on success
 */
int dsi_conn_post_kickoff(struct drm_connector *connector,
		struct msm_display_kickoff_params *params);
		struct msm_display_conn_params *params);

/**
 * dsi_convert_to_drm_mode - Update drm mode with dsi mode information
@@ -136,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_ */
+8 −2
Original line number Diff line number Diff line
@@ -553,12 +553,18 @@ struct msm_roi_list {
/**
 * struct - msm_display_kickoff_params - info for display features at kickoff
 * @rois: Regions of interest structure for mapping CRTC to Connector output
 * @qsync_mode: Qsync mode, where 0: disabled 1: continuous mode
 * @qsync_update: Qsync settings were changed/updated
 */
struct msm_display_kickoff_params {
	struct msm_roi_list *rois;
	struct drm_msm_ext_hdr_metadata *hdr_meta;
};

/**
 * struct - msm_display_conn_params - info of dpu display features
 * @qsync_mode: Qsync mode, where 0: disabled 1: continuous mode 2: oneshot
 * @qsync_update: Qsync settings were changed/updated
 */
struct msm_display_conn_params {
	uint32_t qsync_mode;
	bool qsync_update;
};
Loading