Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4
[firefly-linux-kernel-4.4.55.git] / drivers / pci / quirks.c
index 5129ed6d8fa7a401ab725f76eb437a779b703d4f..e8a140669f90107aba6b2780de4b90494591aa34 100644 (file)
@@ -606,7 +606,7 @@ static void __devinit ich6_lpc_acpi_gpio(struct pci_dev *dev)
        }
 
        pci_read_config_byte(dev, ICH6_GPIO_CNTL, &enable);
-       if (enable & ICH4_GPIO_EN) {
+       if (enable & ICH6_GPIO_EN) {
                pci_read_config_dword(dev, ICH6_GPIOBASE, &region);
                region &= PCI_BASE_ADDRESS_IO_MASK;
                if (region >= PCIBIOS_MIN_IO)
@@ -681,7 +681,7 @@ static void __devinit ich7_lpc_generic_decode(struct pci_dev *dev, unsigned reg,
 /* ICH7-10 has the same common LPC generic IO decode registers */
 static void __devinit quirk_ich7_lpc(struct pci_dev *dev)
 {
-       /* We share the common ACPI/DPIO decode with ICH6 */
+       /* We share the common ACPI/GPIO decode with ICH6 */
        ich6_lpc_acpi_gpio(dev);
 
        /* And have 4 ICH7+ generic decodes */
@@ -2349,8 +2349,11 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_8132_BRIDGE,
  */
 static void __devinit nvenet_msi_disable(struct pci_dev *dev)
 {
-       if (dmi_name_in_vendors("P5N32-SLI PREMIUM") ||
-           dmi_name_in_vendors("P5N32-E SLI")) {
+       const char *board_name = dmi_get_system_info(DMI_BOARD_NAME);
+
+       if (board_name &&
+           (strstr(board_name, "P5N32-SLI PREMIUM") ||
+            strstr(board_name, "P5N32-E SLI"))) {
                dev_info(&dev->dev,
                         "Disabling msi for MCP55 NIC on P5N32-SLI\n");
                dev->no_msi = 1;
@@ -2784,6 +2787,16 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x342e, vtd_mask_spec_errors);
 DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x3c28, vtd_mask_spec_errors);
 #endif
 
+static void __devinit fixup_ti816x_class(struct pci_dev* dev)
+{
+       /* TI 816x devices do not have class code set when in PCIe boot mode */
+       if (dev->class == PCI_CLASS_NOT_DEFINED) {
+               dev_info(&dev->dev, "Setting PCI class for 816x PCIe device\n");
+               dev->class = PCI_CLASS_MULTIMEDIA_VIDEO;
+       }
+}
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_TI, 0xb800, fixup_ti816x_class);
+
 static void pci_do_fixups(struct pci_dev *dev, struct pci_fixup *f,
                          struct pci_fixup *end)
 {