[PATCH 5/5] drm/i915: Allow vblank interrupts during modeset and eliminate some vblank races (original) (raw)

Michel Dänzer michel at daenzer.net
Mon Feb 24 18:58:26 PST 2014


On Mon, 2014-02-24 at 14:11 +0200, Ville Syrjälä wrote:

On Mon, Feb 24, 2014 at 12:48:55PM +0900, Michel Dänzer wrote: > On Fre, 2014-02-21 at 21:03 +0200, ville.syrjala at linux.intel.com wrote: > > > > We can kill of the drmvblank{pre,post}modeset() calls since those are > > there simply to make drmvblankget() fail during a modeset. > > Actually, their original purpose was to keep the DRM vblank counter > consistent across modesets, assuming the modeset resets the hardware > vblank counter.

I see. Well, actually I really don't. The code is too funky for me to tell what it actually ends up doing. The obvious way would be to resample the hardware counter at drmvblankpostmodeset(), which the code certainly doesn't do. But maybe it did something sensible in the past.

When the pre/post-modeset hooks were originally added, it worked like this: the pre-modeset hook enabled the vblank interrupt, which updated the DRM vblank counter from the driver/HW counter. The post-modeset hook disabled the vblank interrupt again, which recorded the post-modeset driver/HW counter value.

But the vblank code has changed a lot since then, not sure it still works like that.

-- Earthling Michel Dänzer | http://www.amd.com Libre software enthusiast | Mesa and X developer



More information about the dri-devel mailing list