diff mbox

[71/72] imx-drm: ipuv3-crtc: Disable overlay plane during crtc disable

Message ID 1414796095-10107-72-git-send-email-steve_longerbeam@mentor.com (mailing list archive)
State New, archived
Headers show

Commit Message

Steve Longerbeam Oct. 31, 2014, 10:54 p.m. UTC
If the overlay exists and is enabled, it must be disabled before
stopping the DI, otherwise DI synchronous display errors are the
result.

Signed-off-by: Steve Longerbeam <steve_longerbeam@mentor.com>
---
 drivers/staging/imx-drm/ipuv3-crtc.c |    8 ++++++++
 1 file changed, 8 insertions(+)
diff mbox

Patch

diff --git a/drivers/staging/imx-drm/ipuv3-crtc.c b/drivers/staging/imx-drm/ipuv3-crtc.c
index 7d5b691..b49d1b2 100644
--- a/drivers/staging/imx-drm/ipuv3-crtc.c
+++ b/drivers/staging/imx-drm/ipuv3-crtc.c
@@ -138,6 +138,14 @@  static void ipu_fb_disable(struct ipu_crtc *ipu_crtc)
 	if (!ipu_crtc->enabled)
 		return;
 
+	/*
+	 * If the overlay exists and is enabled, it must be disabled
+	 * before stopping the DI, otherwise DI synchronous display
+	 * errors are the result.
+	 */
+	if (ipu_crtc->have_overlay && ipu_crtc->plane[1].enabled)
+		ipu_plane_disable(&ipu_crtc->plane[1]);
+
 	/* Stop DC channel and DI before IDMAC */
 	ipu_dc_disable_channel(ipu_crtc->dc);
 	ipu_di_disable(ipu_crtc->di);