PCI: Prevent xHCI driver from claiming AMD VanGogh USB3 DRD device
commit 7e6f3b6d2c352b5fde37ce3fed83bdf6172eebd4 upstream. 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.be6646bfba
("PCI: Prevent xHCI driver from claiming AMD Nolan USB3 DRD device") added a quirk to let the dwc3 driver claim the Nolan device since it provides more specific support. Extend that quirk to include the VanGogh SoC USB3 device. Link: https://lore.kernel.org/r/20230927202212.2388216-1-vi@endrift.com Signed-off-by: Vicki Pfau <vi@endrift.com> [bhelgaas: includebe6646bfba
reference, add stable tag] Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Cc: stable@vger.kernel.org # v3.19+ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
deddf60c27
commit
747b8f8779
@@ -597,7 +597,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
|
* 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
|
* 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
|
* 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
|
* prefer to use it instead of xhci. To prevent xhci from claiming the
|
||||||
@@ -605,7 +605,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
|
* defines as "USB device (not host controller)". The dwc3 driver can then
|
||||||
* claim it based on its Vendor and Device ID.
|
* 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;
|
u32 class = pdev->class;
|
||||||
|
|
||||||
@@ -615,7 +615,9 @@ static void quirk_amd_nl_class(struct pci_dev *pdev)
|
|||||||
class, pdev->class);
|
class, pdev->class);
|
||||||
}
|
}
|
||||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_NL_USB,
|
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
|
* Synopsys USB 3.x host HAPS platform has a class code of
|
||||||
|
@@ -555,6 +555,7 @@
|
|||||||
#define PCI_DEVICE_ID_AMD_17H_M30H_DF_F3 0x1493
|
#define PCI_DEVICE_ID_AMD_17H_M30H_DF_F3 0x1493
|
||||||
#define PCI_DEVICE_ID_AMD_17H_M60H_DF_F3 0x144b
|
#define PCI_DEVICE_ID_AMD_17H_M60H_DF_F3 0x144b
|
||||||
#define PCI_DEVICE_ID_AMD_17H_M70H_DF_F3 0x1443
|
#define PCI_DEVICE_ID_AMD_17H_M70H_DF_F3 0x1443
|
||||||
|
#define PCI_DEVICE_ID_AMD_VANGOGH_USB 0x163a
|
||||||
#define PCI_DEVICE_ID_AMD_19H_DF_F3 0x1653
|
#define PCI_DEVICE_ID_AMD_19H_DF_F3 0x1653
|
||||||
#define PCI_DEVICE_ID_AMD_CNB17H_F3 0x1703
|
#define PCI_DEVICE_ID_AMD_CNB17H_F3 0x1703
|
||||||
#define PCI_DEVICE_ID_AMD_LANCE 0x2000
|
#define PCI_DEVICE_ID_AMD_LANCE 0x2000
|
||||||
|
Reference in New Issue
Block a user