d110e5e6983e1a0d024c2ef0013f776806bd9473
[openwrt/staging/dedeckeh.git] / target / linux / ar71xx / patches-4.14 / 740-MIPS-ath79-add-PCI-for-QCA953x-SoC.patch
1 Index: linux-4.14.61/arch/mips/ath79/pci.c
2 ===================================================================
3 --- linux-4.14.61.orig/arch/mips/ath79/pci.c
4 +++ linux-4.14.61/arch/mips/ath79/pci.c
5 @@ -53,6 +53,15 @@ static const struct ath79_pci_irq ar724x
6 }
7 };
8
9 +static const struct ath79_pci_irq qca953x_pci_irq_map[] __initconst = {
10 + {
11 + .bus = 0,
12 + .slot = 0,
13 + .pin = 1,
14 + .irq = ATH79_PCI_IRQ(0),
15 + },
16 +};
17 +
18 static const struct ath79_pci_irq qca955x_pci_irq_map[] = {
19 {
20 .bus = 0,
21 @@ -98,6 +107,9 @@ int pcibios_map_irq(const struct pci_dev
22 soc_is_ar9344()) {
23 ath79_pci_irq_map = ar724x_pci_irq_map;
24 ath79_pci_nr_irqs = ARRAY_SIZE(ar724x_pci_irq_map);
25 + } else if (soc_is_qca953x()) {
26 + ath79_pci_irq_map = qca953x_pci_irq_map;
27 + ath79_pci_nr_irqs = ARRAY_SIZE(qca953x_pci_irq_map);
28 } else if (soc_is_qca955x()) {
29 ath79_pci_irq_map = qca955x_pci_irq_map;
30 ath79_pci_nr_irqs = ARRAY_SIZE(qca955x_pci_irq_map);
31 @@ -303,6 +315,15 @@ int __init ath79_register_pci(void)
32 AR724X_PCI_MEM_SIZE,
33 0,
34 ATH79_IP2_IRQ(0));
35 + } else if (soc_is_qca9533()) {
36 + pdev = ath79_register_pci_ar724x(0,
37 + QCA953X_PCI_CFG_BASE0,
38 + QCA953X_PCI_CTRL_BASE0,
39 + QCA953X_PCI_CRP_BASE0,
40 + QCA953X_PCI_MEM_BASE0,
41 + QCA953X_PCI_MEM_SIZE,
42 + 0,
43 + ATH79_IP2_IRQ(0));
44 } else if (soc_is_qca9558()) {
45 pdev = ath79_register_pci_ar724x(0,
46 QCA955X_PCI_CFG_BASE0,