On Thu, Sep 28, 2023 at 12:17:38PM -0500, Bjorn Helgaas wrote: > On Wed, Sep 27, 2023 at 01:22:12PM -0700, Vicki Pfau wrote: > > The AMD VanGogh SoC contains a DesignWare USB3 Dual-Role Device that can be > > operated as either a USB Host or a USB Device, similar to on the AMD Nolan > > platform. A quirk was previously added to let the dwc3 driver claim the device > > since it provides more specific support. This commit extends that quirk to > > include the equivalent PID for the VanGogh SoC. > > > > Signed-off-by: Vicki Pfau <vi@xxxxxxxxxxx> > > Applied to misc for v6.7, thanks! This seems like stable material, so I added a stable tag for v3.19+ since be6646bfbaec ("PCI: Prevent xHCI driver from claiming AMD Nolan USB3 DRD device") appeared in v3.19. > > --- > > drivers/pci/quirks.c | 8 +++++--- > > include/linux/pci_ids.h | 1 + > > 2 files changed, 6 insertions(+), 3 deletions(-) > > > > diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c > > index eeec1d6f9023..e3e915329510 100644 > > --- a/drivers/pci/quirks.c > > +++ b/drivers/pci/quirks.c > > @@ -690,7 +690,7 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RS100, quirk_ati_ > > /* > > * In the AMD NL platform, this device ([1022:7912]) has a class code of > > * PCI_CLASS_SERIAL_USB_XHCI (0x0c0330), which means the xhci driver will > > - * claim it. > > + * claim it. The same applies on the VanGogh platform device ([1022:163a]). > > * > > * But the dwc3 driver is a more specific driver for this device, and we'd > > * prefer to use it instead of xhci. To prevent xhci from claiming the > > @@ -698,7 +698,7 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RS100, quirk_ati_ > > * defines as "USB device (not host controller)". The dwc3 driver can then > > * claim it based on its Vendor and Device ID. > > */ > > -static void quirk_amd_nl_class(struct pci_dev *pdev) > > +static void quirk_amd_dwc_class(struct pci_dev *pdev) > > { > > u32 class = pdev->class; > > > > @@ -708,7 +708,9 @@ static void quirk_amd_nl_class(struct pci_dev *pdev) > > class, pdev->class); > > } > > DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_NL_USB, > > - quirk_amd_nl_class); > > + quirk_amd_dwc_class); > > +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_VANGOGH_USB, > > + quirk_amd_dwc_class); > > > > /* > > * Synopsys USB 3.x host HAPS platform has a class code of > > diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h > > index 5fb3d4c393a9..3a8e24e9a93f 100644 > > --- a/include/linux/pci_ids.h > > +++ b/include/linux/pci_ids.h > > @@ -579,6 +579,7 @@ > > #define PCI_DEVICE_ID_AMD_1AH_M00H_DF_F3 0x12c3 > > #define PCI_DEVICE_ID_AMD_1AH_M20H_DF_F3 0x16fb > > #define PCI_DEVICE_ID_AMD_MI200_DF_F3 0x14d3 > > +#define PCI_DEVICE_ID_AMD_VANGOGH_USB 0x163a > > #define PCI_DEVICE_ID_AMD_CNB17H_F3 0x1703 > > #define PCI_DEVICE_ID_AMD_LANCE 0x2000 > > #define PCI_DEVICE_ID_AMD_LANCE_HOME 0x2001 > > -- > > 2.42.0 > >