Re: [PATCH v1.1 2/2] drm: rcar-du: Repair vblank for DRM page flips using the VSP1

From: Laurent Pinchart
Date: Sun Jul 02 2017 - 10:23:32 EST


Hi Morimoto-san,

On Friday 30 Jun 2017 08:32:04 Kuninori Morimoto wrote:
> Hi Kieran
>
> > -static void rcar_du_vsp_complete(void *private)
> > +static void rcar_du_vsp_complete(void *private, bool completed)
> > {
> > struct rcar_du_crtc *crtc = private;
> >
> > - rcar_du_crtc_finish_page_flip(crtc);
> > + if (crtc->vblank_enable)
> > + drm_crtc_handle_vblank(&crtc->crtc);
> > +
> > + if (completed)
> > + rcar_du_crtc_finish_page_flip(crtc);
> > }
>
> Here, this "vblank_enable" flag, timestamp will be update on
> drm_crtc_handle_vblank().
>
> For example modetest Flip test, if we stop it by Ctrl+C, then, vblank_enable
> will be false, Then, vblank timestamp isn't updated on waiting method on
> drm_atomic_helper_wait_for_vblanks(). Thus we will have timeout error.

I've noticed this issue as well when testing Kieran's patch, and I will fix
it.

> And, print complete is now indicated on VSP Frame End,
> in interlace input case, print complete will be indicated to user
> on each ODD, EVEN timing.
>
> Before this patch, for example 1080i@60Hz, print complete indication
> happen in 30Hz.
> After this patch, in interlace case, indication coming 60Hz

Isn't this to be expected ? In 1080i@60Hz the frame rate is 60 frames per
second, so shouldn't vertical blanking be reported at 60Hz ?

--
Regards,

Laurent Pinchart