Merge branch 'pci/misc'
- Expand Kconfig "PF" acronyms (Randy Dunlap) - Update MAINTAINERS for arch/x86/kernel/early-quirks.c (Bjorn Helgaas) - Add missing include to drivers/pci.h (Alexandru Gagniuc) - Override Synopsys USB 3.x HAPS device class so dwc3-haps can claim it instead of xhci (Thinh Nguyen) * pci/misc: PCI: Override Synopsys USB 3.x HAPS device class PCI: Move Synopsys HAPS platform device IDs PCI: Add missing include to drivers/pci.h PCI: Remove unnecessary space before function pointer arguments MAINTAINERS: Add x86 early-quirks.c file pattern to PCI subsystem PCI: Expand the "PF" acronym in Kconfig help text
This commit is contained in:
commit
e6397dfcb5
|
@ -11500,6 +11500,7 @@ F: include/uapi/linux/pci*
|
|||
F: lib/pci*
|
||||
F: arch/x86/pci/
|
||||
F: arch/x86/kernel/quirks.c
|
||||
F: arch/x86/kernel/early-quirks.c
|
||||
|
||||
PCI NATIVE HOST BRIDGE AND ENDPOINT DRIVERS
|
||||
M: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
|
||||
|
|
|
@ -73,9 +73,9 @@ config PCI_PF_STUB
|
|||
depends on PCI_IOV
|
||||
help
|
||||
Say Y or M here if you want to enable support for devices that
|
||||
require SR-IOV support, while at the same time the PF itself is
|
||||
not providing any actual services on the host itself such as
|
||||
storage or networking.
|
||||
require SR-IOV support, while at the same time the PF (Physical
|
||||
Function) itself is not providing any actual services on the
|
||||
host itself such as storage or networking.
|
||||
|
||||
When in doubt, say N.
|
||||
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
#ifndef DRIVERS_PCI_H
|
||||
#define DRIVERS_PCI_H
|
||||
|
||||
#include <linux/pci.h>
|
||||
|
||||
#define PCI_FIND_CAP_TTL 48
|
||||
|
||||
#define PCI_VSEC_ID_INTEL_TBT 0x1234 /* Thunderbolt */
|
||||
|
|
|
@ -71,19 +71,19 @@ static inline void *get_service_data(struct pcie_device *dev)
|
|||
|
||||
struct pcie_port_service_driver {
|
||||
const char *name;
|
||||
int (*probe) (struct pcie_device *dev);
|
||||
void (*remove) (struct pcie_device *dev);
|
||||
int (*suspend) (struct pcie_device *dev);
|
||||
int (*resume_noirq) (struct pcie_device *dev);
|
||||
int (*resume) (struct pcie_device *dev);
|
||||
int (*runtime_suspend) (struct pcie_device *dev);
|
||||
int (*runtime_resume) (struct pcie_device *dev);
|
||||
int (*probe)(struct pcie_device *dev);
|
||||
void (*remove)(struct pcie_device *dev);
|
||||
int (*suspend)(struct pcie_device *dev);
|
||||
int (*resume_noirq)(struct pcie_device *dev);
|
||||
int (*resume)(struct pcie_device *dev);
|
||||
int (*runtime_suspend)(struct pcie_device *dev);
|
||||
int (*runtime_resume)(struct pcie_device *dev);
|
||||
|
||||
/* Device driver may resume normal operations */
|
||||
void (*error_resume)(struct pci_dev *dev);
|
||||
|
||||
/* Link Reset Capability - AER service driver specific */
|
||||
pci_ers_result_t (*reset_link) (struct pci_dev *dev);
|
||||
pci_ers_result_t (*reset_link)(struct pci_dev *dev);
|
||||
|
||||
int port_type; /* Type of the port this driver can handle */
|
||||
u32 service; /* Port service this device represents */
|
||||
|
|
|
@ -618,6 +618,30 @@ static void quirk_amd_nl_class(struct pci_dev *pdev)
|
|||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_NL_USB,
|
||||
quirk_amd_nl_class);
|
||||
|
||||
/*
|
||||
* Synopsys USB 3.x host HAPS platform has a class code of
|
||||
* PCI_CLASS_SERIAL_USB_XHCI, and xhci driver can claim it. However, these
|
||||
* devices should use dwc3-haps driver. Change these devices' class code to
|
||||
* PCI_CLASS_SERIAL_USB_DEVICE to prevent the xhci-pci driver from claiming
|
||||
* them.
|
||||
*/
|
||||
static void quirk_synopsys_haps(struct pci_dev *pdev)
|
||||
{
|
||||
u32 class = pdev->class;
|
||||
|
||||
switch (pdev->device) {
|
||||
case PCI_DEVICE_ID_SYNOPSYS_HAPSUSB3:
|
||||
case PCI_DEVICE_ID_SYNOPSYS_HAPSUSB3_AXI:
|
||||
case PCI_DEVICE_ID_SYNOPSYS_HAPSUSB31:
|
||||
pdev->class = PCI_CLASS_SERIAL_USB_DEVICE;
|
||||
pci_info(pdev, "PCI class overridden (%#08x -> %#08x) so dwc3 driver can claim this instead of xhci\n",
|
||||
class, pdev->class);
|
||||
break;
|
||||
}
|
||||
}
|
||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SYNOPSYS, PCI_ANY_ID,
|
||||
quirk_synopsys_haps);
|
||||
|
||||
/*
|
||||
* Let's make the southbridge information explicit instead of having to
|
||||
* worry about people probing the ACPI areas, for example.. (Yes, it
|
||||
|
|
|
@ -15,10 +15,6 @@
|
|||
#include <linux/platform_device.h>
|
||||
#include <linux/property.h>
|
||||
|
||||
#define PCI_DEVICE_ID_SYNOPSYS_HAPSUSB3 0xabcd
|
||||
#define PCI_DEVICE_ID_SYNOPSYS_HAPSUSB3_AXI 0xabce
|
||||
#define PCI_DEVICE_ID_SYNOPSYS_HAPSUSB31 0xabcf
|
||||
|
||||
/**
|
||||
* struct dwc3_haps - Driver private structure
|
||||
* @dwc3: child dwc3 platform_device
|
||||
|
|
|
@ -764,9 +764,9 @@ struct pci_driver {
|
|||
int (*suspend)(struct pci_dev *dev, pm_message_t state); /* Device suspended */
|
||||
int (*suspend_late)(struct pci_dev *dev, pm_message_t state);
|
||||
int (*resume_early)(struct pci_dev *dev);
|
||||
int (*resume) (struct pci_dev *dev); /* Device woken up */
|
||||
void (*shutdown) (struct pci_dev *dev);
|
||||
int (*sriov_configure) (struct pci_dev *dev, int num_vfs); /* On PF */
|
||||
int (*resume)(struct pci_dev *dev); /* Device woken up */
|
||||
void (*shutdown)(struct pci_dev *dev);
|
||||
int (*sriov_configure)(struct pci_dev *dev, int num_vfs); /* On PF */
|
||||
const struct pci_error_handlers *err_handler;
|
||||
const struct attribute_group **groups;
|
||||
struct device_driver driver;
|
||||
|
|
|
@ -2358,6 +2358,9 @@
|
|||
#define PCI_DEVICE_ID_CENATEK_IDE 0x0001
|
||||
|
||||
#define PCI_VENDOR_ID_SYNOPSYS 0x16c3
|
||||
#define PCI_DEVICE_ID_SYNOPSYS_HAPSUSB3 0xabcd
|
||||
#define PCI_DEVICE_ID_SYNOPSYS_HAPSUSB3_AXI 0xabce
|
||||
#define PCI_DEVICE_ID_SYNOPSYS_HAPSUSB31 0xabcf
|
||||
|
||||
#define PCI_VENDOR_ID_VITESSE 0x1725
|
||||
#define PCI_DEVICE_ID_VITESSE_VSC7174 0x7174
|
||||
|
|
Loading…
Reference in New Issue