Re: [PATCH] PCI: Prevent xHCI driver from claiming AMD VanGogh USB3 DRD device

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
> > 



[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux