diff options
| author | Vineet Bajaj <vbajaj@codeaurora.org> | 2015-05-27 19:26:53 +0530 |
|---|---|---|
| committer | David Keitel <dkeitel@codeaurora.org> | 2016-03-23 20:45:59 -0700 |
| commit | d2736ae8fa19b6ec673d91a578a1741dc9ee109b (patch) | |
| tree | 8e0b148230b17b231d46383be8872cbae2b720ac | |
| parent | 26ef4431587d8a16a7e416b0816f8e93cacc09a3 (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.c | 1 | ||||
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_dsi.h | 1 | ||||
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_dsi_panel.c | 6 |
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) |
