PCI class code management is confusing. The pci_dev.class element contains a three-byte value: base class/sub-class/interface. The PCI_BASE_CLASS_* definitions are a single byte, i.e., dev->class >> 16. The PCI_CLASS_* definitions are either two or three bytes, i.e., either dev->class >> 8 or just dev->class. We had several places where we used a two-byte PCI_CLASS_* definition but forgot to shift it to the right place. These patches fix that for NCR 53c810, TI816X, and Intel USB devices. As far as I can tell, reset_intel_generic_dev() never worked, so I just removed it completely. Changes from v1 to v2: - Instead of trying to fix reset_intel_generic_dev(), drop it completely --- Bjorn Helgaas (5): PCI: Use PCI_CLASS_SERIAL_USB instead of bare number PCI: Fix generic NCR 53c810 class code quirk PCI: Fix TI816X class code quirk PCI: Revert aeb30016fec3 ("PCI: add Intel USB specific reset method") PCI: Shift PCI_CLASS_NOT_DEFINED consistently with other classes arch/x86/pci/fixup.c | 13 ---------- drivers/pci/probe.c | 2 +- drivers/pci/quirks.c | 65 +++++++++++++++++++------------------------------- 3 files changed, 26 insertions(+), 54 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html