Skip to content

Commit

Permalink
drm/nvaa/mc: blacklist msi to off by default
Browse files Browse the repository at this point in the history
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
  • Loading branch information
Ben Skeggs committed Nov 8, 2013
1 parent 9a9d5c6 commit 0fef9d8
Showing 1 changed file with 19 additions and 11 deletions.
30 changes: 19 additions & 11 deletions drivers/gpu/drm/nouveau/core/subdev/mc/base.c
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ nouveau_mc_intr(int irq, void *arg)
if (intr == 0xffffffff) /* likely fallen off the bus */
intr = 0x00000000;

if (pmc->use_msi && oclass->msi_rearm)
if (pmc->use_msi)
oclass->msi_rearm(pmc);

if (intr) {
Expand Down Expand Up @@ -111,20 +111,28 @@ nouveau_mc_create_(struct nouveau_object *parent, struct nouveau_object *engine,
return ret;

switch (device->pdev->device & 0x0ff0) {
case 0x00f0: /* BR02? */
case 0x02e0: /* BR02? */
pmc->use_msi = false;
case 0x00f0:
case 0x02e0:
/* BR02? NFI how these would be handled yet exactly */
break;
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) {
pmc->use_msi = pci_enable_msi(device->pdev) == 0;
if (pmc->use_msi) {
nv_info(pmc, "MSI interrupts enabled\n");
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,
Expand Down

0 comments on commit 0fef9d8

Please sign in to comment.