disp: msm: dsi: enable DMA cmd scheduling for video mode panels
This change enables the DMA CMD scheduling as default for video mode panels. 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. Scheduling the DMA cmd to the first line in VFP fixes this issue. Change-Id: If9e5bd1923c012f10dee50c791a2b2b001d97553 Signed-off-by: Rajeev Nandan <rajeevny@codeaurora.org>
Cette révision appartient à :

révisé par
Gerrit - the friendly Code Review server

Parent
5caf284ecc
révision
37b2f80ad4
@@ -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 ==
|
||||
|
Référencer dans un nouveau ticket
Bloquer un utilisateur