8250_pci: fix pch uart matching
authorArnaud Patard <apatard@hupstream.com>
Wed, 25 Apr 2012 10:17:24 +0000 (12:17 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 30 Apr 2012 02:15:29 +0000 (22:15 -0400)
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>
[stable@: please apply to 3.0-stable, 3.2-stable and 3.3-stable]
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Arnaud Patard <apatard@hupstream.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/8250/8250_pci.c

index 24ea98c6e77a6f199d08d77959088f6cbee9737a..28e7c7cce8935acc8257fafaff86121fa55bf6dd 100644 (file)
@@ -1648,54 +1648,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,
        },