disp: msm: dsi: handle wait for dma cmd completion
The current solution triggers the DMA command and waits till the command dma done and ISR signals completion. This change introduces asynchronous wait after a DCS command has been triggered. Enable this mode only during pre kickoff, so as to not block commit thread. Change-Id: Iead7b6328883e844147d47ff68dc878943879553 Signed-off-by: Satya Rama Aditya Pinapala <psraditya30@codeaurora.org>
This commit is contained in:

committed by
Gerrit - the friendly Code Review server

부모
d236dbd5e0
커밋
8bc240b71d
@@ -759,6 +759,7 @@ int sde_connector_pre_kickoff(struct drm_connector *connector)
|
||||
struct sde_connector *c_conn;
|
||||
struct sde_connector_state *c_state;
|
||||
struct msm_display_kickoff_params params;
|
||||
struct dsi_display *display;
|
||||
int rc;
|
||||
|
||||
if (!connector) {
|
||||
@@ -773,6 +774,15 @@ int sde_connector_pre_kickoff(struct drm_connector *connector)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
/*
|
||||
* During pre kickoff DCS commands have to have an
|
||||
* asynchronous wait to avoid an unnecessary stall
|
||||
* in pre-kickoff. This flag must be reset at the
|
||||
* end of display pre-kickoff.
|
||||
*/
|
||||
display = (struct dsi_display *)c_conn->display;
|
||||
display->queue_cmd_waits = true;
|
||||
|
||||
rc = _sde_connector_update_dirty_properties(connector);
|
||||
if (rc) {
|
||||
SDE_EVT32(connector->base.id, SDE_EVTLOG_ERROR);
|
||||
@@ -789,6 +799,7 @@ int sde_connector_pre_kickoff(struct drm_connector *connector)
|
||||
|
||||
rc = c_conn->ops.pre_kickoff(connector, c_conn->display, ¶ms);
|
||||
|
||||
display->queue_cmd_waits = false;
|
||||
end:
|
||||
return rc;
|
||||
}
|
||||
|
Reference in New Issue
Block a user