msm: mdss: add support to call panel events for one panel

Add support in the panel interface to apply the requested
events to the panel pointed by the controller only,
this will give the caller the choice to skip the loop
in all the child panels of the interface.

Change-Id: I86edfadb6e326354914b79c284feb10837e83245
Signed-off-by: Ingrid Gallardo <ingridg@codeaurora.org>
This commit is contained in:
Ingrid Gallardo 2015-06-15 16:19:49 -07:00 committed by David Keitel
parent 69e3f57626
commit fa71d9249e
5 changed files with 56 additions and 38 deletions

View file

@ -1050,7 +1050,8 @@ int mdss_mdp_ctl_split_display_setup(struct mdss_mdp_ctl *ctl,
int mdss_mdp_ctl_destroy(struct mdss_mdp_ctl *ctl); int mdss_mdp_ctl_destroy(struct mdss_mdp_ctl *ctl);
int mdss_mdp_ctl_start(struct mdss_mdp_ctl *ctl, bool handoff); int mdss_mdp_ctl_start(struct mdss_mdp_ctl *ctl, bool handoff);
int mdss_mdp_ctl_stop(struct mdss_mdp_ctl *ctl, int panel_power_mode); int mdss_mdp_ctl_stop(struct mdss_mdp_ctl *ctl, int panel_power_mode);
int mdss_mdp_ctl_intf_event(struct mdss_mdp_ctl *ctl, int event, void *arg); int mdss_mdp_ctl_intf_event(struct mdss_mdp_ctl *ctl, int event, void *arg,
bool skip_broadcast);
int mdss_mdp_get_prefetch_lines(struct mdss_mdp_ctl *ctl); int mdss_mdp_get_prefetch_lines(struct mdss_mdp_ctl *ctl);
int mdss_mdp_perf_bw_check(struct mdss_mdp_ctl *ctl, int mdss_mdp_perf_bw_check(struct mdss_mdp_ctl *ctl,
struct mdss_mdp_pipe **left_plist, int left_cnt, struct mdss_mdp_pipe **left_plist, int left_cnt,

View file

@ -2973,7 +2973,7 @@ int mdss_mdp_ctl_destroy(struct mdss_mdp_ctl *ctl)
struct mdss_mdp_ctl *sctl; struct mdss_mdp_ctl *sctl;
int rc; int rc;
rc = mdss_mdp_ctl_intf_event(ctl, MDSS_EVENT_CLOSE, NULL); rc = mdss_mdp_ctl_intf_event(ctl, MDSS_EVENT_CLOSE, NULL, false);
WARN(rc, "unable to close panel for intf=%d\n", ctl->intf_num); WARN(rc, "unable to close panel for intf=%d\n", ctl->intf_num);
sctl = mdss_mdp_get_split_ctl(ctl); sctl = mdss_mdp_get_split_ctl(ctl);
@ -2987,7 +2987,8 @@ int mdss_mdp_ctl_destroy(struct mdss_mdp_ctl *ctl)
return 0; return 0;
} }
int mdss_mdp_ctl_intf_event(struct mdss_mdp_ctl *ctl, int event, void *arg) int mdss_mdp_ctl_intf_event(struct mdss_mdp_ctl *ctl, int event, void *arg,
bool skip_broadcast)
{ {
struct mdss_panel_data *pdata; struct mdss_panel_data *pdata;
int rc = 0; int rc = 0;
@ -3003,7 +3004,7 @@ int mdss_mdp_ctl_intf_event(struct mdss_mdp_ctl *ctl, int event, void *arg)
if (pdata->event_handler) if (pdata->event_handler)
rc = pdata->event_handler(pdata, event, arg); rc = pdata->event_handler(pdata, event, arg);
pdata = pdata->next; pdata = pdata->next;
} while (rc == 0 && pdata); } while (rc == 0 && pdata && !skip_broadcast);
return rc; return rc;
} }
@ -3176,7 +3177,7 @@ int mdss_mdp_ctl_start(struct mdss_mdp_ctl *ctl, bool handoff)
mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_ON); mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_ON);
ret = mdss_mdp_ctl_intf_event(ctl, MDSS_EVENT_RESET, NULL); ret = mdss_mdp_ctl_intf_event(ctl, MDSS_EVENT_RESET, NULL, false);
if (ret) { if (ret) {
pr_err("panel power on failed ctl=%d\n", ctl->num); pr_err("panel power on failed ctl=%d\n", ctl->num);
goto error; goto error;
@ -4212,7 +4213,7 @@ int mdss_mdp_display_wait4pingpong(struct mdss_mdp_ctl *ctl, bool use_lock)
mdss_mdp_ctl_reset(sctl); mdss_mdp_ctl_reset(sctl);
mdss_mdp_ctl_intf_event(ctl, mdss_mdp_ctl_intf_event(ctl,
MDSS_EVENT_DSI_RESET_WRITE_PTR, NULL); MDSS_EVENT_DSI_RESET_WRITE_PTR, NULL, false);
pr_debug("pingpong timeout recovery finished\n"); pr_debug("pingpong timeout recovery finished\n");
} }

View file

@ -298,7 +298,7 @@ static inline void mdss_mdp_cmd_clk_on(struct mdss_mdp_cmd_ctx *ctx)
mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_ON); mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_ON);
mdss_mdp_ctl_intf_event mdss_mdp_ctl_intf_event
(ctx->ctl, MDSS_EVENT_PANEL_CLK_CTRL, (void *)1); (ctx->ctl, MDSS_EVENT_PANEL_CLK_CTRL, (void *)1, false);
mdss_mdp_hist_intr_setup(&mdata->hist_intr, MDSS_IRQ_RESUME); mdss_mdp_hist_intr_setup(&mdata->hist_intr, MDSS_IRQ_RESUME);
} }
spin_lock_irqsave(&ctx->clk_lock, flags); spin_lock_irqsave(&ctx->clk_lock, flags);
@ -337,7 +337,7 @@ static inline void mdss_mdp_cmd_clk_off(struct mdss_mdp_cmd_ctx *ctx)
ctx->clk_enabled = 0; ctx->clk_enabled = 0;
mdss_mdp_hist_intr_setup(&mdata->hist_intr, MDSS_IRQ_SUSPEND); mdss_mdp_hist_intr_setup(&mdata->hist_intr, MDSS_IRQ_SUSPEND);
mdss_mdp_ctl_intf_event mdss_mdp_ctl_intf_event
(ctx->ctl, MDSS_EVENT_PANEL_CLK_CTRL, (void *)0); (ctx->ctl, MDSS_EVENT_PANEL_CLK_CTRL, (void *)0, false);
mdss_iommu_ctrl(0); mdss_iommu_ctrl(0);
mdss_bus_bandwidth_ctrl(false); mdss_bus_bandwidth_ctrl(false);
mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_OFF); mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_OFF);
@ -628,7 +628,8 @@ int mdss_mdp_cmd_reconfigure_splash_done(struct mdss_mdp_ctl *ctl, bool handoff)
pdata = ctl->panel_data; pdata = ctl->panel_data;
mdss_mdp_ctl_intf_event(ctl, MDSS_EVENT_PANEL_CLK_CTRL, (void *)0); mdss_mdp_ctl_intf_event(ctl, MDSS_EVENT_PANEL_CLK_CTRL, (void *)0,
false);
pdata->panel_info.cont_splash_enabled = 0; pdata->panel_info.cont_splash_enabled = 0;
if (sctl) if (sctl)
@ -765,7 +766,7 @@ static int mdss_mdp_cmd_set_partial_roi(struct mdss_mdp_ctl *ctl)
/* set panel col and page addr */ /* set panel col and page addr */
rc = mdss_mdp_ctl_intf_event(ctl, rc = mdss_mdp_ctl_intf_event(ctl,
MDSS_EVENT_ENABLE_PARTIAL_ROI, NULL); MDSS_EVENT_ENABLE_PARTIAL_ROI, NULL, false);
return rc; return rc;
} }
@ -778,7 +779,7 @@ static int mdss_mdp_cmd_set_stream_size(struct mdss_mdp_ctl *ctl)
/* set dsi controller stream size */ /* set dsi controller stream size */
rc = mdss_mdp_ctl_intf_event(ctl, rc = mdss_mdp_ctl_intf_event(ctl,
MDSS_EVENT_DSI_STREAM_SIZE, NULL); MDSS_EVENT_DSI_STREAM_SIZE, NULL, false);
return rc; return rc;
} }
@ -798,13 +799,16 @@ static int mdss_mdp_cmd_panel_on(struct mdss_mdp_ctl *ctl,
sctx = (struct mdss_mdp_cmd_ctx *) sctl->intf_ctx[MASTER_CTX]; sctx = (struct mdss_mdp_cmd_ctx *) sctl->intf_ctx[MASTER_CTX];
if (!__mdss_mdp_cmd_is_panel_power_on_interactive(ctx)) { if (!__mdss_mdp_cmd_is_panel_power_on_interactive(ctx)) {
rc = mdss_mdp_ctl_intf_event(ctl, MDSS_EVENT_LINK_READY, NULL); rc = mdss_mdp_ctl_intf_event(ctl, MDSS_EVENT_LINK_READY, NULL,
false);
WARN(rc, "intf %d link ready error (%d)\n", ctl->intf_num, rc); WARN(rc, "intf %d link ready error (%d)\n", ctl->intf_num, rc);
rc = mdss_mdp_ctl_intf_event(ctl, MDSS_EVENT_UNBLANK, NULL); rc = mdss_mdp_ctl_intf_event(ctl, MDSS_EVENT_UNBLANK, NULL,
false);
WARN(rc, "intf %d unblank error (%d)\n", ctl->intf_num, rc); WARN(rc, "intf %d unblank error (%d)\n", ctl->intf_num, rc);
rc = mdss_mdp_ctl_intf_event(ctl, MDSS_EVENT_PANEL_ON, NULL); rc = mdss_mdp_ctl_intf_event(ctl, MDSS_EVENT_PANEL_ON, NULL,
false);
WARN(rc, "intf %d panel on error (%d)\n", ctl->intf_num, rc); WARN(rc, "intf %d panel on error (%d)\n", ctl->intf_num, rc);
rc = mdss_mdp_tearcheck_enable(ctl, true); rc = mdss_mdp_tearcheck_enable(ctl, true);
@ -817,7 +821,7 @@ static int mdss_mdp_cmd_panel_on(struct mdss_mdp_ctl *ctl,
mdss_mdp_ctl_intf_event(ctl, mdss_mdp_ctl_intf_event(ctl,
MDSS_EVENT_REGISTER_RECOVERY_HANDLER, MDSS_EVENT_REGISTER_RECOVERY_HANDLER,
(void *)&ctx->intf_recovery); (void *)&ctx->intf_recovery, false);
ctx->intf_stopped = 0; ctx->intf_stopped = 0;
} else { } else {
@ -987,7 +991,7 @@ int mdss_mdp_cmd_kickoff(struct mdss_mdp_ctl *ctl, void *arg)
/* /*
* tx dcs command if had any * tx dcs command if had any
*/ */
mdss_mdp_ctl_intf_event(ctl, MDSS_EVENT_DSI_CMDLIST_KOFF, NULL); mdss_mdp_ctl_intf_event(ctl, MDSS_EVENT_DSI_CMDLIST_KOFF, NULL, false);
mdss_mdp_cmd_set_stream_size(ctl); mdss_mdp_cmd_set_stream_size(ctl);
@ -1098,7 +1102,8 @@ int mdss_mdp_cmd_ctx_stop(struct mdss_mdp_ctl *ctl,
if (!pend_switch) { if (!pend_switch) {
mdss_mdp_ctl_intf_event(ctl, mdss_mdp_ctl_intf_event(ctl,
MDSS_EVENT_REGISTER_RECOVERY_HANDLER, MDSS_EVENT_REGISTER_RECOVERY_HANDLER,
NULL); NULL,
false);
} }
mdss_mdp_cmd_clk_off(ctx); mdss_mdp_cmd_clk_off(ctx);
@ -1283,11 +1288,11 @@ panel_events:
(is_panel_split(ctl->mfd) && sctl)) && send_panel_events) { (is_panel_split(ctl->mfd) && sctl)) && send_panel_events) {
pr_debug("%s: send panel events\n", __func__); pr_debug("%s: send panel events\n", __func__);
ret = mdss_mdp_ctl_intf_event(ctl, MDSS_EVENT_BLANK, ret = mdss_mdp_ctl_intf_event(ctl, MDSS_EVENT_BLANK,
(void *) (long int) panel_power_state); (void *) (long int) panel_power_state, false);
WARN(ret, "intf %d unblank error (%d)\n", ctl->intf_num, ret); WARN(ret, "intf %d unblank error (%d)\n", ctl->intf_num, ret);
ret = mdss_mdp_ctl_intf_event(ctl, MDSS_EVENT_PANEL_OFF, ret = mdss_mdp_ctl_intf_event(ctl, MDSS_EVENT_PANEL_OFF,
(void *) (long int) panel_power_state); (void *) (long int) panel_power_state, false);
WARN(ret, "intf %d unblank error (%d)\n", ctl->intf_num, ret); WARN(ret, "intf %d unblank error (%d)\n", ctl->intf_num, ret);
} }
@ -1479,14 +1484,14 @@ void mdss_mdp_switch_to_vid_mode(struct mdss_mdp_ctl *ctl, int prep)
* to properly enable vid mode compnents * to properly enable vid mode compnents
*/ */
rc = mdss_mdp_ctl_intf_event rc = mdss_mdp_ctl_intf_event
(ctl, MDSS_EVENT_PANEL_CLK_CTRL, (void *)1); (ctl, MDSS_EVENT_PANEL_CLK_CTRL, (void *)1, false);
ctx->pending_mode_switch = 1; ctx->pending_mode_switch = 1;
return; return;
} }
mdss_mdp_ctl_intf_event(ctl, MDSS_EVENT_DSI_RECONFIG_CMD, mdss_mdp_ctl_intf_event(ctl, MDSS_EVENT_DSI_RECONFIG_CMD,
(void *) mode); (void *) mode, false);
} }
int mdss_mdp_cmd_start(struct mdss_mdp_ctl *ctl) int mdss_mdp_cmd_start(struct mdss_mdp_ctl *ctl)

View file

@ -454,7 +454,8 @@ static int mdss_mdp_video_ctx_stop(struct mdss_mdp_ctl *ctl,
mutex_lock(&ctl->offlock); mutex_lock(&ctl->offlock);
if (ctx->timegen_en) { if (ctx->timegen_en) {
rc = mdss_mdp_ctl_intf_event(ctl, MDSS_EVENT_BLANK, NULL); rc = mdss_mdp_ctl_intf_event(ctl, MDSS_EVENT_BLANK, NULL,
false);
if (rc == -EBUSY) { if (rc == -EBUSY) {
pr_debug("intf #%d busy don't turn off\n", pr_debug("intf #%d busy don't turn off\n",
ctl->intf_num); ctl->intf_num);
@ -469,7 +470,8 @@ static int mdss_mdp_video_ctx_stop(struct mdss_mdp_ctl *ctl,
frame_rate = (1000/frame_rate) + 1; frame_rate = (1000/frame_rate) + 1;
mdss_mdp_turn_off_time_engine(ctl, ctx, frame_rate); mdss_mdp_turn_off_time_engine(ctl, ctx, frame_rate);
rc = mdss_mdp_ctl_intf_event(ctl, MDSS_EVENT_PANEL_OFF, NULL); rc = mdss_mdp_ctl_intf_event(ctl, MDSS_EVENT_PANEL_OFF, NULL,
false);
WARN(rc, "intf %d timegen off error (%d)\n", ctl->intf_num, rc); WARN(rc, "intf %d timegen off error (%d)\n", ctl->intf_num, rc);
mdss_bus_bandwidth_ctrl(false); mdss_bus_bandwidth_ctrl(false);
@ -932,7 +934,8 @@ static int mdss_mdp_video_config_fps(struct mdss_mdp_ctl *ctl,
} }
rc = mdss_mdp_ctl_intf_event(ctl, rc = mdss_mdp_ctl_intf_event(ctl,
MDSS_EVENT_PANEL_UPDATE_FPS, MDSS_EVENT_PANEL_UPDATE_FPS,
(void *) (unsigned long) new_fps); (void *) (unsigned long) new_fps,
false);
WARN(rc, "intf %d panel fps update error (%d)\n", WARN(rc, "intf %d panel fps update error (%d)\n",
ctl->intf_num, rc); ctl->intf_num, rc);
} else if (pdata->panel_info.dfps_update } else if (pdata->panel_info.dfps_update
@ -980,7 +983,8 @@ static int mdss_mdp_video_config_fps(struct mdss_mdp_ctl *ctl,
} }
rc = mdss_mdp_ctl_intf_event(ctl, rc = mdss_mdp_ctl_intf_event(ctl,
MDSS_EVENT_PANEL_UPDATE_FPS, MDSS_EVENT_PANEL_UPDATE_FPS,
(void *) (unsigned long) new_fps); (void *) (unsigned long) new_fps,
false);
WARN(rc, "intf %d panel fps update error (%d)\n", WARN(rc, "intf %d panel fps update error (%d)\n",
ctl->intf_num, rc); ctl->intf_num, rc);
@ -1013,7 +1017,8 @@ exit_dfps:
} else { } else {
rc = mdss_mdp_ctl_intf_event(ctl, rc = mdss_mdp_ctl_intf_event(ctl,
MDSS_EVENT_PANEL_UPDATE_FPS, MDSS_EVENT_PANEL_UPDATE_FPS,
(void *) (unsigned long) new_fps); (void *) (unsigned long) new_fps,
false);
WARN(rc, "intf %d panel fps update error (%d)\n", WARN(rc, "intf %d panel fps update error (%d)\n",
ctl->intf_num, rc); ctl->intf_num, rc);
} }
@ -1047,7 +1052,8 @@ static int mdss_mdp_video_display(struct mdss_mdp_ctl *ctl, void *arg)
MDSS_XLOG(ctl->num, ctl->underrun_cnt); MDSS_XLOG(ctl->num, ctl->underrun_cnt);
if (!ctx->timegen_en) { if (!ctx->timegen_en) {
rc = mdss_mdp_ctl_intf_event(ctl, MDSS_EVENT_LINK_READY, NULL); rc = mdss_mdp_ctl_intf_event(ctl, MDSS_EVENT_LINK_READY, NULL,
false);
if (rc) { if (rc) {
pr_warn("intf #%d link ready error (%d)\n", pr_warn("intf #%d link ready error (%d)\n",
ctl->intf_num, rc); ctl->intf_num, rc);
@ -1056,7 +1062,8 @@ static int mdss_mdp_video_display(struct mdss_mdp_ctl *ctl, void *arg)
return rc; return rc;
} }
rc = mdss_mdp_ctl_intf_event(ctl, MDSS_EVENT_UNBLANK, NULL); rc = mdss_mdp_ctl_intf_event(ctl, MDSS_EVENT_UNBLANK, NULL,
false);
WARN(rc, "intf %d unblank error (%d)\n", ctl->intf_num, rc); WARN(rc, "intf %d unblank error (%d)\n", ctl->intf_num, rc);
pr_debug("enabling timing gen for intf=%d\n", ctl->intf_num); pr_debug("enabling timing gen for intf=%d\n", ctl->intf_num);
@ -1092,9 +1099,11 @@ static int mdss_mdp_video_display(struct mdss_mdp_ctl *ctl, void *arg)
rc, ctl->num); rc, ctl->num);
ctx->timegen_en = true; ctx->timegen_en = true;
rc = mdss_mdp_ctl_intf_event(ctl, MDSS_EVENT_PANEL_ON, NULL); rc = mdss_mdp_ctl_intf_event(ctl, MDSS_EVENT_PANEL_ON, NULL,
false);
WARN(rc, "intf %d panel on error (%d)\n", ctl->intf_num, rc); WARN(rc, "intf %d panel on error (%d)\n", ctl->intf_num, rc);
mdss_mdp_ctl_intf_event(ctl, MDSS_EVENT_POST_PANEL_ON, NULL); mdss_mdp_ctl_intf_event(ctl, MDSS_EVENT_POST_PANEL_ON, NULL,
false);
} }
return 0; return 0;
@ -1126,7 +1135,7 @@ int mdss_mdp_video_reconfigure_splash_done(struct mdss_mdp_ctl *ctl,
if (!handoff) { if (!handoff) {
ret = mdss_mdp_ctl_intf_event(ctl, MDSS_EVENT_CONT_SPLASH_BEGIN, ret = mdss_mdp_ctl_intf_event(ctl, MDSS_EVENT_CONT_SPLASH_BEGIN,
NULL); NULL, false);
if (ret) { if (ret) {
pr_err("%s: Failed to handle 'CONT_SPLASH_BEGIN' event\n" pr_err("%s: Failed to handle 'CONT_SPLASH_BEGIN' event\n"
, __func__); , __func__);
@ -1152,7 +1161,7 @@ int mdss_mdp_video_reconfigure_splash_done(struct mdss_mdp_ctl *ctl,
msleep(20); msleep(20);
ret = mdss_mdp_ctl_intf_event(ctl, ret = mdss_mdp_ctl_intf_event(ctl,
MDSS_EVENT_CONT_SPLASH_FINISH, NULL); MDSS_EVENT_CONT_SPLASH_FINISH, NULL, false);
} }
return ret; return ret;
@ -1322,7 +1331,8 @@ static int mdss_mdp_video_ctx_setup(struct mdss_mdp_ctl *ctl,
ctx->intf_recovery.data = ctl; ctx->intf_recovery.data = ctl;
if (mdss_mdp_ctl_intf_event(ctl, if (mdss_mdp_ctl_intf_event(ctl,
MDSS_EVENT_REGISTER_RECOVERY_HANDLER, MDSS_EVENT_REGISTER_RECOVERY_HANDLER,
(void *)&ctx->intf_recovery)) { (void *)&ctx->intf_recovery,
false)) {
pr_err("Failed to register intf recovery handler\n"); pr_err("Failed to register intf recovery handler\n");
return -EINVAL; return -EINVAL;
} }
@ -1498,7 +1508,7 @@ void mdss_mdp_switch_to_cmd_mode(struct mdss_mdp_ctl *ctl, int prep)
if (!prep) { if (!prep) {
mdss_mdp_ctl_intf_event(ctl, MDSS_EVENT_DSI_RECONFIG_CMD, mdss_mdp_ctl_intf_event(ctl, MDSS_EVENT_DSI_RECONFIG_CMD,
(void *) mode); (void *) mode, false);
return; return;
} }
@ -1511,7 +1521,7 @@ void mdss_mdp_switch_to_cmd_mode(struct mdss_mdp_ctl *ctl, int prep)
/* Start off by sending command to initial cmd mode */ /* Start off by sending command to initial cmd mode */
rc = mdss_mdp_ctl_intf_event(ctl, rc = mdss_mdp_ctl_intf_event(ctl,
MDSS_EVENT_DSI_DYNAMIC_SWITCH, (void *) mode); MDSS_EVENT_DSI_DYNAMIC_SWITCH, (void *) mode, false);
if (rc) { if (rc) {
pr_err("intf #%d busy don't turn off, rc=%d\n", pr_err("intf #%d busy don't turn off, rc=%d\n",
ctl->intf_num, rc); ctl->intf_num, rc);

View file

@ -1718,7 +1718,7 @@ int mdss_mode_switch_post(struct msm_fb_data_type *mfd, u32 mode)
pr_debug("%s, start\n", __func__); pr_debug("%s, start\n", __func__);
rc = mdss_mdp_ctl_intf_event(ctl, rc = mdss_mdp_ctl_intf_event(ctl,
MDSS_EVENT_DSI_DYNAMIC_SWITCH, MDSS_EVENT_DSI_DYNAMIC_SWITCH,
(void *) MIPI_VIDEO_PANEL); (void *) MIPI_VIDEO_PANEL, false);
pr_debug("%s, end\n", __func__); pr_debug("%s, end\n", __func__);
} else if (mode == MIPI_CMD_PANEL) { } else if (mode == MIPI_CMD_PANEL) {
/* /*
@ -1727,7 +1727,8 @@ int mdss_mode_switch_post(struct msm_fb_data_type *mfd, u32 mode)
* power collapse to work as intended. * power collapse to work as intended.
*/ */
mdss_mdp_ctl_intf_event(ctl, mdss_mdp_ctl_intf_event(ctl,
MDSS_EVENT_PANEL_CLK_CTRL, (void *)0); MDSS_EVENT_PANEL_CLK_CTRL, (void *)0,
false);
} }
return rc; return rc;
} }
@ -4773,7 +4774,7 @@ static int mdss_mdp_update_panel_info(struct msm_fb_data_type *mfd,
struct mdss_mdp_ctl *sctl; struct mdss_mdp_ctl *sctl;
ret = mdss_mdp_ctl_intf_event(ctl, MDSS_EVENT_DSI_UPDATE_PANEL_DATA, ret = mdss_mdp_ctl_intf_event(ctl, MDSS_EVENT_DSI_UPDATE_PANEL_DATA,
(void *)(unsigned long)mode); (void *)(unsigned long)mode, false);
if (ret) if (ret)
pr_err("Dynamic switch to %s mode failed!\n", pr_err("Dynamic switch to %s mode failed!\n",
mode ? "command" : "video"); mode ? "command" : "video");