Skip to content

Commit

Permalink
PCI MSI: always toggle legacy-INTx-enable bit upon MSI entry/exit
Browse files Browse the repository at this point in the history
The current code (prior to this change) would disable the PCI INTx
legacy interrupt when enabling MSI... but only on PCI Express.  We
should do this for all MSI devices, for safety's sake.

Signed-off-by: Jeff Garzik <jeff@garzik.org>
  • Loading branch information
Jeff Garzik committed Dec 7, 2006
1 parent ff51a98 commit 1769b46
Showing 1 changed file with 4 additions and 8 deletions.
12 changes: 4 additions & 8 deletions drivers/pci/msi.c
Original file line number Diff line number Diff line change
Expand Up @@ -255,10 +255,8 @@ static void enable_msi_mode(struct pci_dev *dev, int pos, int type)
pci_write_config_word(dev, msi_control_reg(pos), control);
dev->msix_enabled = 1;
}
if (pci_find_capability(dev, PCI_CAP_ID_EXP)) {
/* PCI Express Endpoint device detected */
pci_intx(dev, 0); /* disable intx */
}

pci_intx(dev, 0); /* disable intx */
}

void disable_msi_mode(struct pci_dev *dev, int pos, int type)
Expand All @@ -276,10 +274,8 @@ void disable_msi_mode(struct pci_dev *dev, int pos, int type)
pci_write_config_word(dev, msi_control_reg(pos), control);
dev->msix_enabled = 0;
}
if (pci_find_capability(dev, PCI_CAP_ID_EXP)) {
/* PCI Express Endpoint device detected */
pci_intx(dev, 1); /* enable intx */
}

pci_intx(dev, 1); /* enable intx */
}

static int msi_lookup_irq(struct pci_dev *dev, int type)
Expand Down

0 comments on commit 1769b46

Please sign in to comment.