Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f282b1f2 authored by Kuogee Hsieh's avatar Kuogee Hsieh
Browse files

msm: mdss: restore dsi interrupt mask bits



DSI interrupts are not enabled at LK. For cont_splash
case, dsi interrupt mask bits need to be restored to
enable interrupts so that dcs command be sent to panel.

CRs-Fixed: 745369
Change-Id: Ice61d538387c5d37dd9e077f01b4c6d4593cc393
Signed-off-by: default avatarKuogee Hsieh <khsieh@codeaurora.org>
parent e143b669
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -561,6 +561,13 @@ int mdss_dsi_on(struct mdss_panel_data *pdata)
	mipi = &pdata->panel_info.mipi;

	if (mdss_dsi_is_panel_on_interactive(pdata)) {
		/*
		 * all interrupts are disabled at LK
		 * for cont_splash case, intr mask bits need
		 * to be restored to allow dcs command be
		 * sent to panel
		 */
		mdss_dsi_restore_intr_mask(ctrl_pdata);
		pr_debug("%s: panel already on\n", __func__);
		goto end;
	}
+1 −0
Original line number Diff line number Diff line
@@ -411,6 +411,7 @@ int mdss_dsi_cmds_rx(struct mdss_dsi_ctrl_pdata *ctrl,
void mdss_dsi_host_init(struct mdss_panel_data *pdata);
void mdss_dsi_op_mode_config(int mode,
				struct mdss_panel_data *pdata);
void mdss_dsi_restore_intr_mask(struct mdss_dsi_ctrl_pdata *ctrl);
void mdss_dsi_cmd_mode_ctrl(int enable);
void mdp4_dsi_cmd_trigger(void);
void mdss_dsi_cmd_mdp_start(struct mdss_dsi_ctrl_pdata *ctrl);
+10 −0
Original line number Diff line number Diff line
@@ -779,6 +779,16 @@ void mdss_dsi_controller_cfg(int enable,
	wmb();
}

void mdss_dsi_restore_intr_mask(struct mdss_dsi_ctrl_pdata *ctrl)
{
	u32 mask;

	mask = MIPI_INP((ctrl->ctrl_base) + 0x0110);
	mask |= (DSI_INTR_CMD_DMA_DONE_MASK | DSI_INTR_ERROR_MASK |
				DSI_INTR_BTA_DONE_MASK);
	MIPI_OUTP((ctrl->ctrl_base) + 0x0110, mask);
}

void mdss_dsi_op_mode_config(int mode,
			     struct mdss_panel_data *pdata)
{