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

Commit 33a844ef authored by Shivaraj Shetty's avatar Shivaraj Shetty
Browse files

msm: mdss: Add support to enable esd check through dtsi entry



Add support to enable or disable esd check through panel dtsi
entry. This will help in enabling the feature only for those
panels which support BTA.

Change-Id: I4ef85bb2e78b133dd9577ac3d6788e46b34fe761
Signed-off-by: default avatarShivaraj Shetty <shivaraj@codeaurora.org>
parent 77a1f98a
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -306,6 +306,7 @@ Optional properties:
- qcom,panel-roi-alignment:		Specifies the panel ROI alignment restrictions on its
					left, top, width, height alignments and minimum width and
					height values
- qcom,esd-check-enabled:		Boolean used to enable ESD recovery feature.

Note, if a given optional qcom,* binding is not present, then the driver will configure
the default values specified.
@@ -412,5 +413,6 @@ Example:
		mdss-dsi-tx-eot-append;
		qcom,ulps-enabled;
		qcom,panel-roi-alignment = <4 4 2 2 20 20>;
		qcom,esd-check-enabled;
	};
};
+1 −3
Original line number Diff line number Diff line
@@ -20,7 +20,7 @@ endif
dsi-v2-objs = dsi_v2.o dsi_host_v2.o dsi_io_v2.o
obj-$(CONFIG_FB_MSM_MDSS_MDP3) += dsi-v2.o

mdss-dsi-objs := mdss_dsi.o mdss_dsi_host.o mdss_dsi_cmd.o
mdss-dsi-objs := mdss_dsi.o mdss_dsi_host.o mdss_dsi_cmd.o mdss_dsi_status.o
mdss-dsi-objs += mdss_dsi_panel.o
mdss-dsi-objs += msm_mdss_io_8974.o
obj-$(CONFIG_FB_MSM_MDSS) += mdss-dsi.o
@@ -43,5 +43,3 @@ obj-$(CONFIG_FB_MSM_QPIC_ILI_QVGA_PANEL) += qpic_panel_ili_qvga.o

obj-$(CONFIG_FB_MSM_MDSS) += mdss_fb.o
obj-$(CONFIG_COMPAT) += mdss_compat_utils.o

obj-$(CONFIG_FB_MSM_MDSS_DSI_CTRL_STATUS) += mdss_dsi_status.o
+2 −0
Original line number Diff line number Diff line
@@ -806,6 +806,8 @@ static int mdss_dsi_parse_panel_features(struct device_node *np,
		"qcom,ulps-enabled");
	pr_info("%s: ulps feature %s", __func__,
		(pinfo->ulps_feature_enabled ? "enabled" : "disabled"));
	pinfo->esd_check_enabled = of_property_read_bool(np,
		"qcom,esd-check-enabled");

	return 0;
}
+10 −1
Original line number Diff line number Diff line
@@ -32,7 +32,7 @@

#define STATUS_CHECK_INTERVAL_MS 5000
#define STATUS_CHECK_INTERVAL_MIN_MS 200
#define DSI_STATUS_CHECK_DISABLE 1
#define DSI_STATUS_CHECK_DISABLE 0

static uint32_t interval = STATUS_CHECK_INTERVAL_MS;
static uint32_t dsi_status_disable = DSI_STATUS_CHECK_DISABLE;
@@ -81,6 +81,7 @@ static int fb_event_callback(struct notifier_block *self,
	struct dsi_status_data *pdata = container_of(self,
				struct dsi_status_data, fb_notifier);
	struct mdss_dsi_ctrl_pdata *ctrl_pdata = NULL;
	struct mdss_panel_info *pinfo;

	pdata->mfd = evdata->info->par;
	ctrl_pdata = container_of(dev_get_platdata(&pdata->mfd->pdev->dev),
@@ -89,6 +90,14 @@ static int fb_event_callback(struct notifier_block *self,
		pr_err("%s: DSI ctrl not available\n", __func__);
		return NOTIFY_BAD;
	}

	pinfo = &ctrl_pdata->panel_data.panel_info;

	if (!(pinfo->esd_check_enabled)) {
		pr_debug("ESD check is not enaled in panel dtsi\n");
		return NOTIFY_DONE;
	}

	if (dsi_status_disable) {
		pr_debug("%s: DSI status disabled\n", __func__);
		return NOTIFY_DONE;
+1 −0
Original line number Diff line number Diff line
@@ -326,6 +326,7 @@ struct mdss_panel_info {
	int pwm_period;
	bool dynamic_fps;
	bool ulps_feature_enabled;
	bool esd_check_enabled;
	char dfps_update;
	int new_fps;
	u32 mode_gpio_state;