From 7d3428cd4b2ad51af86fdbdf8284ca38fa95e601 Mon Sep 17 00:00:00 2001
From: Ilia Mirkin <imirkin@alum.mit.edu>
Date: Thu, 30 Jan 2014 00:53:00 +0000
Subject: drm/nouveau: set irq_enabled manually
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>
Cc: stable@vger.kernel.org # 3.10+
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
---
diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c
index 78c8e71..89c484d 100644
a
|
b
|
nouveau_drm_load(struct drm_device *dev, unsigned long flags) |
376 | 376 | if (ret) |
377 | 377 | goto fail_device; |
378 | 378 | |
| 379 | dev->irq_enabled = true; |
| 380 | |
379 | 381 | /* workaround an odd issue on nvc1 by disabling the device's |
380 | 382 | * nosnoop capability. hopefully won't cause issues until a |
381 | 383 | * better fix is found - assuming there is one... |
… |
… |
nouveau_drm_remove(struct pci_dev *pdev) |
475 | 477 | struct nouveau_drm *drm = nouveau_drm(dev); |
476 | 478 | struct nouveau_object *device; |
477 | 479 | |
| 480 | dev->irq_enabled = false; |
478 | 481 | device = drm->client.base.device; |
479 | 482 | drm_put_dev(dev); |
480 | 483 | |