commit e84634dc6c7f3f6af9b8ef1fb36f0d85c476ab95 Author: Tim Harvey Date: Thu Feb 27 01:02:23 2014 -0800 PCI: designware: add ability for custom swizzle Add the ability for a platform driver to provide a platform-specific swizzle function. Signed-off-by: Tim Harvey --- a/drivers/pci/host/pcie-designware.c +++ b/drivers/pci/host/pcie-designware.c @@ -492,6 +492,9 @@ int dw_pcie_host_init(struct pcie_port * if (pp->ops->host_init) pp->ops->host_init(pp); + if (pp->swizzle) + dw_pci.swizzle = pp->swizzle; + dw_pcie_wr_own_conf(pp, PCI_BASE_ADDRESS_0, 4, 0); /* program correct class for RC */ --- a/drivers/pci/host/pcie-designware.h +++ b/drivers/pci/host/pcie-designware.h @@ -53,6 +53,7 @@ struct pcie_port { struct irq_domain *irq_domain; unsigned long msi_data; DECLARE_BITMAP(msi_irq_in_use, MAX_MSI_IRQS); + u8 (*swizzle)(struct pci_dev *, u8 *); }; struct pcie_host_ops {