Merge "msm: mdss: Handle ping pong split configuration in splash done"

This commit is contained in:
Linux Build Service Account 2017-02-15 17:01:09 -08:00 committed by Gerrit - the friendly Code Review server
commit 60e0197aa0

View file

@ -1981,22 +1981,34 @@ int mdss_mdp_cmd_reconfigure_splash_done(struct mdss_mdp_ctl *ctl,
bool handoff) bool handoff)
{ {
struct mdss_panel_data *pdata; struct mdss_panel_data *pdata;
struct mdss_mdp_ctl *sctl = mdss_mdp_get_split_ctl(ctl); struct mdss_mdp_ctl *sctl = NULL;
struct mdss_mdp_cmd_ctx *sctx = NULL;
struct dsi_panel_clk_ctrl clk_ctrl; struct dsi_panel_clk_ctrl clk_ctrl;
int ret = 0; int ret = 0;
/* Get both controllers in the correct order for dual displays */
mdss_mdp_get_split_display_ctls(&ctl, &sctl);
if (sctl)
sctx = (struct mdss_mdp_cmd_ctx *) sctl->intf_ctx[MASTER_CTX];
/* In pingpong split we have single controller, dual context */
if (is_pingpong_split(ctl->mfd))
sctx = (struct mdss_mdp_cmd_ctx *) ctl->intf_ctx[SLAVE_CTX];
pdata = ctl->panel_data; pdata = ctl->panel_data;
clk_ctrl.state = MDSS_DSI_CLK_OFF; clk_ctrl.state = MDSS_DSI_CLK_OFF;
clk_ctrl.client = DSI_CLK_REQ_MDP_CLIENT; clk_ctrl.client = DSI_CLK_REQ_MDP_CLIENT;
if (sctl) {
if (sctx) { /* then slave */
u32 flags = CTL_INTF_EVENT_FLAG_SKIP_BROADCAST; u32 flags = CTL_INTF_EVENT_FLAG_SKIP_BROADCAST;
if (is_pingpong_split(sctl->mfd)) if (sctx->pingpong_split_slave)
flags |= CTL_INTF_EVENT_FLAG_SLAVE_INTF; flags |= CTL_INTF_EVENT_FLAG_SLAVE_INTF;
mdss_mdp_ctl_intf_event(sctl, MDSS_EVENT_PANEL_CLK_CTRL, mdss_mdp_ctl_intf_event(sctx->ctl, MDSS_EVENT_PANEL_CLK_CTRL,
(void *)&clk_ctrl, flags); (void *)&clk_ctrl, flags);
} }
mdss_mdp_ctl_intf_event(ctl, MDSS_EVENT_PANEL_CLK_CTRL, mdss_mdp_ctl_intf_event(ctl, MDSS_EVENT_PANEL_CLK_CTRL,