I can confirm that this patch fixes the problem. (had to change spaces to tabs, but that was probably just screwed up by mail) 2014-01-30, Ilia Mirkin <imirkin@xxxxxxxxxxxx>: > Since commit 0fa9061ae8c ("drm/nouveau/mc: handle irq-related setup > ourselves"), drm_device->irq_enabled remained unset. This is needed in > order to properly wait for a vblank event in the generic drm code. > > See https://bugs.freedesktop.org/show_bug.cgi?id=74195 > > Reported-by: Jan Janecek <janjanjanx@xxxxxxxxx> > Signed-off-by: Ilia Mirkin <imirkin@xxxxxxxxxxxx> > Cc: stable@xxxxxxxxxxxxxxx # 3.10+ > --- > > TBH, not sure why this fixes things, as irq_enabled == false should have > caused the vblank wait to not wait, since the condition would be > immediately true. > > Jan, mind double-checking that this version of the patch fixes things > for you? Not 100% sure where you stuck the irq_enabled=true line when you > tried it out. > > drivers/gpu/drm/nouveau/nouveau_drm.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c > b/drivers/gpu/drm/nouveau/nouveau_drm.c > index bfd02410..3ba7b62 100644 > --- a/drivers/gpu/drm/nouveau/nouveau_drm.c > +++ b/drivers/gpu/drm/nouveau/nouveau_drm.c > @@ -376,6 +376,8 @@ nouveau_drm_load(struct drm_device *dev, unsigned long > flags) > if (ret) > goto fail_device; > > + dev->irq_enabled = true; > + > /* workaround an odd issue on nvc1 by disabling the device's > * nosnoop capability. hopefully won't cause issues until a > * better fix is found - assuming there is one... > @@ -475,6 +477,7 @@ nouveau_drm_remove(struct pci_dev *pdev) > struct nouveau_drm *drm = nouveau_drm(dev); > struct nouveau_object *device; > > + dev->irq_enabled = false; > device = drm->client.base.device; > drm_put_dev(dev); > > -- > 1.8.3.2 > > _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel