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>
Signed-off-by: Nirmal Abraham <nabrah@codeaurora.org>
This commit is contained in:
Shivaraj Shetty 2014-05-06 16:22:16 +05:30 committed by Nirmal Abraham
parent 3a8f3bd017
commit 4aa78d001d
5 changed files with 16 additions and 2 deletions

View File

@ -302,6 +302,7 @@ Optional properties:
- qcom,cmd-to-video-mode-switch-commands: List of commands that need to be sent
to panel in order to switch from command mode to video mode dynamically.
Refer to "qcom,mdss-dsi-on-command" section for adding commands.
- 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:
qcom,video-to-cmd-mode-switch-commands = [15 01 00 00 00 00 02 C2 0B
15 01 00 00 00 00 02 C2 08];
qcom,cmd-to-video-mode-switch-commands = [15 01 00 00 00 00 02 C2 03];
qcom,esd-check-enabled;
};
};

View File

@ -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

View File

@ -822,6 +822,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");
pinfo->mipi.dynamic_switch_enabled = of_property_read_bool(np,
"qcom,dynamic-mode-switch-enabled");

View File

@ -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;

View File

@ -328,6 +328,7 @@ struct mdss_panel_info {
u32 mode_gpio_state;
bool dynamic_fps;
bool ulps_feature_enabled;
bool esd_check_enabled;
char dfps_update;
int new_fps;
int panel_max_fps;