disp: msm: dsi: enable DMA start window scheduling for broadcast commands
As per the HW requirements it is highly recommended to use DMA start window to trigger broadcast commands. If not used then it can result in a hardware hang with the DSI controllers going out of sync. This behavior is even more prominent in cases of higher refresh rates. Currently, reset_trigger_controls is called as part of next command. Due to this, when unicast command is sent after broadcast command, reset_trigger_controls does not get called for slave controller, leading to issues. As part of this change, DMA start window scheduling is enabled as default for broadcast commands and reset_trigger_controls is done as part of post_cmd_transfer operations. Change-Id: I2402214ed79b376d102b88d4f7e6a06fcb5712d3 Signed-off-by: Ritesh Kumar <quic_riteshk@quicinc.com>
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
* Copyright (c) 2016-2021, The Linux Foundation. All rights reserved.
|
||||
*/
|
||||
|
||||
@@ -704,14 +705,18 @@ static void dsi_display_set_cmd_tx_ctrl_flags(struct dsi_display *display,
|
||||
/*
|
||||
* Set flags for command scheduling.
|
||||
* 1) In video mode command DMA scheduling is default.
|
||||
* 2) In command mode command DMA scheduling depends on message
|
||||
* 2) In command mode unicast command DMA scheduling depends on message
|
||||
* flag and TE needs to be running.
|
||||
* 3) In command mode broadcast command DMA scheduling is default and
|
||||
* TE needs to be running.
|
||||
*/
|
||||
if (display->panel->panel_mode == DSI_OP_VIDEO_MODE) {
|
||||
flags |= DSI_CTRL_CMD_CUSTOM_DMA_SCHED;
|
||||
} else {
|
||||
if (msg->flags & MIPI_DSI_MSG_CMD_DMA_SCHED)
|
||||
flags |= DSI_CTRL_CMD_CUSTOM_DMA_SCHED;
|
||||
if (flags & DSI_CTRL_CMD_BROADCAST)
|
||||
flags |= DSI_CTRL_CMD_CUSTOM_DMA_SCHED;
|
||||
if (!display->enabled)
|
||||
flags &= ~DSI_CTRL_CMD_CUSTOM_DMA_SCHED;
|
||||
}
|
||||
|
Reference in New Issue
Block a user