[PATCH v2] drm/atomic: Fix bookkeeping with TEST_ONLY, v2.

Daniel Stone daniel at fooishbar.org
Thu Aug 27 07:28:53 PDT 2015


On 27 August 2015 at 15:09, Ville Syrjälä <ville.syrjala at linux.intel.com> wrote:
> On Thu, Aug 27, 2015 at 04:00:05PM +0200, Maarten Lankhorst wrote:
>> Op 27-08-15 om 15:50 schreef Ville Syrjälä:
>> > I don't think so. Speaking for i915, I think we've just rejected legacy page
>> > flips entirely with the pipe is off on account of drm_vblank_get() failing.
>> No atomic driver handles this case correctly. You can't get vblank events with the crtc off.
> I don't understand what you're saying. Should there be a comma after
> "No" ? If not, then I'm not sure what they don't handle.

I think you're arguing over the definition of 'correctly' perhaps?

>> >> I don't see why this should be relaxed. It just complicates things and you have nothing to stick in for the vblank counter.
>> > We could stick the last vbl count/timestamp in there.
>> >
>> > Not allowing means userspace is forced to consider the dpms state
>> > whenever it wants to call the atomic ioctl.
>> Userspace was the one turning off the crtc in the first place; it shouldn't continue flipping but preserve power. :-)
> Meh. Much simpler to write code when you don't have to worry about such
> details.
> In the kernel it should amount to
> if (!pipe_active)
>         send_event

No, thankyou. Asking for an event, having the request succeed, and
never getting an event, is a deathtrap. PAGE_FLIP_EVENT should mean
that either an event gets delivered for every CRTC in crtc_state, or
the request getting rejected. Nothing else.

> We anyway need something like that for the crtc getting disabled case,
> don't we?

Yes, which I was getting at previously. We know when the CRTC gets
disabled - we have to, in order to sensibly unpin etc - so that's when
the event gets sent.


More information about the dri-devel mailing list