From 81d15ab5bd99c64ca131f0fac485fdc07bd0b339 Mon Sep 17 00:00:00 2001 From: Rajeev Nandan Date: Tue, 23 Nov 2021 19:32:13 +0530 Subject: [PATCH] disp: msm: dsi: Clear slave dma status only for broadcast command In case of broadcast, for master controller, DMA_DONE bit gets cleared in dsi_ctrl_isr and for slave controller it gets cleared in clear_slave_dma_status. Current implementation checks DSI_CTRL_CMD_BROADCAST_MASTER flag to decide if it's slave or not. But, in the case of unicast, this flag is not set, leading to the unnecessary poll for clear_slave_dma_status for all unicast command transfers. Add a check to call clear_slave_dma_status only when the current command is broadcast on slave controller. Change-Id: I7156f8c12ec779b41dafc8fc67639814957ee51b Signed-off-by: Rajeev Nandan --- msm/dsi/dsi_ctrl.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/msm/dsi/dsi_ctrl.c b/msm/dsi/dsi_ctrl.c index c298e616ac65..764c605e4b96 100644 --- a/msm/dsi/dsi_ctrl.c +++ b/msm/dsi/dsi_ctrl.c @@ -1550,7 +1550,8 @@ static int dsi_message_tx(struct dsi_ctrl *dsi_ctrl, if (dsi_ctrl->dma_wait_queued) dsi_ctrl_flush_cmd_dma_queue(dsi_ctrl); - if (!(*flags & DSI_CTRL_CMD_BROADCAST_MASTER)) + if ((*flags & DSI_CTRL_CMD_BROADCAST) && + (!(*flags & DSI_CTRL_CMD_BROADCAST_MASTER))) dsi_ctrl_clear_slave_dma_status(dsi_ctrl, *flags); if (*flags & DSI_CTRL_CMD_NON_EMBEDDED_MODE) {