mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-22 23:12:32 +00:00
9d826428b7
The GW16082 miniPCI Expansion Mezzanine has the INTA/B/C/D IRQ's reversed from the PCI standard. This will soon be resolved in the bootloader via devicetree, but in the meantime this will work around the issue. Signed-off-by: Tim Harvey <tharvey@gateworks.com> SVN-Revision: 42146
34 lines
987 B
Diff
34 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
|
|
@@ -481,6 +481,9 @@ int __init dw_pcie_host_init(struct pcie
|
|
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 {
|