dri-devel.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] drm:atmel: Enable the crtc vblank prior to crtc usage.
@ 2021-06-02 16:08 Dan Sneddon
  2021-06-18  8:05 ` Nicolas Ferre
  0 siblings, 1 reply; 3+ messages in thread
From: Dan Sneddon @ 2021-06-02 16:08 UTC (permalink / raw)
  To: Sam Ravnborg, Daniel Vetter, dri-devel, linux-arm-kernel, linux-kernel
  Cc: Alexandre Belloni, Boris Brezillon, David Airlie, Dan Sneddon,
	Nicolas Ferre, Ludovic Desroches

'commit eec44d44a3d2 ("drm/atmel: Use drm_atomic_helper_commit")'
removed the home-grown handling of atomic commits and exposed an issue
in the crtc atomic commit handling where vblank is expected to be
enabled but hasn't yet, causing kernel warnings during boot.  This patch
cleans up the crtc vblank handling thus removing the warning on boot.

Fixes: eec44d44a3d2 ("drm/atmel: Use drm_atomic_helper_commit")

Signed-off-by: Dan Sneddon <dan.sneddon@microchip.com>
---
 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c
index 05ad75d155e8..cfe4fc69277e 100644
--- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c
+++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c
@@ -232,7 +232,6 @@ static void atmel_hlcdc_crtc_atomic_enable(struct drm_crtc *c,
 
 	pm_runtime_put_sync(dev->dev);
 
-	drm_crtc_vblank_on(c);
 }
 
 #define ATMEL_HLCDC_RGB444_OUTPUT	BIT(0)
@@ -343,8 +342,17 @@ static int atmel_hlcdc_crtc_atomic_check(struct drm_crtc *c,
 
 static void atmel_hlcdc_crtc_atomic_begin(struct drm_crtc *c,
 					  struct drm_atomic_state *state)
+{
+	drm_crtc_vblank_on(c);
+}
+
+static void atmel_hlcdc_crtc_atomic_flush(struct drm_crtc *c,
+					  struct drm_atomic_state *state)
 {
 	struct atmel_hlcdc_crtc *crtc = drm_crtc_to_atmel_hlcdc_crtc(c);
+	unsigned long flags;
+
+	spin_lock_irqsave(&c->dev->event_lock, flags);
 
 	if (c->state->event) {
 		c->state->event->pipe = drm_crtc_index(c);
@@ -354,12 +362,7 @@ static void atmel_hlcdc_crtc_atomic_begin(struct drm_crtc *c,
 		crtc->event = c->state->event;
 		c->state->event = NULL;
 	}
-}
-
-static void atmel_hlcdc_crtc_atomic_flush(struct drm_crtc *crtc,
-					  struct drm_atomic_state *state)
-{
-	/* TODO: write common plane control register if available */
+	spin_unlock_irqrestore(&c->dev->event_lock, flags);
 }
 
 static const struct drm_crtc_helper_funcs lcdc_crtc_helper_funcs = {
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] drm:atmel: Enable the crtc vblank prior to crtc usage.
  2021-06-02 16:08 [PATCH] drm:atmel: Enable the crtc vblank prior to crtc usage Dan Sneddon
@ 2021-06-18  8:05 ` Nicolas Ferre
  2021-06-19 20:28   ` Sam Ravnborg
  0 siblings, 1 reply; 3+ messages in thread
From: Nicolas Ferre @ 2021-06-18  8:05 UTC (permalink / raw)
  To: Dan Sneddon, Sam Ravnborg, Daniel Vetter, dri-devel,
	linux-arm-kernel, linux-kernel
  Cc: David Airlie, Alexandre Belloni, Ludovic Desroches, Boris Brezillon

Hi Daniel, Sam,

On 02/06/2021 at 18:08, Dan Sneddon wrote:
> 'commit eec44d44a3d2 ("drm/atmel: Use drm_atomic_helper_commit")'
> removed the home-grown handling of atomic commits and exposed an issue
> in the crtc atomic commit handling where vblank is expected to be
> enabled but hasn't yet, causing kernel warnings during boot.  This patch
> cleans up the crtc vblank handling thus removing the warning on boot.
> 
> Fixes: eec44d44a3d2 ("drm/atmel: Use drm_atomic_helper_commit")
> 
> Signed-off-by: Dan Sneddon <dan.sneddon@microchip.com>

Is this fix need more input from us, is there something missing (aka ping)?

Regards,
   Nicolas


> ---
>   drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c | 17 ++++++++++-------
>   1 file changed, 10 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c
> index 05ad75d155e8..cfe4fc69277e 100644
> --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c
> +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c
> @@ -232,7 +232,6 @@ static void atmel_hlcdc_crtc_atomic_enable(struct drm_crtc *c,
>   
>   	pm_runtime_put_sync(dev->dev);
>   
> -	drm_crtc_vblank_on(c);
>   }
>   
>   #define ATMEL_HLCDC_RGB444_OUTPUT	BIT(0)
> @@ -343,8 +342,17 @@ static int atmel_hlcdc_crtc_atomic_check(struct drm_crtc *c,
>   
>   static void atmel_hlcdc_crtc_atomic_begin(struct drm_crtc *c,
>   					  struct drm_atomic_state *state)
> +{
> +	drm_crtc_vblank_on(c);
> +}
> +
> +static void atmel_hlcdc_crtc_atomic_flush(struct drm_crtc *c,
> +					  struct drm_atomic_state *state)
>   {
>   	struct atmel_hlcdc_crtc *crtc = drm_crtc_to_atmel_hlcdc_crtc(c);
> +	unsigned long flags;
> +
> +	spin_lock_irqsave(&c->dev->event_lock, flags);
>   
>   	if (c->state->event) {
>   		c->state->event->pipe = drm_crtc_index(c);
> @@ -354,12 +362,7 @@ static void atmel_hlcdc_crtc_atomic_begin(struct drm_crtc *c,
>   		crtc->event = c->state->event;
>   		c->state->event = NULL;
>   	}
> -}
> -
> -static void atmel_hlcdc_crtc_atomic_flush(struct drm_crtc *crtc,
> -					  struct drm_atomic_state *state)
> -{
> -	/* TODO: write common plane control register if available */
> +	spin_unlock_irqrestore(&c->dev->event_lock, flags);
>   }
>   
>   static const struct drm_crtc_helper_funcs lcdc_crtc_helper_funcs = {
> 


-- 
Nicolas Ferre

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] drm:atmel: Enable the crtc vblank prior to crtc usage.
  2021-06-18  8:05 ` Nicolas Ferre
@ 2021-06-19 20:28   ` Sam Ravnborg
  0 siblings, 0 replies; 3+ messages in thread
From: Sam Ravnborg @ 2021-06-19 20:28 UTC (permalink / raw)
  To: Nicolas Ferre
  Cc: Alexandre Belloni, Boris Brezillon, David Airlie, Daniel Vetter,
	Dan Sneddon, linux-kernel, dri-devel, Ludovic Desroches,
	linux-arm-kernel

Hi Nicolas/Dan,

On Fri, Jun 18, 2021 at 10:05:11AM +0200, Nicolas Ferre wrote:
> Hi Daniel, Sam,
> 
> On 02/06/2021 at 18:08, Dan Sneddon wrote:
> > 'commit eec44d44a3d2 ("drm/atmel: Use drm_atomic_helper_commit")'
> > removed the home-grown handling of atomic commits and exposed an issue
> > in the crtc atomic commit handling where vblank is expected to be
> > enabled but hasn't yet, causing kernel warnings during boot.  This patch
> > cleans up the crtc vblank handling thus removing the warning on boot.
> > 
> > Fixes: eec44d44a3d2 ("drm/atmel: Use drm_atomic_helper_commit")
> > 
> > Signed-off-by: Dan Sneddon <dan.sneddon@microchip.com>
> 
> Is this fix need more input from us, is there something missing (aka ping)?

Sorry for the loong response time.
I have been off-line for a while. Moved to a new house where some
renovation was needed so it got priority (and still does).

Thanks for the path - patch applied to drm-misc-fixes now.

	Sam

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-06-19 20:28 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-02 16:08 [PATCH] drm:atmel: Enable the crtc vblank prior to crtc usage Dan Sneddon
2021-06-18  8:05 ` Nicolas Ferre
2021-06-19 20:28   ` Sam Ravnborg

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).