summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorShivaraj Shetty <shivaraj@codeaurora.org>2014-05-06 16:22:16 +0530
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 20:29:47 -0700
commit09e198ab6204b5ef760e1db37f3d6413196847d5 (patch)
tree6ae4d1fcf6a5f0bb80547f20dbdb0cba952ee7bd /drivers
parent57cc7b9c67d84b4aba0e73d67f0c3a146f13a778 (diff)
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: Shivaraj Shetty <shivaraj@codeaurora.org> [cip@codeaurora.org: Resolved new Makefile location] Signed-off-by: Clarence Ip <cip@codeaurora.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/video/fbdev/msm/Makefile4
-rw-r--r--drivers/video/fbdev/msm/mdss_dsi_panel.c2
-rw-r--r--drivers/video/fbdev/msm/mdss_dsi_status.c11
-rw-r--r--drivers/video/fbdev/msm/mdss_panel.h1
4 files changed, 14 insertions, 4 deletions
diff --git a/drivers/video/fbdev/msm/Makefile b/drivers/video/fbdev/msm/Makefile
index dc14df665fab..c08e43209af9 100644
--- a/drivers/video/fbdev/msm/Makefile
+++ b/drivers/video/fbdev/msm/Makefile
@@ -22,7 +22,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
@@ -45,5 +45,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
diff --git a/drivers/video/fbdev/msm/mdss_dsi_panel.c b/drivers/video/fbdev/msm/mdss_dsi_panel.c
index 5d0c676492a2..f4b3bdac919c 100644
--- a/drivers/video/fbdev/msm/mdss_dsi_panel.c
+++ b/drivers/video/fbdev/msm/mdss_dsi_panel.c
@@ -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;
}
diff --git a/drivers/video/fbdev/msm/mdss_dsi_status.c b/drivers/video/fbdev/msm/mdss_dsi_status.c
index c68155a69dc1..02540bbfe84c 100644
--- a/drivers/video/fbdev/msm/mdss_dsi_status.c
+++ b/drivers/video/fbdev/msm/mdss_dsi_status.c
@@ -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;
diff --git a/drivers/video/fbdev/msm/mdss_panel.h b/drivers/video/fbdev/msm/mdss_panel.h
index ac26c998cc3b..315d873ef598 100644
--- a/drivers/video/fbdev/msm/mdss_panel.h
+++ b/drivers/video/fbdev/msm/mdss_panel.h
@@ -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;