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:
parent
3a8f3bd017
commit
4aa78d001d
|
@ -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;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue