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 <quic_rajeevny@quicinc.com>
This commit is contained in:
Rajeev Nandan 2021-11-23 19:32:13 +05:30
commit 81d15ab5bd

View file

@ -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) {