| From 7d3428cd4b2ad51af86fdbdf8284ca38fa95e601 Mon Sep 17 00:00:00 2001 |
| From: Ilia Mirkin <imirkin@alum.mit.edu> |
| Date: Wed, 29 Jan 2014 19:53:00 -0500 |
| Subject: drm/nouveau: set irq_enabled manually |
| |
| From: Ilia Mirkin <imirkin@alum.mit.edu> |
| |
| commit 7d3428cd4b2ad51af86fdbdf8284ca38fa95e601 upstream. |
| |
| 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@gmail.com> |
| Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> |
| Signed-off-by: Ben Skeggs <bskeggs@redhat.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/gpu/drm/nouveau/nouveau_drm.c | 3 +++ |
| 1 file changed, 3 insertions(+) |
| |
| --- 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, |
| 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); |
| |