On Tue, Nov 10, 2015 at 05:37:31PM +0100, Thierry Reding wrote: > From: Daniel Vetter <daniel.vetter@xxxxxxxx> > > Apparently pre-nv50 pageflip events happen before the actual vblank > period. Therefore that functionality got semi-disabled in > > commit af4870e406126b7ac0ae7c7ce5751f25ebe60f28 > Author: Mario Kleiner <mario.kleiner.de@xxxxxxxxx> > Date: Tue May 13 00:42:08 2014 +0200 > > drm/nouveau/kms/nv04-nv40: fix pageflip events via special case. > > Unfortunately that hack got uprooted in > > commit cc1ef118fc099295ae6aabbacc8af94d8d8885eb > Author: Thierry Reding <treding@xxxxxxxxxx> > Date: Wed Aug 12 17:00:31 2015 +0200 > > drm/irq: Make pipe unsigned and name consistent > > Triggering a warning when trying to sample the vblank timestamp for a > non-existing pipe. There's a few ways to fix this: > > - Open-code the old behaviour, which just enshrines this slight > breakage of the userspace ABI. > > - Revert Mario's commit and again inflict broken timestamps, again not > pretty. > > - Fix this for real by delaying the pageflip TS until the next vblank > interrupt, thereby making it accurate. > > This patch implements the third option. Since having a page flip > interrupt that happens when the pageflip gets armed and not when it > completes in the next vblank seems to be fairly common (older i915 hw > works very similarly) create a new helper to arm vblank events for > such drivers. > > v2 (Mario Kleiner): > - Fix function prototypes in drmP.h > - Add missing vblank_put() for pageflip completion without > pageflip event. > - Initialize sequence number for queued pageflip event to avoid > trouble in drm_handle_vblank_events(). > - Remove dead code and spelling fix. > > v3 (Mario Kleiner): > - Add a signed-off-by and cc stable tag per Ilja's advice. > > v4 (Thierry Reding): > - Fix kerneldoc typo, discovered by Michel Dänzer > - Rearrange tags and changelog > > Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=106431 > Cc: Thierry Reding <treding@xxxxxxxxxx> > Cc: Mario Kleiner <mario.kleiner.de@xxxxxxxxx> > Cc: Ben Skeggs <bskeggs@xxxxxxxxxx> > Cc: Ilia Mirkin <imirkin@xxxxxxxxxxxx> > Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxxx> > Reviewed-by: Mario Kleiner <mario.kleiner.de@xxxxxxxxx> > Cc: stable@xxxxxxxxxxxxxxx # v4.3 > Signed-off-by: Mario Kleiner <mario.kleiner.de@xxxxxxxxx> > Signed-off-by: Thierry Reding <treding@xxxxxxxxxx> > --- > drivers/gpu/drm/drm_irq.c | 54 ++++++++++++++++++++++++++++++- > drivers/gpu/drm/nouveau/nouveau_display.c | 19 ++++++----- > include/drm/drmP.h | 4 +++ > 3 files changed, 68 insertions(+), 9 deletions(-) Hi Dave, It'd be great if you could queue this up for fixes, since it gets rid of a WARN_ON() that is triggered on a number of cards in v4.3. I realize that this is a tad big for stable, but it's the right way to fix this. If you'd prefer something smaller, I think we can fix the regression using a one-line band-aid and then apply this one on top for v4.4. Thierry
Attachment:
signature.asc
Description: PGP signature
_______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel