Re: [PATCH RESEND] PCI: Check for USB xHCI class for HAPS platform

From: John Youn
Date: Tue Feb 05 2019 - 20:01:55 EST

On 02/05/2019 03:32 PM, Bjorn Helgaas wrote:
[+cc Richard, Lucas]

On Tue, Feb 05, 2019 at 01:04:28PM -0800, Thinh Nguyen wrote:
The Synopsys HAPS USB controller has a VID PID (16c3,abcd) that matches
to an existing PCIe controller. This quirk is intended for USB HAPS
devices only. To fix this, check for the PCI class USB xHCI to prevent
matching the PCIe controllers.

So there are at least three different parts with the same Vendor &
Device ID ([16c3:abcd]):

1) Synopsys HAPS USB3 controller
2) Synopsys PCIe IP in the NXP i.MX6QP (reported by Lukas)
3) Synopsys PCIe IP in the NXP i.MX7D (reported by Trent)

I don't know if Synopsys is to blame for 2 & 3, or if NXP was expected
to change the Vendor ID when incorporating the Synopsys IP into the
i.MX designs. But even leaving the default Device ID of the PCIe IP
the same as another Synopsys device was probably a bad idea.

Hi Bjorn,

From talking with our PCIe folks, our best guess is a vendor
misconfiguration. The PCIe IP ships with a different PID by default
and does not collide with USB.

dwc3-haps claims by Vendor & Device ID; it doesn't look at the Class
Code. What happens when it tries to claim the PCIe IP in i.MX?

We can add the class code to dwc3-haps to account for this.