瀏覽代碼

disp: msm: dsi: do not skip DSI CTRL init for DMS on first frame

For command mode panels, if a dynamic mode switch occurs on
the first frame, the current code skips DSI controller initialization
and registering for error handlers. This causes the software state
to be uninitialized for DSI CTRL, resulting in command transfer
failures and eventual crash. The change ensures that initialization
is complete even if the DMS occurs on first frame.

Change-Id: I83e3336f7c09424b6c7b95826c30b37974ec29ab
Signed-off-by: Lipsa Rout <[email protected]>
Signed-off-by: Satya Rama Aditya Pinapala <[email protected]>
Satya Rama Aditya Pinapala 5 年之前
父節點
當前提交
918f7479dd
共有 1 個文件被更改,包括 7 次插入5 次删除
  1. 7 5
      msm/dsi/dsi_display.c

+ 7 - 5
msm/dsi/dsi_display.c

@@ -6921,12 +6921,14 @@ int dsi_display_prepare(struct dsi_display *display)
 			goto error;
 			goto error;
 		}
 		}
 
 
-		/* update dsi ctrl for new mode */
-		rc = dsi_display_pre_switch(display);
-		if (rc)
-			DSI_ERR("[%s] panel pre-prepare-res-switch failed, rc=%d\n",
+		if (!display->is_cont_splash_enabled) {
+			/* update dsi ctrl for new mode */
+			rc = dsi_display_pre_switch(display);
+			if (rc)
+				DSI_ERR("[%s] panel pre-switch failed, rc=%d\n",
 					display->name, rc);
 					display->name, rc);
-		goto error;
+			goto error;
+		}
 	}
 	}
 
 
 	if (!(mode->dsi_mode_flags & DSI_MODE_FLAG_POMS) &&
 	if (!(mode->dsi_mode_flags & DSI_MODE_FLAG_POMS) &&