++ linux-usb ++ Greg On 11/2/2018 6:47 PM, 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. Set driver_override to dwc3-haps > for these platforms. > > Signed-off-by: Thinh Nguyen <thinhn@xxxxxxxxxxxx> > --- > drivers/pci/quirks.c | 21 +++++++++++++++++++++ > 1 file changed, 21 insertions(+) > > diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c > index 6bc27b7fd452..5f7c3ade7749 100644 > --- a/drivers/pci/quirks.c > +++ b/drivers/pci/quirks.c > @@ -618,6 +618,27 @@ 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. Set driver_override to dwc3-haps for > + * these platforms. > + */ > +static void quirk_synopsys_haps(struct pci_dev *pdev) > +{ > + /* Use dwc3-haps driver instead of xhci-pci */ > + pdev->driver_override = "dwc3-haps"; > +} > +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SYNOPSYS, > + PCI_DEVICE_ID_SYNOPSYS_HAPSUSB3, > + quirk_synopsys_haps); > +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SYNOPSYS, > + PCI_DEVICE_ID_SYNOPSYS_HAPSUSB3_AXI, > + quirk_synopsys_haps); > +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SYNOPSYS, > + PCI_DEVICE_ID_SYNOPSYS_HAPSUSB31, > + 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