disp: msm: dsi: allow cmd-engine enable/disable HW op at all times
In cases of continuous splash, when command engine is enabled/disabled as part of commands that are sent before continuous splash config is called the HW op will disable the command engine by the end of the command transfer. As part of continuous splash handoff, the command engine enable call skips the hardware operation to actually set the CMD_ENGINE_EN bit as it is guarded by the skip op flag. With the current change, we allow the HW op to take place, despite continuous splash being enabled. This way, the HW will always maintain the correct state pre and post continuous splash handoff. Change-Id: Id32ebf6f0d7eac46c118b701c138fcf6b9b10318 Signed-off-by: Steve Cohen <cohens@codeaurora.org> Signed-off-by: Satya Rama Aditya Pinapala <psraditya30@codeaurora.org>
This commit is contained in:

committed by
Satya Rama Aditya Pinapala

parent
96d560a883
commit
65f3cc37a4
@@ -278,8 +278,7 @@ static int dsi_display_cmd_engine_enable(struct dsi_display *display)
|
||||
m_ctrl = &display->ctrl[display->cmd_master_idx];
|
||||
mutex_lock(&m_ctrl->ctrl->ctrl_lock);
|
||||
|
||||
rc = dsi_ctrl_set_cmd_engine_state(m_ctrl->ctrl,
|
||||
DSI_CTRL_ENGINE_ON, skip_op);
|
||||
rc = dsi_ctrl_set_cmd_engine_state(m_ctrl->ctrl, DSI_CTRL_ENGINE_ON);
|
||||
if (rc) {
|
||||
DSI_ERR("[%s] enable mcmd engine failed, skip_op:%d rc:%d\n",
|
||||
display->name, skip_op, rc);
|
||||
@@ -291,8 +290,7 @@ static int dsi_display_cmd_engine_enable(struct dsi_display *display)
|
||||
if (!ctrl->ctrl || (ctrl == m_ctrl))
|
||||
continue;
|
||||
|
||||
rc = dsi_ctrl_set_cmd_engine_state(ctrl->ctrl,
|
||||
DSI_CTRL_ENGINE_ON, skip_op);
|
||||
rc = dsi_ctrl_set_cmd_engine_state(ctrl->ctrl, DSI_CTRL_ENGINE_ON);
|
||||
if (rc) {
|
||||
DSI_ERR(
|
||||
"[%s] enable cmd engine failed, skip_op:%d rc:%d\n",
|
||||
@@ -303,8 +301,7 @@ static int dsi_display_cmd_engine_enable(struct dsi_display *display)
|
||||
|
||||
goto done;
|
||||
error_disable_master:
|
||||
(void)dsi_ctrl_set_cmd_engine_state(m_ctrl->ctrl,
|
||||
DSI_CTRL_ENGINE_OFF, skip_op);
|
||||
(void)dsi_ctrl_set_cmd_engine_state(m_ctrl->ctrl, DSI_CTRL_ENGINE_OFF);
|
||||
done:
|
||||
mutex_unlock(&m_ctrl->ctrl->ctrl_lock);
|
||||
return rc;
|
||||
@@ -325,16 +322,14 @@ static int dsi_display_cmd_engine_disable(struct dsi_display *display)
|
||||
if (!ctrl->ctrl || (ctrl == m_ctrl))
|
||||
continue;
|
||||
|
||||
rc = dsi_ctrl_set_cmd_engine_state(ctrl->ctrl,
|
||||
DSI_CTRL_ENGINE_OFF, skip_op);
|
||||
rc = dsi_ctrl_set_cmd_engine_state(ctrl->ctrl, DSI_CTRL_ENGINE_OFF);
|
||||
if (rc)
|
||||
DSI_ERR(
|
||||
"[%s] disable cmd engine failed, skip_op:%d rc:%d\n",
|
||||
display->name, skip_op, rc);
|
||||
}
|
||||
|
||||
rc = dsi_ctrl_set_cmd_engine_state(m_ctrl->ctrl,
|
||||
DSI_CTRL_ENGINE_OFF, skip_op);
|
||||
rc = dsi_ctrl_set_cmd_engine_state(m_ctrl->ctrl, DSI_CTRL_ENGINE_OFF);
|
||||
if (rc)
|
||||
DSI_ERR("[%s] disable mcmd engine failed, skip_op:%d rc:%d\n",
|
||||
display->name, skip_op, rc);
|
||||
|
Reference in New Issue
Block a user