drm/nouveau/pci/msi: disable MSI on big-endian platforms by default
authorIlia Mirkin <imirkin@alum.mit.edu>
Thu, 10 Aug 2017 16:13:40 +0000 (12:13 -0400)
committerBen Skeggs <bskeggs@redhat.com>
Tue, 22 Aug 2017 08:04:36 +0000 (18:04 +1000)
It appears that MSI does not work on either G5 PPC nor on a E5500-based
platform, where other hardware is reported to work fine with MSI.

Both tests were conducted with NV4x hardware, so perhaps other (or even
this) hardware can be made to work. It's still possible to force-enable
with config=NvMSI=1 on load.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: stable@vger.kernel.org
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/nvkm/subdev/pci/base.c

index eb9b278198b229672df91bf6426432ee7d6f9f65..a4cb82495cee3e1d4910cdb295bcd25509baa8a1 100644 (file)
@@ -192,6 +192,10 @@ nvkm_pci_new_(const struct nvkm_pci_func *func, struct nvkm_device *device,
                }
        }
 
+#ifdef __BIG_ENDIAN
+       pci->msi = false;
+#endif
+
        pci->msi = nvkm_boolopt(device->cfgopt, "NvMSI", pci->msi);
        if (pci->msi && func->msi_rearm) {
                pci->msi = pci_enable_msi(pci->pdev) == 0;