8250_pci: fix pch uart matching
authorArnaud Patard <apatard@hupstream.com>
Wed, 25 Apr 2012 10:17:24 +0000 (12:17 +0200)
committerBen Hutchings <ben@decadent.org.uk>
Wed, 30 May 2012 23:43:32 +0000 (00:43 +0100)
commit aaa10eb1d0034eccc096f583fe308f0921617598 upstream.

The rules used to make 8250_pci "ignore" the PCH uarts are lacking pci subids
entries, preventing it to match and thus is breaking serial port support for
theses systems.

This has been tested on a nanoETXexpress-TT, which has a specifici uart clock.

Tested-by: Erwan Velu <Erwan.Velu@zodiacaerospace.com>
Signed-off-by: Arnaud Patard <apatard@hupstream.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
[bwh: Backported to 3.2: adjust filename]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
drivers/tty/serial/8250_pci.c

index 825937a..482d51e 100644 (file)
@@ -1590,54 +1590,72 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
        {
                .vendor         = PCI_VENDOR_ID_INTEL,
                .device         = 0x8811,
+               .subvendor      = PCI_ANY_ID,
+               .subdevice      = PCI_ANY_ID,
                .init           = pci_eg20t_init,
                .setup          = pci_default_setup,
        },
        {
                .vendor         = PCI_VENDOR_ID_INTEL,
                .device         = 0x8812,
+               .subvendor      = PCI_ANY_ID,
+               .subdevice      = PCI_ANY_ID,
                .init           = pci_eg20t_init,
                .setup          = pci_default_setup,
        },
        {
                .vendor         = PCI_VENDOR_ID_INTEL,
                .device         = 0x8813,
+               .subvendor      = PCI_ANY_ID,
+               .subdevice      = PCI_ANY_ID,
                .init           = pci_eg20t_init,
                .setup          = pci_default_setup,
        },
        {
                .vendor         = PCI_VENDOR_ID_INTEL,
                .device         = 0x8814,
+               .subvendor      = PCI_ANY_ID,
+               .subdevice      = PCI_ANY_ID,
                .init           = pci_eg20t_init,
                .setup          = pci_default_setup,
        },
        {
                .vendor         = 0x10DB,
                .device         = 0x8027,
+               .subvendor      = PCI_ANY_ID,
+               .subdevice      = PCI_ANY_ID,
                .init           = pci_eg20t_init,
                .setup          = pci_default_setup,
        },
        {
                .vendor         = 0x10DB,
                .device         = 0x8028,
+               .subvendor      = PCI_ANY_ID,
+               .subdevice      = PCI_ANY_ID,
                .init           = pci_eg20t_init,
                .setup          = pci_default_setup,
        },
        {
                .vendor         = 0x10DB,
                .device         = 0x8029,
+               .subvendor      = PCI_ANY_ID,
+               .subdevice      = PCI_ANY_ID,
                .init           = pci_eg20t_init,
                .setup          = pci_default_setup,
        },
        {
                .vendor         = 0x10DB,
                .device         = 0x800C,
+               .subvendor      = PCI_ANY_ID,
+               .subdevice      = PCI_ANY_ID,
                .init           = pci_eg20t_init,
                .setup          = pci_default_setup,
        },
        {
                .vendor         = 0x10DB,
                .device         = 0x800D,
+               .subvendor      = PCI_ANY_ID,
+               .subdevice      = PCI_ANY_ID,
                .init           = pci_eg20t_init,
                .setup          = pci_default_setup,
        },