OSDN Git Service

drm/nouveau/pci: do a msi rearm on init
authorKarol Herbst <kherbst@redhat.com>
Fri, 24 Nov 2017 02:56:26 +0000 (03:56 +0100)
committerBen Skeggs <bskeggs@redhat.com>
Tue, 19 Dec 2017 00:16:37 +0000 (10:16 +1000)
On my GP107 when I load nouveau after unloading it, for some reason the
GPU stopped sending or the CPU stopped receiving interrupts if MSI was
enabled.

Doing a rearm once before getting any interrupts fixes this.

Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/nvkm/subdev/pci/base.c

index b1b1f36..deb96de 100644 (file)
@@ -136,6 +136,13 @@ nvkm_pci_init(struct nvkm_subdev *subdev)
                return ret;
 
        pci->irq = pdev->irq;
+
+       /* Ensure MSI interrupts are armed, for the case where there are
+        * already interrupts pending (for whatever reason) at load time.
+        */
+       if (pci->msi)
+               pci->func->msi_rearm(pci);
+
        return ret;
 }