2019-04-01 07:26:22

by Yannick FERTRE

[permalink] [raw]
Subject: [PATCH] drm/stm: ltdc: update planes at next vblank to avoid partial refresh

Plane updates must be synchronized on vblank with the shadow register mechanism
to avoid partial refresh on screen.

Signed-off-by: Yannick Fertré <[email protected]>
---
drivers/gpu/drm/stm/ltdc.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/stm/ltdc.c b/drivers/gpu/drm/stm/ltdc.c
index b1741a9..c2d0800 100644
--- a/drivers/gpu/drm/stm/ltdc.c
+++ b/drivers/gpu/drm/stm/ltdc.c
@@ -426,8 +426,8 @@ static void ltdc_crtc_atomic_enable(struct drm_crtc *crtc,
/* Enable IRQ */
reg_set(ldev->regs, LTDC_IER, IER_RRIE | IER_FUIE | IER_TERRIE);

- /* Immediately commit the planes */
- reg_set(ldev->regs, LTDC_SRCR, SRCR_IMR);
+ /* Commit shadow registers = update planes at next vblank */
+ reg_set(ldev->regs, LTDC_SRCR, SRCR_VBR);

/* Enable LTDC */
reg_set(ldev->regs, LTDC_GCR, GCR_LTDCEN);
--
2.7.4


2019-04-01 09:24:05

by Philippe Cornu

[permalink] [raw]
Subject: Re: [PATCH] drm/stm: ltdc: update planes at next vblank to avoid partial refresh

Dear Yannick,
Thank you for your patch, works fine,

Acked-by: Philippe Cornu <[email protected]>

Philippe :-)

On 4/1/19 9:24 AM, Yannick Fertré wrote:
> Plane updates must be synchronized on vblank with the shadow register mechanism
> to avoid partial refresh on screen.
>
> Signed-off-by: Yannick Fertré <[email protected]>
> ---
> drivers/gpu/drm/stm/ltdc.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/stm/ltdc.c b/drivers/gpu/drm/stm/ltdc.c
> index b1741a9..c2d0800 100644
> --- a/drivers/gpu/drm/stm/ltdc.c
> +++ b/drivers/gpu/drm/stm/ltdc.c
> @@ -426,8 +426,8 @@ static void ltdc_crtc_atomic_enable(struct drm_crtc *crtc,
> /* Enable IRQ */
> reg_set(ldev->regs, LTDC_IER, IER_RRIE | IER_FUIE | IER_TERRIE);
>
> - /* Immediately commit the planes */
> - reg_set(ldev->regs, LTDC_SRCR, SRCR_IMR);
> + /* Commit shadow registers = update planes at next vblank */
> + reg_set(ldev->regs, LTDC_SRCR, SRCR_VBR);
>
> /* Enable LTDC */
> reg_set(ldev->regs, LTDC_GCR, GCR_LTDCEN);
>

2019-04-24 19:35:47

by Benjamin Gaignard

[permalink] [raw]
Subject: Re: [PATCH] drm/stm: ltdc: update planes at next vblank to avoid partial refresh

Le lun. 1 avr. 2019 à 11:22, Philippe CORNU <[email protected]> a écrit :
>
> Dear Yannick,
> Thank you for your patch, works fine,
>
> Acked-by: Philippe Cornu <[email protected]>
>
Applied on drm-misc-next,
Thanks,
Benjamin

> Philippe :-)
>
> On 4/1/19 9:24 AM, Yannick Fertré wrote:
> > Plane updates must be synchronized on vblank with the shadow register mechanism
> > to avoid partial refresh on screen.
> >
> > Signed-off-by: Yannick Fertré <[email protected]>
> > ---
> > drivers/gpu/drm/stm/ltdc.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/stm/ltdc.c b/drivers/gpu/drm/stm/ltdc.c
> > index b1741a9..c2d0800 100644
> > --- a/drivers/gpu/drm/stm/ltdc.c
> > +++ b/drivers/gpu/drm/stm/ltdc.c
> > @@ -426,8 +426,8 @@ static void ltdc_crtc_atomic_enable(struct drm_crtc *crtc,
> > /* Enable IRQ */
> > reg_set(ldev->regs, LTDC_IER, IER_RRIE | IER_FUIE | IER_TERRIE);
> >
> > - /* Immediately commit the planes */
> > - reg_set(ldev->regs, LTDC_SRCR, SRCR_IMR);
> > + /* Commit shadow registers = update planes at next vblank */
> > + reg_set(ldev->regs, LTDC_SRCR, SRCR_VBR);
> >
> > /* Enable LTDC */
> > reg_set(ldev->regs, LTDC_GCR, GCR_LTDCEN);
> >
> _______________________________________________
> dri-devel mailing list
> [email protected]
> https://lists.freedesktop.org/mailman/listinfo/dri-devel