76d079204d
Changelogs: * https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.18.12 * https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.18.13 * https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.18.14 Build tested on brcm63xx and ipq806x, runtested on brcm63xx. Signed-off-by: Jonas Gorski <jogo@openwrt.org> SVN-Revision: 45711
33 lines
987 B
Diff
33 lines
987 B
Diff
commit e84634dc6c7f3f6af9b8ef1fb36f0d85c476ab95
|
|
Author: Tim Harvey <tharvey@gateworks.com>
|
|
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 <tharvey@gateworks.com>
|
|
|
|
--- 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 {
|