Re: [PATCH 3/3] drm/i915: Use vblank evade mechanism in mmio_flip

Daniel Vetter
2014-11-03T19:24:09Z

On Mon, Nov 3, 2014 at 8:13 PM, Paulo Zanoni <przanoni@gmail.com> wrote:
> 2014-11-03 16:53 GMT-02:00 Daniel Vetter <daniel@ffwll.ch>:
>> On Mon, Nov 3, 2014 at 7:37 PM, Paulo Zanoni <przanoni@gmail.com> wrote:
>>> Besides this, my only worry is what is going to happen if we disable
>>> the CRTC or plane (or even suspend - S3 or runtime - or something like
>>> that) after we schedule the work, but before the work actually
>>> happens. Isn't it possible to end up accidentally reenabling something
>>> that was just disabled? We can't seem to queue a new flip before the
>>> current one finishes, but maybe we can shut down the CRTC while the
>>> work is scheduled? I don't know much about vblanks to properly answer
>>> that, so I'll let Daniel/Ville take a look at this.
>>
>> We do wait for pageflips to complete before disabling the crtc or
>> updating the framebuffer.
>
> But, as far as I can see, those functions do not take into
> consideration the new workqueue added by this patch.

Well we wait for the flip to happen. How that happens shouldn't really
matter at all - the flip only completes on the next vblank, which
might actaully be a lot later than when the work item has run. It's
guaranteed to be after the mmio writes though.
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch