disp: msm: dsi: trigger broadcast commands using DMA start window

As per the HW requirements it is highly recommended to use DMA start
window to trigger  broadcast commands. If not used then it can
result in a hardware hang with the DSI controllers going out
of sync. This behavior is even more prominent in cases of higher
refresh rates. As part of the change we change the default DMA
scheduling behavior to default to maximum possible DMA window
in case it is not specified in the panel device tree.

Change-Id: Ied4df9063664cedbc18ce009054d4e5ecae30ab2
Signed-off-by: Satya Rama Aditya Pinapala <psraditya30@codeaurora.org>
This commit is contained in:
Satya Rama Aditya Pinapala
2020-11-25 15:11:17 -08:00
parent ee8ad711e9
commit ae5b602b4f
6 changed files with 26 additions and 14 deletions

View File

@@ -246,6 +246,9 @@ static void dsi_bridge_enable(struct drm_bridge *bridge)
DSI_ERR("[%d] DSI display post enabled failed, rc=%d\n",
c_bridge->id, rc);
if (display)
display->enabled = true;
if (display && display->drm_conn) {
sde_connector_helper_bridge_enable(display->drm_conn);
if (c_bridge->dsi_mode.dsi_mode_flags & DSI_MODE_FLAG_POMS)
@@ -269,6 +272,9 @@ static void dsi_bridge_disable(struct drm_bridge *bridge)
private_flags =
bridge->encoder->crtc->state->adjusted_mode.private_flags;
if (display)
display->enabled = false;
if (display && display->drm_conn) {
display->poms_pending =
private_flags & MSM_MODE_FLAG_SEAMLESS_POMS;