|
@@ -1,6 +1,6 @@
|
|
// SPDX-License-Identifier: GPL-2.0-only
|
|
// SPDX-License-Identifier: GPL-2.0-only
|
|
/*
|
|
/*
|
|
- * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
|
|
|
|
|
+ * Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights reserved.
|
|
* Copyright (c) 2016-2021, The Linux Foundation. All rights reserved.
|
|
* Copyright (c) 2016-2021, The Linux Foundation. All rights reserved.
|
|
*/
|
|
*/
|
|
|
|
|
|
@@ -3450,6 +3450,17 @@ int dsi_host_transfer_sub(struct mipi_dsi_host *host, struct dsi_cmd_desc *cmd)
|
|
|
|
|
|
dsi_display_set_cmd_tx_ctrl_flags(display, cmd);
|
|
dsi_display_set_cmd_tx_ctrl_flags(display, cmd);
|
|
|
|
|
|
|
|
+ /*
|
|
|
|
+ * Wait until any previous broadcast commands with ASYNC waits have been scheduled
|
|
|
|
+ * and completed on both controllers.
|
|
|
|
+ */
|
|
|
|
+ display_for_each_ctrl(i, display) {
|
|
|
|
+ ctrl = &display->ctrl[i];
|
|
|
|
+ if ((ctrl->ctrl->pending_cmd_flags & DSI_CTRL_CMD_BROADCAST) &&
|
|
|
|
+ ctrl->ctrl->post_tx_queued)
|
|
|
|
+ dsi_ctrl_flush_cmd_dma_queue(ctrl->ctrl);
|
|
|
|
+ }
|
|
|
|
+
|
|
if (cmd->ctrl_flags & DSI_CTRL_CMD_BROADCAST) {
|
|
if (cmd->ctrl_flags & DSI_CTRL_CMD_BROADCAST) {
|
|
rc = dsi_display_broadcast_cmd(display, cmd);
|
|
rc = dsi_display_broadcast_cmd(display, cmd);
|
|
if (rc) {
|
|
if (rc) {
|