|
@@ -1181,6 +1181,8 @@ EXPORT_SYMBOL_GPL(pci_load_and_free_saved_state);
|
|
|
static int do_pci_enable_device(struct pci_dev *dev, int bars)
|
|
|
{
|
|
|
int err;
|
|
|
+ u16 cmd;
|
|
|
+ u8 pin;
|
|
|
|
|
|
err = pci_set_power_state(dev, PCI_D0);
|
|
|
if (err < 0 && err != -EIO)
|
|
@@ -1190,6 +1192,14 @@ static int do_pci_enable_device(struct pci_dev *dev, int bars)
|
|
|
return err;
|
|
|
pci_fixup_device(pci_fixup_enable, dev);
|
|
|
|
|
|
+ pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &pin);
|
|
|
+ if (pin) {
|
|
|
+ pci_read_config_word(dev, PCI_COMMAND, &cmd);
|
|
|
+ if (cmd & PCI_COMMAND_INTX_DISABLE)
|
|
|
+ pci_write_config_word(dev, PCI_COMMAND,
|
|
|
+ cmd & ~PCI_COMMAND_INTX_DISABLE);
|
|
|
+ }
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|