disp: msm: dsi: maintain validated dsi msg flags

This change fixes the usecase where dsi msg flags validated only
during command transfer. This fix maintains the flags between
transfer and trigger calls. It also adds a new async override
flag to be used to bypass validate function.

Change-Id: Ie12acd3d7b01099bba65ca37cec61091408b81c5
Signed-off-by: Nilaan Gunabalachandran <ngunabal@codeaurora.org>
Signed-off-by: Satya Rama Aditya Pinapala <psraditya30@codeaurora.org>
这个提交包含在:
Nilaan Gunabalachandran
2020-03-19 15:17:41 -04:00
提交者 Satya Rama Aditya Pinapala
父节点 a1143d12be
当前提交 41f52e3987
修改 4 个文件,包含 40 行新增32 行删除

查看文件

@@ -677,7 +677,7 @@ static int dsi_display_read_status(struct dsi_display_ctrl *ctrl,
cmds[i].msg.flags |= MIPI_DSI_MSG_USE_LPM;
cmds[i].msg.rx_buf = config->status_buf;
cmds[i].msg.rx_len = config->status_cmds_rlen[i];
rc = dsi_ctrl_cmd_transfer(ctrl->ctrl, &cmds[i].msg, flags);
rc = dsi_ctrl_cmd_transfer(ctrl->ctrl, &cmds[i].msg, &flags);
if (rc <= 0) {
DSI_ERR("rx cmd transfer failed rc=%d\n", rc);
return rc;
@@ -2733,7 +2733,7 @@ static int dsi_display_broadcast_cmd(struct dsi_display *display,
* 2. Trigger commands
*/
m_ctrl = &display->ctrl[display->cmd_master_idx];
rc = dsi_ctrl_cmd_transfer(m_ctrl->ctrl, msg, m_flags);
rc = dsi_ctrl_cmd_transfer(m_ctrl->ctrl, msg, &m_flags);
if (rc) {
DSI_ERR("[%s] cmd transfer failed on master,rc=%d\n",
display->name, rc);
@@ -2745,7 +2745,7 @@ static int dsi_display_broadcast_cmd(struct dsi_display *display,
if (ctrl == m_ctrl)
continue;
rc = dsi_ctrl_cmd_transfer(ctrl->ctrl, msg, flags);
rc = dsi_ctrl_cmd_transfer(ctrl->ctrl, msg, &flags);
if (rc) {
DSI_ERR("[%s] cmd transfer failed, rc=%d\n",
display->name, rc);
@@ -2887,7 +2887,7 @@ static ssize_t dsi_host_transfer(struct mipi_dsi_host *host,
cmd_flags |= DSI_CTRL_CMD_ASYNC_WAIT;
rc = dsi_ctrl_cmd_transfer(display->ctrl[ctrl_idx].ctrl, msg,
cmd_flags);
&cmd_flags);
if (rc) {
DSI_ERR("[%s] cmd transfer failed, rc=%d\n",
display->name, rc);