summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVineet Bajaj <vbajaj@codeaurora.org>2015-05-27 19:26:53 +0530
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 20:45:59 -0700
commitd2736ae8fa19b6ec673d91a578a1741dc9ee109b (patch)
tree8e0b148230b17b231d46383be8872cbae2b720ac
parent26ef4431587d8a16a7e416b0816f8e93cacc09a3 (diff)
msm: mdss: unregister wled in case of probe failure
If the DSI probe fails and wled has been registered, then when the next time probe comes there are failures seen. Fix this by unregistering the wled in case of DSI probe failures. Conflicts: drivers/video/msm/mdss/mdss_dsi.h drivers/video/msm/mdss/mdss_dsi_panel.c Change-Id: Ia3fd2fa2b5f5bd446c15bc4c28602846f8540a68 Signed-off-by: Vineet Bajaj <vbajaj@codeaurora.org>
-rw-r--r--drivers/video/fbdev/msm/mdss_dsi.c1
-rw-r--r--drivers/video/fbdev/msm/mdss_dsi.h1
-rw-r--r--drivers/video/fbdev/msm/mdss_dsi_panel.c6
3 files changed, 8 insertions, 0 deletions
diff --git a/drivers/video/fbdev/msm/mdss_dsi.c b/drivers/video/fbdev/msm/mdss_dsi.c
index b577bf071074..86b80225a196 100644
--- a/drivers/video/fbdev/msm/mdss_dsi.c
+++ b/drivers/video/fbdev/msm/mdss_dsi.c
@@ -2585,6 +2585,7 @@ static int mdss_dsi_ctrl_probe(struct platform_device *pdev)
return 0;
error_pan_node:
+ mdss_dsi_unregister_bl_settings(ctrl_pdata);
of_node_put(dsi_pan_node);
return rc;
}
diff --git a/drivers/video/fbdev/msm/mdss_dsi.h b/drivers/video/fbdev/msm/mdss_dsi.h
index a4c237260456..aa696a6cfb1d 100644
--- a/drivers/video/fbdev/msm/mdss_dsi.h
+++ b/drivers/video/fbdev/msm/mdss_dsi.h
@@ -596,6 +596,7 @@ int mdss_panel_get_dst_fmt(u32 bpp, char mipi_mode, u32 pixel_packing,
int mdss_dsi_register_recovery_handler(struct mdss_dsi_ctrl_pdata *ctrl,
struct mdss_intf_recovery *recovery);
void mdss_dsi_panel_dsc_pps_send(struct mdss_dsi_ctrl_pdata *ctrl);
+void mdss_dsi_unregister_bl_settings(struct mdss_dsi_ctrl_pdata *ctrl_pdata);
static inline const char *__mdss_dsi_pm_name(enum dsi_pm_type module)
{
diff --git a/drivers/video/fbdev/msm/mdss_dsi_panel.c b/drivers/video/fbdev/msm/mdss_dsi_panel.c
index 4c9c11b94283..d22cf7404882 100644
--- a/drivers/video/fbdev/msm/mdss_dsi_panel.c
+++ b/drivers/video/fbdev/msm/mdss_dsi_panel.c
@@ -2102,6 +2102,12 @@ int mdss_dsi_panel_timing_switch(struct mdss_dsi_ctrl_pdata *ctrl,
return 0;
}
+void mdss_dsi_unregister_bl_settings(struct mdss_dsi_ctrl_pdata *ctrl_pdata)
+{
+ if (ctrl_pdata->bklt_ctrl == BL_WLED)
+ led_trigger_unregister_simple(bl_led_trigger);
+}
+
static int mdss_dsi_panel_timing_from_dt(struct device_node *np,
struct dsi_panel_timing *pt,
struct mdss_panel_data *panel_data)