Hi Felipe, Felipe Balbi wrote: > Hi, > > Thinh Nguyen <thinh.nguyen@xxxxxxxxxxxx> writes: >> i.MX6QP and i.MX7D platform use a PCIe controller with the same VID and >> PID as this USB controller. The system may incorrectly match this driver >> to that PCIe controller. To workaround this, specifically use class type >> USB with PCI device ID to prevent incorrect driver matching. >> >> Signed-off-by: Thinh Nguyen <thinhn@xxxxxxxxxxxx> >> --- >> drivers/usb/dwc3/dwc3-haps.c | 9 +++++++++ >> 1 file changed, 9 insertions(+) >> >> diff --git a/drivers/usb/dwc3/dwc3-haps.c b/drivers/usb/dwc3/dwc3-haps.c >> index 02d57d98ef9b..3cecbf169452 100644 >> --- a/drivers/usb/dwc3/dwc3-haps.c >> +++ b/drivers/usb/dwc3/dwc3-haps.c >> @@ -106,6 +106,15 @@ static const struct pci_device_id dwc3_haps_id_table[] = { >> { >> PCI_DEVICE(PCI_VENDOR_ID_SYNOPSYS, >> PCI_DEVICE_ID_SYNOPSYS_HAPSUSB3), >> + /* >> + * i.MX6QP and i.MX7D platform use a PCIe controller with the >> + * same VID and PID as this USB controller. The system may >> + * incorrectly match this driver to that PCIe controller. To >> + * workaround this, specifically use class type USB to prevent >> + * incorrect driver matching. >> + */ >> + .class = (PCI_CLASS_SERIAL_USB << 8), >> + .class_mask = 0xffff00, > Just curious, how can NXP use Synopsys' vendor ID? > NXP cannot use Synopsys' vendor ID. This workaround is intended for the PCIe controller on their existing SoC. Thanks, Thinh