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

Commit 479ea5cc authored by Kalyan Thota's avatar Kalyan Thota Committed by Jayaprakash
Browse files

drm: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 input buffers.

Change-Id: Ib2cb5b7e1f10501914c003f6cf066b85048f79d4
Signed-off-by: default avatarKalyan Thota <kalyant@codeaurora.org>
parent 65d56514
Loading
Loading
Loading
Loading
+23 −10
Original line number Diff line number Diff line
@@ -7134,21 +7134,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 */
@@ -7229,6 +7219,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;
+9 −0
Original line number Diff line number Diff line
@@ -668,6 +668,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
+12 −1
Original line number Diff line number Diff line
@@ -881,6 +881,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)
{
@@ -896,7 +907,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;
+12 −1
Original line number Diff line number Diff line
@@ -131,7 +131,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
@@ -143,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_ */
+8 −0
Original line number Diff line number Diff line
@@ -531,6 +531,14 @@ struct msm_roi_list {
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
 * @qsync_update: Qsync settings were changed/updated
 */
struct msm_display_conn_params {
	uint32_t qsync_mode;
	bool qsync_update;
};
Loading