On Mon, Dec 10, 2018 at 02:08:01PM -0800, Thinh Nguyen wrote: > Synopsys USB 3.x host HAPS platform has a class code of > PCI_CLASS_SERIAL_USB_XHCI, and xhci driver can claim it. However, these > devices should use dwc3-haps driver. Change these devices' class code to > PCI_CLASS_SERIAL_USB_DEVICE to prevent the xhci-pci driver from claiming > them. > > Signed-off-by: Thinh Nguyen <thinhn@xxxxxxxxxxxx> I applied both of these to pci/misc for v4.21, thanks! > --- > Change in v2: > - Revise title to fit PCI patches' convention > - Override pci class instead of driver > > drivers/pci/quirks.c | 26 ++++++++++++++++++++++++++ > 1 file changed, 26 insertions(+) > > diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c > index 4700d24e5d55..c84f81c42a1f 100644 > --- a/drivers/pci/quirks.c > +++ b/drivers/pci/quirks.c > @@ -618,6 +618,32 @@ static void quirk_amd_nl_class(struct pci_dev *pdev) > DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_NL_USB, > quirk_amd_nl_class); > > +/* > + * Synopsys USB 3.x host HAPS platform has a class code of > + * PCI_CLASS_SERIAL_USB_XHCI, and xhci driver can claim it. However, these > + * devices should use dwc3-haps driver. Change these devices' class code to > + * PCI_CLASS_SERIAL_USB_DEVICE to prevent the xhci-pci driver from claiming > + * them. > + */ > +static void quirk_synopsys_haps(struct pci_dev *pdev) > +{ > + u32 class = pdev->class; > + > + switch (pdev->device) { > + case PCI_DEVICE_ID_SYNOPSYS_HAPSUSB3: > + case PCI_DEVICE_ID_SYNOPSYS_HAPSUSB3_AXI: > + case PCI_DEVICE_ID_SYNOPSYS_HAPSUSB31: > + pdev->class = PCI_CLASS_SERIAL_USB_DEVICE; > + pci_info(pdev, "PCI class overridden (%#08x -> %#08x) so dwc3 driver can claim this instead of xhci\n", > + class, pdev->class); > + break; > + default: > + return; I dropped this "default: return;" because it's superfluous. > + } > +} > +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SYNOPSYS, PCI_ANY_ID, > + quirk_synopsys_haps); > + > /* > * Let's make the southbridge information explicit instead of having to > * worry about people probing the ACPI areas, for example.. (Yes, it > -- > 2.11.0 >