From 94c0a0e5ca180efaccef5f791b3314ca8cc4916d Mon Sep 17 00:00:00 2001 From: Veera Sundaram Sankaran Date: Thu, 6 Aug 2015 11:57:37 -0700 Subject: [PATCH] msm: mdss: send fb events for both pdata for split DSI cases FB events are sent only for first pdata and not for the next in split DSI cases. This is handled within each event separately. Fix the event handler to send events for both pdata separately in split DSI cases and avoid handling it within individual events. Change-Id: I70edc88f0958af3a807eecf0211dc2d8cd26301c Signed-off-by: Veera Sundaram Sankaran --- drivers/video/fbdev/msm/mdss_dsi.c | 18 +++++++----------- drivers/video/fbdev/msm/mdss_fb.c | 11 ++++++++--- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/drivers/video/fbdev/msm/mdss_dsi.c b/drivers/video/fbdev/msm/mdss_dsi.c index 8c6190848379..4c2d80e487bb 100644 --- a/drivers/video/fbdev/msm/mdss_dsi.c +++ b/drivers/video/fbdev/msm/mdss_dsi.c @@ -882,20 +882,16 @@ static int mdss_dsi_debugfs_setup(struct mdss_panel_data *pdata, static int mdss_dsi_debugfs_init(struct mdss_dsi_ctrl_pdata *ctrl_pdata) { - struct mdss_panel_data *pdata = &ctrl_pdata->panel_data; int rc; + struct mdss_panel_data *pdata = &ctrl_pdata->panel_data; + struct mdss_panel_info panel_info = pdata->panel_info; - do { - struct mdss_panel_info panel_info = pdata->panel_info; - rc = mdss_dsi_debugfs_setup(pdata, - panel_info.debugfs_info->root); - if (rc) { - pr_err("%s: Error in initilizing dsi ctrl debugfs\n", + rc = mdss_dsi_debugfs_setup(pdata, panel_info.debugfs_info->root); + if (rc) { + pr_err("%s: Error in initilizing dsi ctrl debugfs\n", __func__); - return rc; - } - pdata = pdata->next; - } while (pdata); + return rc; + } pr_debug("%s: Initialized mdss_dsi_debugfs_init\n", __func__); return 0; diff --git a/drivers/video/fbdev/msm/mdss_fb.c b/drivers/video/fbdev/msm/mdss_fb.c index 02eb1b944d13..ec4962b53ea0 100644 --- a/drivers/video/fbdev/msm/mdss_fb.c +++ b/drivers/video/fbdev/msm/mdss_fb.c @@ -1211,6 +1211,7 @@ static int mdss_fb_remove(struct platform_device *pdev) static int mdss_fb_send_panel_event(struct msm_fb_data_type *mfd, int event, void *arg) { + int ret = 0; struct mdss_panel_data *pdata; pdata = dev_get_platdata(&mfd->pdev->dev); @@ -1221,10 +1222,14 @@ static int mdss_fb_send_panel_event(struct msm_fb_data_type *mfd, pr_debug("sending event=%d for fb%d\n", event, mfd->index); - if (pdata->event_handler) - return pdata->event_handler(pdata, event, arg); + do { + if (pdata->event_handler) + ret = pdata->event_handler(pdata, event, arg); - return 0; + pdata = pdata->next; + } while (!ret && pdata); + + return ret; } static int mdss_fb_suspend_sub(struct msm_fb_data_type *mfd)