Merge "disp: msm: dsi: enable DMA cmd scheduling for video mode panels"

This commit is contained in:
qctecmdr
2020-12-11 09:49:33 -08:00
committed by Gerrit - the friendly Code Review server

View File

@@ -1373,8 +1373,21 @@ static void dsi_kickoff_msg_tx(struct dsi_ctrl *dsi_ctrl,
dsi_hw_ops.reset_trig_ctrl(&dsi_ctrl->hw,
&dsi_ctrl->host_config.common_config);
/* check if custom dma scheduling line needed */
if (flags & DSI_CTRL_CMD_CUSTOM_DMA_SCHED)
/*
* Always enable DMA scheduling for video mode panel.
*
* In video mode panel, if the DMA is triggered very close to
* the beginning of the active window and the DMA transfer
* happens in the last line of VBP, then the HW state will
* stay in wait and return to idle in the first line of VFP.
* But somewhere in the middle of the active window, if SW
* disables DSI command mode engine while the HW is still
* waiting and re-enable after timing engine is OFF. So the
* HW never sees another vblank line and hence it gets
* stuck in the wait state.
*/
if ((flags & DSI_CTRL_CMD_CUSTOM_DMA_SCHED) ||
(dsi_ctrl->host_config.panel_mode == DSI_OP_VIDEO_MODE))
dsi_configure_command_scheduling(dsi_ctrl, cmd_mem);
dsi_ctrl->cmd_mode = (dsi_ctrl->host_config.panel_mode ==