Commit 0fef9d8a authored by Ben Skeggs's avatar Ben Skeggs

drm/nvaa/mc: blacklist msi to off by default

Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 9a9d5c64
...@@ -42,7 +42,7 @@ nouveau_mc_intr(int irq, void *arg) ...@@ -42,7 +42,7 @@ nouveau_mc_intr(int irq, void *arg)
if (intr == 0xffffffff) /* likely fallen off the bus */ if (intr == 0xffffffff) /* likely fallen off the bus */
intr = 0x00000000; intr = 0x00000000;
if (pmc->use_msi && oclass->msi_rearm) if (pmc->use_msi)
oclass->msi_rearm(pmc); oclass->msi_rearm(pmc);
if (intr) { if (intr) {
...@@ -111,20 +111,28 @@ nouveau_mc_create_(struct nouveau_object *parent, struct nouveau_object *engine, ...@@ -111,20 +111,28 @@ nouveau_mc_create_(struct nouveau_object *parent, struct nouveau_object *engine,
return ret; return ret;
switch (device->pdev->device & 0x0ff0) { switch (device->pdev->device & 0x0ff0) {
case 0x00f0: /* BR02? */ case 0x00f0:
case 0x02e0: /* BR02? */ case 0x02e0:
pmc->use_msi = false; /* BR02? NFI how these would be handled yet exactly */
break; break;
default: default:
pmc->use_msi = nouveau_boolopt(device->cfgopt, "NvMSI", true); switch (device->chipset) {
case 0xaa: break; /* reported broken, nv also disable it */
default:
pmc->use_msi = true;
break;
}
}
pmc->use_msi = nouveau_boolopt(device->cfgopt, "NvMSI", pmc->use_msi);
if (pmc->use_msi && oclass->msi_rearm) {
pmc->use_msi = pci_enable_msi(device->pdev) == 0;
if (pmc->use_msi) { if (pmc->use_msi) {
pmc->use_msi = pci_enable_msi(device->pdev) == 0; nv_info(pmc, "MSI interrupts enabled\n");
if (pmc->use_msi) { oclass->msi_rearm(pmc);
nv_info(pmc, "MSI interrupts enabled\n");
oclass->msi_rearm(pmc);
}
} }
break; } else {
pmc->use_msi = false;
} }
ret = request_irq(device->pdev->irq, nouveau_mc_intr, ret = request_irq(device->pdev->irq, nouveau_mc_intr,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment