diff options
author | Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> | 2017-09-19 10:50:42 -0400 |
---|---|---|
committer | Bjorn Helgaas <bhelgaas@google.com> | 2017-09-19 15:55:26 -0400 |
commit | 19a8d6b7604df85402deecae01d7861cb1d40c89 (patch) | |
tree | 736fdfc4dac02b4384141e32e62e882e27c5bcc9 /arch/mips/ath79 | |
parent | 2bd6bf03f4c1c59381d62c61d03f6cc3fe71f66e (diff) |
MIPS: PCI: Move map_irq() hooks out of initdata
04c81c7293df ("MIPS: PCI: Replace pci_fixup_irqs() call with host bridge
IRQ mapping hooks") moved the PCI IRQ fixup to the new host bridge
map/swizzle_irq() hooks mechanism. Those hooks can also be called after
boot, when all the __init/__initdata/__initconst sections have been freed.
Therefore, functions called by them (and the data they refer to) must not
be marked as __init/__initdata/__initconst lest compilation trigger section
mismatch warnings.
Fix all the board files map_irq() hooks by simply removing the respective
__init/__initdata/__initconst section markers and by adding another
persistent hook IRQ map for the txx9 board files.
Fixes: 04c81c7293df ("MIPS: PCI: Replace pci_fixup_irqs() call with host bridge IRQ mapping hooks")
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Steve French <smfrench@gmail.com>
Diffstat (limited to 'arch/mips/ath79')
-rw-r--r-- | arch/mips/ath79/pci.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/arch/mips/ath79/pci.c b/arch/mips/ath79/pci.c index 730c0b03060d..b816cb4a25ff 100644 --- a/arch/mips/ath79/pci.c +++ b/arch/mips/ath79/pci.c | |||
@@ -22,10 +22,10 @@ | |||
22 | #include "pci.h" | 22 | #include "pci.h" |
23 | 23 | ||
24 | static int (*ath79_pci_plat_dev_init)(struct pci_dev *dev); | 24 | static int (*ath79_pci_plat_dev_init)(struct pci_dev *dev); |
25 | static const struct ath79_pci_irq *ath79_pci_irq_map __initdata; | 25 | static const struct ath79_pci_irq *ath79_pci_irq_map; |
26 | static unsigned ath79_pci_nr_irqs __initdata; | 26 | static unsigned ath79_pci_nr_irqs; |
27 | 27 | ||
28 | static const struct ath79_pci_irq ar71xx_pci_irq_map[] __initconst = { | 28 | static const struct ath79_pci_irq ar71xx_pci_irq_map[] = { |
29 | { | 29 | { |
30 | .slot = 17, | 30 | .slot = 17, |
31 | .pin = 1, | 31 | .pin = 1, |
@@ -41,7 +41,7 @@ static const struct ath79_pci_irq ar71xx_pci_irq_map[] __initconst = { | |||
41 | } | 41 | } |
42 | }; | 42 | }; |
43 | 43 | ||
44 | static const struct ath79_pci_irq ar724x_pci_irq_map[] __initconst = { | 44 | static const struct ath79_pci_irq ar724x_pci_irq_map[] = { |
45 | { | 45 | { |
46 | .slot = 0, | 46 | .slot = 0, |
47 | .pin = 1, | 47 | .pin = 1, |
@@ -49,7 +49,7 @@ static const struct ath79_pci_irq ar724x_pci_irq_map[] __initconst = { | |||
49 | } | 49 | } |
50 | }; | 50 | }; |
51 | 51 | ||
52 | static const struct ath79_pci_irq qca955x_pci_irq_map[] __initconst = { | 52 | static const struct ath79_pci_irq qca955x_pci_irq_map[] = { |
53 | { | 53 | { |
54 | .bus = 0, | 54 | .bus = 0, |
55 | .slot = 0, | 55 | .slot = 0, |
@@ -64,7 +64,7 @@ static const struct ath79_pci_irq qca955x_pci_irq_map[] __initconst = { | |||
64 | }, | 64 | }, |
65 | }; | 65 | }; |
66 | 66 | ||
67 | int __init pcibios_map_irq(const struct pci_dev *dev, uint8_t slot, uint8_t pin) | 67 | int pcibios_map_irq(const struct pci_dev *dev, uint8_t slot, uint8_t pin) |
68 | { | 68 | { |
69 | int irq = -1; | 69 | int irq = -1; |
70 | int i; | 70 | int i; |