vserver 1.9.3
[linux-2.6.git] / drivers / pci / pci.c
index e3c97d9..46d56c8 100644 (file)
@@ -291,10 +291,7 @@ pci_set_power_state(struct pci_dev *dev, int state)
        /* Mandatory power management transition delays */
        /* see PCI PM 1.1 5.6.1 table 18 */
        if(state == 3 || dev->current_state == 3)
-       {
-               set_current_state(TASK_UNINTERRUPTIBLE);
-               schedule_timeout(HZ/100);
-       }
+               msleep(10);
        else if(state == 2 || dev->current_state == 2)
                udelay(200);
        dev->current_state = state;
@@ -442,7 +439,7 @@ int pci_enable_wake(struct pci_dev *dev, u32 state, int enable)
        pci_read_config_word(dev,pm+PCI_PM_PMC,&value);
 
        value &= PCI_PM_CAP_PME_MASK;
-       value >>= ffs(value);   /* First bit of mask */
+       value >>= ffs(PCI_PM_CAP_PME_MASK) - 1;   /* First bit of mask */
 
        /* Check if it can generate PME# from requested state. */
        if (!value || !(value & (1 << state))) 
@@ -748,7 +745,7 @@ static int __devinit pci_init(void)
        struct pci_dev *dev = NULL;
 
        while ((dev = pci_find_device(PCI_ANY_ID, PCI_ANY_ID, dev)) != NULL) {
-               pci_fixup_device(PCI_FIXUP_FINAL, dev);
+               pci_fixup_device(pci_fixup_final, dev);
        }
        return 0;
 }