[Freedreno] [DPU PATCH v3 1/2] drm/msm/dsi-staging: remove support for partial update

Jeykumar Sankaran jsanka at codeaurora.org
Fri Mar 2 00:52:34 UTC 2018


Remove support partial update and related changes from dsi-staging
since the DPU dependencies are getting cleaned up.

changes since v1:
	- remove unused code changes instead of hiding under compilation flag
	- remove all references to partial ROI.

changes since v2:
	- cleanup partial update ROI in panel files

Signed-off-by: Jeykumar Sankaran <jsanka at codeaurora.org>
---
 drivers/gpu/drm/msm/dsi-staging/dsi_ctrl.c    |  20 ---
 drivers/gpu/drm/msm/dsi-staging/dsi_ctrl.h    |  12 --
 drivers/gpu/drm/msm/dsi-staging/dsi_defs.h    |   2 -
 drivers/gpu/drm/msm/dsi-staging/dsi_display.c | 104 +-------------
 drivers/gpu/drm/msm/dsi-staging/dsi_display.h |   5 +-
 drivers/gpu/drm/msm/dsi-staging/dsi_drm.c     |  26 +---
 drivers/gpu/drm/msm/dsi-staging/dsi_drm.h     |   4 +-
 drivers/gpu/drm/msm/dsi-staging/dsi_panel.c   | 200 --------------------------
 drivers/gpu/drm/msm/dsi-staging/dsi_panel.h   |   5 -
 9 files changed, 7 insertions(+), 371 deletions(-)

diff --git a/drivers/gpu/drm/msm/dsi-staging/dsi_ctrl.c b/drivers/gpu/drm/msm/dsi-staging/dsi_ctrl.c
index 5aadbe5..1798f44 100644
--- a/drivers/gpu/drm/msm/dsi-staging/dsi_ctrl.c
+++ b/drivers/gpu/drm/msm/dsi-staging/dsi_ctrl.c
@@ -1809,26 +1809,6 @@ int dsi_ctrl_setup(struct dsi_ctrl *dsi_ctrl)
 	return rc;
 }
 
-int dsi_ctrl_set_roi(struct dsi_ctrl *dsi_ctrl, struct dsi_rect *roi,
-		bool *changed)
-{
-	int rc = 0;
-
-	if (!dsi_ctrl || !roi || !changed) {
-		pr_err("Invalid params\n");
-		return -EINVAL;
-	}
-
-	mutex_lock(&dsi_ctrl->ctrl_lock);
-	if (!dsi_rect_is_equal(&dsi_ctrl->roi, roi)) {
-		*changed = true;
-		memcpy(&dsi_ctrl->roi, roi, sizeof(dsi_ctrl->roi));
-	} else
-		*changed = false;
-	mutex_unlock(&dsi_ctrl->ctrl_lock);
-	return rc;
-}
-
 /**
  * dsi_ctrl_phy_reset_config() - Mask/unmask propagation of ahb reset signal
  *	to DSI PHY hardware.
diff --git a/drivers/gpu/drm/msm/dsi-staging/dsi_ctrl.h b/drivers/gpu/drm/msm/dsi-staging/dsi_ctrl.h
index 30b4dab..1826372 100644
--- a/drivers/gpu/drm/msm/dsi-staging/dsi_ctrl.h
+++ b/drivers/gpu/drm/msm/dsi-staging/dsi_ctrl.h
@@ -436,18 +436,6 @@ int dsi_ctrl_async_timing_update(struct dsi_ctrl *dsi_ctrl,
 int dsi_ctrl_setup(struct dsi_ctrl *dsi_ctrl);
 
 /**
- * dsi_ctrl_set_roi() - Set DSI controller's region of interest
- * @dsi_ctrl:        DSI controller handle.
- * @roi:             Region of interest rectangle, must be less than mode bounds
- * @changed:         Output parameter, set to true of the controller's ROI was
- *                   dirtied by setting the new ROI, and DCS cmd update needed
- *
- * Return: error code.
- */
-int dsi_ctrl_set_roi(struct dsi_ctrl *dsi_ctrl, struct dsi_rect *roi,
-		bool *changed);
-
-/**
  * dsi_ctrl_set_tpg_state() - enable/disable test pattern on the controller
  * @dsi_ctrl:          DSI controller handle.
  * @on:                enable/disable test pattern.
diff --git a/drivers/gpu/drm/msm/dsi-staging/dsi_defs.h b/drivers/gpu/drm/msm/dsi-staging/dsi_defs.h
index 9385cce..02c8d76 100644
--- a/drivers/gpu/drm/msm/dsi-staging/dsi_defs.h
+++ b/drivers/gpu/drm/msm/dsi-staging/dsi_defs.h
@@ -239,7 +239,6 @@ enum dsi_dfps_type {
  * @DSI_CMD_SET_LP2:                       Low power mode 2
  * @DSI_CMD_SET_NOLP:                      Low power mode disable
  * @DSI_CMD_SET_PPS:                       DSC PPS command
- * @DSI_CMD_SET_ROI:			   Panel ROI update
  * @DSI_CMD_SET_TIMING_SWITCH:             Timing switch
  * @DSI_CMD_SET_POST_TIMING_SWITCH:        Post timing switch
  * @DSI_CMD_SET_MAX
@@ -263,7 +262,6 @@ enum dsi_cmd_set_type {
 	DSI_CMD_SET_LP2,
 	DSI_CMD_SET_NOLP,
 	DSI_CMD_SET_PPS,
-	DSI_CMD_SET_ROI,
 	DSI_CMD_SET_TIMING_SWITCH,
 	DSI_CMD_SET_POST_TIMING_SWITCH,
 	DSI_CMD_SET_MAX
diff --git a/drivers/gpu/drm/msm/dsi-staging/dsi_display.c b/drivers/gpu/drm/msm/dsi-staging/dsi_display.c
index 72055dc..31b7d7e 100644
--- a/drivers/gpu/drm/msm/dsi-staging/dsi_display.c
+++ b/drivers/gpu/drm/msm/dsi-staging/dsi_display.c
@@ -3414,9 +3414,6 @@ int dsi_display_get_info(struct msm_display_info *info, void *disp)
 		break;
 	}
 
-	memcpy(&info->roi_caps, &display->panel->roi_caps,
-			sizeof(info->roi_caps));
-
 error:
 	mutex_unlock(&display->display_lock);
 	return rc;
@@ -3941,104 +3938,7 @@ int dsi_display_prepare(struct dsi_display *display)
 	return rc;
 }
 
-static int dsi_display_calc_ctrl_roi(const struct dsi_display *display,
-		const struct dsi_display_ctrl *ctrl,
-		const struct msm_roi_list *req_rois,
-		struct dsi_rect *out_roi)
-{
-	const struct dsi_rect *bounds = &ctrl->ctrl->mode_bounds;
-	struct dsi_rect req_roi = { 0 };
-	int rc = 0;
-
-	if (req_rois->num_rects > display->panel->roi_caps.num_roi) {
-		pr_err("request for %d rois greater than max %d\n",
-				req_rois->num_rects,
-				display->panel->roi_caps.num_roi);
-		rc = -EINVAL;
-		goto exit;
-	}
-
-	/**
-	 * if no rois, user wants to reset back to full resolution
-	 * note: h_active is already divided by ctrl_count
-	 */
-	if (!req_rois->num_rects) {
-		*out_roi = *bounds;
-		goto exit;
-	}
-
-	/* intersect with the bounds */
-	req_roi.x = req_rois->roi[0].x1;
-	req_roi.y = req_rois->roi[0].y1;
-	req_roi.w = req_rois->roi[0].x2 - req_rois->roi[0].x1;
-	req_roi.h = req_rois->roi[0].y2 - req_rois->roi[0].y1;
-	dsi_rect_intersect(&req_roi, bounds, out_roi);
-
-exit:
-	/* adjust the ctrl origin to be top left within the ctrl */
-	out_roi->x = out_roi->x - bounds->x;
-
-	pr_debug("ctrl%d:%d: req (%d,%d,%d,%d) bnd (%d,%d,%d,%d) out (%d,%d,%d,%d)\n",
-			ctrl->dsi_ctrl_idx, ctrl->ctrl->cell_index,
-			req_roi.x, req_roi.y, req_roi.w, req_roi.h,
-			bounds->x, bounds->y, bounds->w, bounds->h,
-			out_roi->x, out_roi->y, out_roi->w, out_roi->h);
-
-	return rc;
-}
-
-static int dsi_display_set_roi(struct dsi_display *display,
-		struct msm_roi_list *rois)
-{
-	int rc = 0;
-	int i;
-
-	if (!display || !rois || !display->panel)
-		return -EINVAL;
-
-	if (!display->panel->roi_caps.enabled)
-		return 0;
-
-	for (i = 0; i < display->ctrl_count; i++) {
-		struct dsi_display_ctrl *ctrl = &display->ctrl[i];
-		struct dsi_rect ctrl_roi;
-		bool changed = false;
-
-		rc = dsi_display_calc_ctrl_roi(display, ctrl, rois, &ctrl_roi);
-		if (rc) {
-			pr_err("dsi_display_calc_ctrl_roi failed rc %d\n", rc);
-			return rc;
-		}
-
-		rc = dsi_ctrl_set_roi(ctrl->ctrl, &ctrl_roi, &changed);
-		if (rc) {
-			pr_err("dsi_ctrl_set_roi failed rc %d\n", rc);
-			return rc;
-		}
-
-		if (!changed)
-			continue;
-
-		/* send the new roi to the panel via dcs commands */
-		rc = dsi_panel_send_roi_dcs(display->panel, i, &ctrl_roi);
-		if (rc) {
-			pr_err("dsi_panel_set_roi failed rc %d\n", rc);
-			return rc;
-		}
-
-		/* re-program the ctrl with the timing based on the new roi */
-		rc = dsi_ctrl_setup(ctrl->ctrl);
-		if (rc) {
-			pr_err("dsi_ctrl_setup failed rc %d\n", rc);
-			return rc;
-		}
-	}
-
-	return rc;
-}
-
-int dsi_display_pre_kickoff(struct dsi_display *display,
-		struct msm_display_kickoff_params *params)
+int dsi_display_pre_kickoff(struct dsi_display *display)
 {
 	int rc = 0;
 
@@ -4046,8 +3946,6 @@ int dsi_display_pre_kickoff(struct dsi_display *display,
 	if (display->misr_enable)
 		_dsi_display_setup_misr(display);
 
-	rc = dsi_display_set_roi(display, params->rois);
-
 	return rc;
 }
 
diff --git a/drivers/gpu/drm/msm/dsi-staging/dsi_display.h b/drivers/gpu/drm/msm/dsi-staging/dsi_display.h
index b23a84d..a0f9ccf 100644
--- a/drivers/gpu/drm/msm/dsi-staging/dsi_display.h
+++ b/drivers/gpu/drm/msm/dsi-staging/dsi_display.h
@@ -524,11 +524,10 @@ int dsi_display_set_power(struct drm_connector *connector,
 /*
  * dsi_display_pre_kickoff - program kickoff-time features
  * @display: Pointer to private display structure
- * @params: Parameters for kickoff-time programming
  * Returns: Zero on success
  */
-int dsi_display_pre_kickoff(struct dsi_display *display,
-		struct msm_display_kickoff_params *params);
+int dsi_display_pre_kickoff(struct dsi_display *display);
+
 /**
  * dsi_display_get_dst_format() - get dst_format from DSI display
  * @display:         Handle to display
diff --git a/drivers/gpu/drm/msm/dsi-staging/dsi_drm.c b/drivers/gpu/drm/msm/dsi-staging/dsi_drm.c
index 6847c53..017f881 100644
--- a/drivers/gpu/drm/msm/dsi-staging/dsi_drm.c
+++ b/drivers/gpu/drm/msm/dsi-staging/dsi_drm.c
@@ -443,25 +443,6 @@ int dsi_conn_post_init(struct drm_connector *connector,
 		break;
 	}
 
-	if (panel->roi_caps.enabled) {
-		dpu_kms_info_add_keyint(info, "partial_update_num_roi",
-				panel->roi_caps.num_roi);
-		dpu_kms_info_add_keyint(info, "partial_update_xstart",
-				panel->roi_caps.align.xstart_pix_align);
-		dpu_kms_info_add_keyint(info, "partial_update_walign",
-				panel->roi_caps.align.width_pix_align);
-		dpu_kms_info_add_keyint(info, "partial_update_wmin",
-				panel->roi_caps.align.min_width);
-		dpu_kms_info_add_keyint(info, "partial_update_ystart",
-				panel->roi_caps.align.ystart_pix_align);
-		dpu_kms_info_add_keyint(info, "partial_update_halign",
-				panel->roi_caps.align.height_pix_align);
-		dpu_kms_info_add_keyint(info, "partial_update_hmin",
-				panel->roi_caps.align.min_height);
-		dpu_kms_info_add_keyint(info, "partial_update_roimerge",
-				panel->roi_caps.merge_rois);
-	}
-
 end:
 	return 0;
 }
@@ -598,15 +579,14 @@ enum drm_mode_status dsi_conn_mode_valid(struct drm_connector *connector,
 }
 
 int dsi_conn_pre_kickoff(struct drm_connector *connector,
-		void *display,
-		struct msm_display_kickoff_params *params)
+		void *display)
 {
-	if (!connector || !display || !params) {
+	if (!connector || !display) {
 		pr_err("Invalid params\n");
 		return -EINVAL;
 	}
 
-	return dsi_display_pre_kickoff(display, params);
+	return dsi_display_pre_kickoff(display);
 }
 
 void dsi_conn_enable_event(struct drm_connector *connector,
diff --git a/drivers/gpu/drm/msm/dsi-staging/dsi_drm.h b/drivers/gpu/drm/msm/dsi-staging/dsi_drm.h
index f427340..38de33c 100644
--- a/drivers/gpu/drm/msm/dsi-staging/dsi_drm.h
+++ b/drivers/gpu/drm/msm/dsi-staging/dsi_drm.h
@@ -112,12 +112,10 @@ struct dsi_bridge *dsi_drm_bridge_init(struct dsi_display *display,
  * dsi_display_pre_kickoff - program kickoff-time features
  * @connector: Pointer to drm connector structure
  * @display: Pointer to private display structure
- * @params: Parameters for kickoff-time programming
  * Returns: Zero on success
  */
 int dsi_conn_pre_kickoff(struct drm_connector *connector,
-		void *display,
-		struct msm_display_kickoff_params *params);
+		void *display);
 
 /**
  * dsi_display_post_kickoff - program post kickoff-time features
diff --git a/drivers/gpu/drm/msm/dsi-staging/dsi_panel.c b/drivers/gpu/drm/msm/dsi-staging/dsi_panel.c
index 2d94e5f..2e777f8 100644
--- a/drivers/gpu/drm/msm/dsi-staging/dsi_panel.c
+++ b/drivers/gpu/drm/msm/dsi-staging/dsi_panel.c
@@ -1354,7 +1354,6 @@ static int dsi_panel_parse_phy_props(struct dsi_panel_phy_props *props,
 	"qcom,mdss-dsi-lp2-command",
 	"qcom,mdss-dsi-nolp-command",
 	"PPS not parsed from DTSI, generated dynamically",
-	"ROI not parsed from DTSI, generated dynamically",
 	"qcom,mdss-dsi-timing-switch-command",
 	"qcom,mdss-dsi-post-mode-switch-on-command",
 };
@@ -1378,7 +1377,6 @@ static int dsi_panel_parse_phy_props(struct dsi_panel_phy_props *props,
 	"qcom,mdss-dsi-lp2-command-state",
 	"qcom,mdss-dsi-nolp-command-state",
 	"PPS not parsed from DTSI, generated dynamically",
-	"ROI not parsed from DTSI, generated dynamically",
 	"qcom,mdss-dsi-timing-switch-command-state",
 	"qcom,mdss-dsi-post-mode-switch-on-command-state",
 };
@@ -2331,87 +2329,6 @@ static int dsi_panel_parse_topology(
 	return rc;
 }
 
-static int dsi_panel_parse_roi_alignment(struct device_node *of_node,
-					 struct msm_roi_alignment *align)
-{
-	int len = 0, rc = 0;
-	u32 value[6];
-	struct property *data;
-
-	if (!align || !of_node)
-		return -EINVAL;
-
-	memset(align, 0, sizeof(*align));
-
-	data = of_find_property(of_node, "qcom,panel-roi-alignment", &len);
-	len /= sizeof(u32);
-	if (!data) {
-		pr_err("panel roi alignment not found\n");
-		rc = -EINVAL;
-	} else if (len != 6) {
-		pr_err("incorrect roi alignment len %d\n", len);
-		rc = -EINVAL;
-	} else {
-		rc = of_property_read_u32_array(of_node,
-				"qcom,panel-roi-alignment", value, len);
-		if (rc)
-			pr_debug("error reading panel roi alignment values\n");
-		else {
-			align->xstart_pix_align = value[0];
-			align->ystart_pix_align = value[1];
-			align->width_pix_align = value[2];
-			align->height_pix_align = value[3];
-			align->min_width = value[4];
-			align->min_height = value[5];
-		}
-
-		pr_info("roi alignment: [%d, %d, %d, %d, %d, %d]\n",
-			align->xstart_pix_align,
-			align->width_pix_align,
-			align->ystart_pix_align,
-			align->height_pix_align,
-			align->min_width,
-			align->min_height);
-	}
-
-	return rc;
-}
-
-static int dsi_panel_parse_partial_update_caps(struct dsi_panel *panel,
-					       struct device_node *of_node)
-{
-	struct msm_roi_caps *roi_caps = &panel->roi_caps;
-	const char *data;
-	int rc = 0;
-
-	memset(roi_caps, 0, sizeof(*roi_caps));
-
-	data = of_get_property(of_node, "qcom,partial-update-enabled", NULL);
-	if (data) {
-		if (!strcmp(data, "dual_roi"))
-			roi_caps->num_roi = 2;
-		else
-			roi_caps->num_roi = 1;
-	}
-
-	roi_caps->merge_rois = of_property_read_bool(of_node,
-			"qcom,partial-update-roi-merge");
-
-	roi_caps->enabled = roi_caps->num_roi > 0;
-
-	pr_info("partial update num_rois=%d enabled=%d\n", roi_caps->num_roi,
-			roi_caps->enabled);
-
-	if (roi_caps->enabled)
-		rc = dsi_panel_parse_roi_alignment(of_node,
-				&panel->roi_caps.align);
-
-	if (rc)
-		memset(roi_caps, 0, sizeof(*roi_caps));
-
-	return rc;
-}
-
 static int dsi_panel_parse_dms_info(struct dsi_panel *panel,
 	struct device_node *of_node)
 {
@@ -2703,10 +2620,6 @@ struct dsi_panel *dsi_panel_get(struct device *parent,
 	if (rc)
 		pr_err("failed to parse hdr config, rc=%d\n", rc);
 
-	rc = dsi_panel_parse_partial_update_caps(panel, of_node);
-	if (rc)
-		pr_debug("failed to partial update caps, rc=%d\n", rc);
-
 	rc = dsi_panel_get_mode_count(panel, of_node);
 	if (rc) {
 		pr_err("failed to get mode count, rc=%d\n", rc);
@@ -3222,119 +3135,6 @@ int dsi_panel_prepare(struct dsi_panel *panel)
 	return rc;
 }
 
-static int dsi_panel_roi_prepare_dcs_cmds(struct dsi_panel_cmd_set *set,
-		struct dsi_rect *roi, int ctrl_idx, int unicast)
-{
-	static const int ROI_CMD_LEN = 5;
-
-	int rc = 0;
-
-	/* DTYPE_DCS_LWRITE */
-	static char *caset, *paset;
-
-	set->cmds = NULL;
-
-	caset = kzalloc(ROI_CMD_LEN, GFP_KERNEL);
-	if (!caset) {
-		rc = -ENOMEM;
-		goto exit;
-	}
-	caset[0] = 0x2a;
-	caset[1] = (roi->x & 0xFF00) >> 8;
-	caset[2] = roi->x & 0xFF;
-	caset[3] = ((roi->x - 1 + roi->w) & 0xFF00) >> 8;
-	caset[4] = (roi->x - 1 + roi->w) & 0xFF;
-
-	paset = kzalloc(ROI_CMD_LEN, GFP_KERNEL);
-	if (!paset) {
-		rc = -ENOMEM;
-		goto error_free_mem;
-	}
-	paset[0] = 0x2b;
-	paset[1] = (roi->y & 0xFF00) >> 8;
-	paset[2] = roi->y & 0xFF;
-	paset[3] = ((roi->y - 1 + roi->h) & 0xFF00) >> 8;
-	paset[4] = (roi->y - 1 + roi->h) & 0xFF;
-
-	set->type = DSI_CMD_SET_ROI;
-	set->state = DSI_CMD_SET_STATE_LP;
-	set->count = 2; /* send caset + paset together */
-	set->cmds = kcalloc(set->count, sizeof(*set->cmds), GFP_KERNEL);
-	if (!set->cmds) {
-		rc = -ENOMEM;
-		goto error_free_mem;
-	}
-	set->cmds[0].msg.channel = 0;
-	set->cmds[0].msg.type = MIPI_DSI_DCS_LONG_WRITE;
-	set->cmds[0].msg.flags = unicast ? MIPI_DSI_MSG_UNICAST : 0;
-	set->cmds[0].msg.ctrl = unicast ? ctrl_idx : 0;
-	set->cmds[0].msg.tx_len = ROI_CMD_LEN;
-	set->cmds[0].msg.tx_buf = caset;
-	set->cmds[0].msg.rx_len = 0;
-	set->cmds[0].msg.rx_buf = 0;
-	set->cmds[0].last_command = 0;
-	set->cmds[0].post_wait_ms = 1;
-
-	set->cmds[1].msg.channel = 0;
-	set->cmds[1].msg.type = MIPI_DSI_DCS_LONG_WRITE;
-	set->cmds[1].msg.flags = unicast ? MIPI_DSI_MSG_UNICAST : 0;
-	set->cmds[1].msg.ctrl = unicast ? ctrl_idx : 0;
-	set->cmds[1].msg.tx_len = ROI_CMD_LEN;
-	set->cmds[1].msg.tx_buf = paset;
-	set->cmds[1].msg.rx_len = 0;
-	set->cmds[1].msg.rx_buf = 0;
-	set->cmds[1].last_command = 1;
-	set->cmds[1].post_wait_ms = 1;
-
-	goto exit;
-
-error_free_mem:
-	kfree(caset);
-	kfree(paset);
-	kfree(set->cmds);
-
-exit:
-	return rc;
-}
-
-int dsi_panel_send_roi_dcs(struct dsi_panel *panel, int ctrl_idx,
-		struct dsi_rect *roi)
-{
-	int rc = 0;
-	struct dsi_panel_cmd_set *set;
-	struct dsi_display_mode_priv_info *priv_info;
-
-	if (!panel || !panel->cur_mode) {
-		pr_err("Invalid params\n");
-		return -EINVAL;
-	}
-
-	priv_info = panel->cur_mode->priv_info;
-	set = &priv_info->cmd_sets[DSI_CMD_SET_ROI];
-
-	rc = dsi_panel_roi_prepare_dcs_cmds(set, roi, ctrl_idx, true);
-	if (rc) {
-		pr_err("[%s] failed to prepare DSI_CMD_SET_ROI cmds, rc=%d\n",
-				panel->name, rc);
-		return rc;
-	}
-	pr_debug("[%s] send roi x %d y %d w %d h %d\n", panel->name,
-			roi->x, roi->y, roi->w, roi->h);
-
-	mutex_lock(&panel->panel_lock);
-
-	rc = dsi_panel_tx_cmd_set(panel, DSI_CMD_SET_ROI);
-	if (rc)
-		pr_err("[%s] failed to send DSI_CMD_SET_ROI cmds, rc=%d\n",
-				panel->name, rc);
-
-	mutex_unlock(&panel->panel_lock);
-
-	dsi_panel_destroy_cmd_packets(set);
-
-	return rc;
-}
-
 int dsi_panel_switch(struct dsi_panel *panel)
 {
 	int rc = 0;
diff --git a/drivers/gpu/drm/msm/dsi-staging/dsi_panel.h b/drivers/gpu/drm/msm/dsi-staging/dsi_panel.h
index c26a5db..2ef3220 100644
--- a/drivers/gpu/drm/msm/dsi-staging/dsi_panel.h
+++ b/drivers/gpu/drm/msm/dsi-staging/dsi_panel.h
@@ -155,8 +155,6 @@ struct dsi_panel {
 	enum dsi_op_mode panel_mode;
 
 	struct dsi_dfps_capabilities dfps_caps;
-	struct msm_roi_caps roi_caps;
-
 	struct dsi_panel_phy_props phy_props;
 
 	struct dsi_display_mode *cur_mode;
@@ -250,9 +248,6 @@ int dsi_panel_get_dfps_caps(struct dsi_panel *panel,
 
 int dsi_panel_update_pps(struct dsi_panel *panel);
 
-int dsi_panel_send_roi_dcs(struct dsi_panel *panel, int ctrl_idx,
-		struct dsi_rect *roi);
-
 int dsi_panel_switch(struct dsi_panel *panel);
 
 int dsi_panel_post_switch(struct dsi_panel *panel);
-- 
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project



More information about the Freedreno mailing list