[PATCH] drm/stm: ltdc: check crtc state before enabling LIE

Subsystems: drm drivers, drm drivers and misc gpu patches, the rest

STALE2412d

3 messages, 3 authors, 2020-02-04 · open the first message on its own page

[PATCH] drm/stm: ltdc: check crtc state before enabling LIE

From: Yannick Fertre <hidden>
Date: 2020-01-21 10:14:22

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 <redacted>
---
 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 c2815e8..ea654c7 100644
--- a/drivers/gpu/drm/stm/ltdc.c
+++ b/drivers/gpu/drm/stm/ltdc.c
@@ -648,9 +648,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.7.4


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

Re: [PATCH] drm/stm: ltdc: check crtc state before enabling LIE

From: Philippe CORNU <hidden>
Date: 2020-01-23 09:50:30

Dear Yannick,
Thank you for your patch,

Acked-by: Philippe Cornu <redacted>

Philippe :-)

On 1/21/20 11:14 AM, Yannick Fertre wrote:
quoted hunk
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 <redacted>
---
  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 c2815e8..ea654c7 100644
--- a/drivers/gpu/drm/stm/ltdc.c
+++ b/drivers/gpu/drm/stm/ltdc.c
@@ -648,9 +648,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;
  }
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

Re: [PATCH] drm/stm: ltdc: check crtc state before enabling LIE

From: Benjamin Gaignard <hidden>
Date: 2020-02-04 10:58:43

Le jeu. 23 janv. 2020 à 10:50, Philippe CORNU [off-list ref] a écrit :
Dear Yannick,
Thank you for your patch,

Acked-by: Philippe Cornu <redacted>

Philippe :-)

On 1/21/20 11:14 AM, Yannick Fertre wrote:
quoted
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.
Applied on drm-misc-next.

Thanks
Benjamin
quoted
Signed-off-by: Yannick Fertre <redacted>
---
  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 c2815e8..ea654c7 100644
--- a/drivers/gpu/drm/stm/ltdc.c
+++ b/drivers/gpu/drm/stm/ltdc.c
@@ -648,9 +648,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;
  }
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help