From: Yannick Fertre <yannick.fer...@st.com>

[ Upstream commit a6bd58c51ac43083f3977057a7ad668def55812f ]

Following investigations of a hardware bug, the LIE interrupt
can occur while the display controller is not activated.
LIE interrupt (vblank) don't have to be set if the CRTC is not
enabled.

Signed-off-by: Yannick Fertre <yannick.fer...@st.com>
Acked-by: Philippe Cornu <philippe.co...@st.com>
Signed-off-by: Benjamin Gaignard <benjamin.gaign...@st.com>
Link: 
https://patchwork.freedesktop.org/patch/msgid/1579601650-7055-1-git-send-email-yannick.fer...@st.com
Signed-off-by: Sasha Levin <sas...@kernel.org>
---
 drivers/gpu/drm/stm/ltdc.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/stm/ltdc.c b/drivers/gpu/drm/stm/ltdc.c
index 3ab4fbf8eb0d1..2526dfb77401c 100644
--- a/drivers/gpu/drm/stm/ltdc.c
+++ b/drivers/gpu/drm/stm/ltdc.c
@@ -653,9 +653,14 @@ static const struct drm_crtc_helper_funcs 
ltdc_crtc_helper_funcs = {
 static int ltdc_crtc_enable_vblank(struct drm_crtc *crtc)
 {
        struct ltdc_device *ldev = crtc_to_ltdc(crtc);
+       struct drm_crtc_state *state = crtc->state;
 
        DRM_DEBUG_DRIVER("\n");
-       reg_set(ldev->regs, LTDC_IER, IER_LIE);
+
+       if (state->enable)
+               reg_set(ldev->regs, LTDC_IER, IER_LIE);
+       else
+               return -EPERM;
 
        return 0;
 }
-- 
2.20.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to