Pull percpu-dtc into release branch
[pandora-kernel.git] / arch / i386 / pci / common.c
index 53ca6e8..3f78d4d 100644 (file)
@@ -191,6 +191,102 @@ static struct dmi_system_id __devinitdata pciprobe_dmi_table[] = {
                        DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge 2950"),
                },
        },
+       {
+               .callback = set_bf_sort,
+               .ident = "Dell PowerEdge R900",
+               .matches = {
+                       DMI_MATCH(DMI_SYS_VENDOR, "Dell"),
+                       DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge R900"),
+               },
+       },
+       {
+               .callback = set_bf_sort,
+               .ident = "HP ProLiant BL20p G3",
+               .matches = {
+                       DMI_MATCH(DMI_SYS_VENDOR, "HP"),
+                       DMI_MATCH(DMI_PRODUCT_NAME, "ProLiant BL20p G3"),
+               },
+       },
+       {
+               .callback = set_bf_sort,
+               .ident = "HP ProLiant BL20p G4",
+               .matches = {
+                       DMI_MATCH(DMI_SYS_VENDOR, "HP"),
+                       DMI_MATCH(DMI_PRODUCT_NAME, "ProLiant BL20p G4"),
+               },
+       },
+       {
+               .callback = set_bf_sort,
+               .ident = "HP ProLiant BL30p G1",
+               .matches = {
+                       DMI_MATCH(DMI_SYS_VENDOR, "HP"),
+                       DMI_MATCH(DMI_PRODUCT_NAME, "ProLiant BL30p G1"),
+               },
+       },
+       {
+               .callback = set_bf_sort,
+               .ident = "HP ProLiant BL25p G1",
+               .matches = {
+                       DMI_MATCH(DMI_SYS_VENDOR, "HP"),
+                       DMI_MATCH(DMI_PRODUCT_NAME, "ProLiant BL25p G1"),
+               },
+       },
+       {
+               .callback = set_bf_sort,
+               .ident = "HP ProLiant BL35p G1",
+               .matches = {
+                       DMI_MATCH(DMI_SYS_VENDOR, "HP"),
+                       DMI_MATCH(DMI_PRODUCT_NAME, "ProLiant BL35p G1"),
+               },
+       },
+       {
+               .callback = set_bf_sort,
+               .ident = "HP ProLiant BL45p G1",
+               .matches = {
+                       DMI_MATCH(DMI_SYS_VENDOR, "HP"),
+                       DMI_MATCH(DMI_PRODUCT_NAME, "ProLiant BL45p G1"),
+               },
+       },
+       {
+               .callback = set_bf_sort,
+               .ident = "HP ProLiant BL45p G2",
+               .matches = {
+                       DMI_MATCH(DMI_SYS_VENDOR, "HP"),
+                       DMI_MATCH(DMI_PRODUCT_NAME, "ProLiant BL45p G2"),
+               },
+       },
+       {
+               .callback = set_bf_sort,
+               .ident = "HP ProLiant BL460c G1",
+               .matches = {
+                       DMI_MATCH(DMI_SYS_VENDOR, "HP"),
+                       DMI_MATCH(DMI_PRODUCT_NAME, "ProLiant BL460c G1"),
+               },
+       },
+       {
+               .callback = set_bf_sort,
+               .ident = "HP ProLiant BL465c G1",
+               .matches = {
+                       DMI_MATCH(DMI_SYS_VENDOR, "HP"),
+                       DMI_MATCH(DMI_PRODUCT_NAME, "ProLiant BL465c G1"),
+               },
+       },
+       {
+               .callback = set_bf_sort,
+               .ident = "HP ProLiant BL480c G1",
+               .matches = {
+                       DMI_MATCH(DMI_SYS_VENDOR, "HP"),
+                       DMI_MATCH(DMI_PRODUCT_NAME, "ProLiant BL480c G1"),
+               },
+       },
+       {
+               .callback = set_bf_sort,
+               .ident = "HP ProLiant BL685c G1",
+               .matches = {
+                       DMI_MATCH(DMI_SYS_VENDOR, "HP"),
+                       DMI_MATCH(DMI_PRODUCT_NAME, "ProLiant BL685c G1"),
+               },
+       },
        {}
 };
 
@@ -338,11 +434,13 @@ int pcibios_enable_device(struct pci_dev *dev, int mask)
        if ((err = pcibios_enable_resources(dev, mask)) < 0)
                return err;
 
-       return pcibios_enable_irq(dev);
+       if (!dev->msi_enabled)
+               return pcibios_enable_irq(dev);
+       return 0;
 }
 
 void pcibios_disable_device (struct pci_dev *dev)
 {
-       if (pcibios_disable_irq)
+       if (!dev->msi_enabled && pcibios_disable_irq)
                pcibios_disable_irq(dev);
 }