aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sh
diff options
context:
space:
mode:
authorMatthew Minter <matt@masarand.com>2017-07-31 12:37:49 -0400
committerBjorn Helgaas <bhelgaas@google.com>2017-08-03 17:21:31 -0400
commit2b8ff9f2769135a08fc7b9c989560f759b80cc1a (patch)
tree011501efe37e2d2f5cea73d758eda3e59f5dc1ec /arch/sh
parent902d886d4474a4d2661ae337f3c30dc7a8e59f28 (diff)
sh/PCI: Remove __init optimisations from IRQ mapping functions/data
Currently many IRQ mapping functions and data structures use the __init and __initdata optimisations. These result in the relevant functions being innaccessible after boot time. However for deferred IRQ assignment it is important to have access to these functions at PCI device enable time. Therefore, remove the optimisation from the relevant data structures and functions to prepare for deferred IRQ assignment. Signed-off-by: Matthew Minter <matt@masarand.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Cc: Rich Felker <dalias@libc.org> Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
Diffstat (limited to 'arch/sh')
-rw-r--r--arch/sh/drivers/pci/fixups-cayman.c2
-rw-r--r--arch/sh/drivers/pci/fixups-dreamcast.c2
-rw-r--r--arch/sh/drivers/pci/fixups-r7780rp.c2
-rw-r--r--arch/sh/drivers/pci/fixups-rts7751r2d.c6
-rw-r--r--arch/sh/drivers/pci/fixups-sdk7780.c4
-rw-r--r--arch/sh/drivers/pci/fixups-se7751.c2
-rw-r--r--arch/sh/drivers/pci/fixups-sh03.c2
-rw-r--r--arch/sh/drivers/pci/fixups-snapgear.c2
-rw-r--r--arch/sh/drivers/pci/fixups-titan.c4
-rw-r--r--arch/sh/drivers/pci/pcie-sh7786.c2
10 files changed, 14 insertions, 14 deletions
diff --git a/arch/sh/drivers/pci/fixups-cayman.c b/arch/sh/drivers/pci/fixups-cayman.c
index edc2fb7a5bb2..32467884d6f7 100644
--- a/arch/sh/drivers/pci/fixups-cayman.c
+++ b/arch/sh/drivers/pci/fixups-cayman.c
@@ -5,7 +5,7 @@
5#include <cpu/irq.h> 5#include <cpu/irq.h>
6#include "pci-sh5.h" 6#include "pci-sh5.h"
7 7
8int __init pcibios_map_platform_irq(const struct pci_dev *dev, u8 slot, u8 pin) 8int pcibios_map_platform_irq(const struct pci_dev *dev, u8 slot, u8 pin)
9{ 9{
10 int result = -1; 10 int result = -1;
11 11
diff --git a/arch/sh/drivers/pci/fixups-dreamcast.c b/arch/sh/drivers/pci/fixups-dreamcast.c
index 1d1c5a227e50..9d597f7ab8dd 100644
--- a/arch/sh/drivers/pci/fixups-dreamcast.c
+++ b/arch/sh/drivers/pci/fixups-dreamcast.c
@@ -76,7 +76,7 @@ static void gapspci_fixup_resources(struct pci_dev *dev)
76} 76}
77DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, gapspci_fixup_resources); 77DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, gapspci_fixup_resources);
78 78
79int __init pcibios_map_platform_irq(const struct pci_dev *dev, u8 slot, u8 pin) 79int pcibios_map_platform_irq(const struct pci_dev *dev, u8 slot, u8 pin)
80{ 80{
81 /* 81 /*
82 * The interrupt routing semantics here are quite trivial. 82 * The interrupt routing semantics here are quite trivial.
diff --git a/arch/sh/drivers/pci/fixups-r7780rp.c b/arch/sh/drivers/pci/fixups-r7780rp.c
index 57ed3f09d0c2..2c9b58f848dd 100644
--- a/arch/sh/drivers/pci/fixups-r7780rp.c
+++ b/arch/sh/drivers/pci/fixups-r7780rp.c
@@ -15,7 +15,7 @@
15#include <linux/sh_intc.h> 15#include <linux/sh_intc.h>
16#include "pci-sh4.h" 16#include "pci-sh4.h"
17 17
18int __init pcibios_map_platform_irq(const struct pci_dev *pdev, u8 slot, u8 pin) 18int pcibios_map_platform_irq(const struct pci_dev *pdev, u8 slot, u8 pin)
19{ 19{
20 return evt2irq(0xa20) + slot; 20 return evt2irq(0xa20) + slot;
21} 21}
diff --git a/arch/sh/drivers/pci/fixups-rts7751r2d.c b/arch/sh/drivers/pci/fixups-rts7751r2d.c
index eaddb56c45c6..358ac104f08c 100644
--- a/arch/sh/drivers/pci/fixups-rts7751r2d.c
+++ b/arch/sh/drivers/pci/fixups-rts7751r2d.c
@@ -20,18 +20,18 @@
20#define PCIMCR_MRSET_OFF 0xBFFFFFFF 20#define PCIMCR_MRSET_OFF 0xBFFFFFFF
21#define PCIMCR_RFSH_OFF 0xFFFFFFFB 21#define PCIMCR_RFSH_OFF 0xFFFFFFFB
22 22
23static u8 rts7751r2d_irq_tab[] __initdata = { 23static u8 rts7751r2d_irq_tab[] = {
24 IRQ_PCI_INTA, 24 IRQ_PCI_INTA,
25 IRQ_PCI_INTB, 25 IRQ_PCI_INTB,
26 IRQ_PCI_INTC, 26 IRQ_PCI_INTC,
27 IRQ_PCI_INTD, 27 IRQ_PCI_INTD,
28}; 28};
29 29
30static char lboxre2_irq_tab[] __initdata = { 30static char lboxre2_irq_tab[] = {
31 IRQ_ETH0, IRQ_ETH1, IRQ_INTA, IRQ_INTD, 31 IRQ_ETH0, IRQ_ETH1, IRQ_INTA, IRQ_INTD,
32}; 32};
33 33
34int __init pcibios_map_platform_irq(const struct pci_dev *pdev, u8 slot, u8 pin) 34int pcibios_map_platform_irq(const struct pci_dev *pdev, u8 slot, u8 pin)
35{ 35{
36 if (mach_is_lboxre2()) 36 if (mach_is_lboxre2())
37 return lboxre2_irq_tab[slot]; 37 return lboxre2_irq_tab[slot];
diff --git a/arch/sh/drivers/pci/fixups-sdk7780.c b/arch/sh/drivers/pci/fixups-sdk7780.c
index c0a015ae6ecf..24e96dfbdb22 100644
--- a/arch/sh/drivers/pci/fixups-sdk7780.c
+++ b/arch/sh/drivers/pci/fixups-sdk7780.c
@@ -22,7 +22,7 @@
22#define IRQ_INTD evt2irq(0xa80) 22#define IRQ_INTD evt2irq(0xa80)
23 23
24/* IDSEL [16][17][18][19][20][21][22][23][24][25][26][27][28][29][30][31] */ 24/* IDSEL [16][17][18][19][20][21][22][23][24][25][26][27][28][29][30][31] */
25static char sdk7780_irq_tab[4][16] __initdata = { 25static char sdk7780_irq_tab[4][16] = {
26 /* INTA */ 26 /* INTA */
27 { IRQ_INTA, IRQ_INTD, IRQ_INTC, IRQ_INTD, -1, -1, -1, -1, -1, -1, 27 { IRQ_INTA, IRQ_INTD, IRQ_INTC, IRQ_INTD, -1, -1, -1, -1, -1, -1,
28 -1, -1, -1, -1, -1, -1 }, 28 -1, -1, -1, -1, -1, -1 },
@@ -37,7 +37,7 @@ static char sdk7780_irq_tab[4][16] __initdata = {
37 -1, -1, -1 }, 37 -1, -1, -1 },
38}; 38};
39 39
40int __init pcibios_map_platform_irq(const struct pci_dev *pdev, u8 slot, u8 pin) 40int pcibios_map_platform_irq(const struct pci_dev *pdev, u8 slot, u8 pin)
41{ 41{
42 return sdk7780_irq_tab[pin-1][slot]; 42 return sdk7780_irq_tab[pin-1][slot];
43} 43}
diff --git a/arch/sh/drivers/pci/fixups-se7751.c b/arch/sh/drivers/pci/fixups-se7751.c
index 84a88ca92008..1cb8d0ac4fdb 100644
--- a/arch/sh/drivers/pci/fixups-se7751.c
+++ b/arch/sh/drivers/pci/fixups-se7751.c
@@ -7,7 +7,7 @@
7#include <linux/sh_intc.h> 7#include <linux/sh_intc.h>
8#include "pci-sh4.h" 8#include "pci-sh4.h"
9 9
10int __init pcibios_map_platform_irq(const struct pci_dev *, u8 slot, u8 pin) 10int pcibios_map_platform_irq(const struct pci_dev *, u8 slot, u8 pin)
11{ 11{
12 switch (slot) { 12 switch (slot) {
13 case 0: return evt2irq(0x3a0); 13 case 0: return evt2irq(0x3a0);
diff --git a/arch/sh/drivers/pci/fixups-sh03.c b/arch/sh/drivers/pci/fixups-sh03.c
index 16207bef9f52..55ac1ba2c74f 100644
--- a/arch/sh/drivers/pci/fixups-sh03.c
+++ b/arch/sh/drivers/pci/fixups-sh03.c
@@ -4,7 +4,7 @@
4#include <linux/pci.h> 4#include <linux/pci.h>
5#include <linux/sh_intc.h> 5#include <linux/sh_intc.h>
6 6
7int __init pcibios_map_platform_irq(const struct pci_dev *dev, u8 slot, u8 pin) 7int pcibios_map_platform_irq(const struct pci_dev *dev, u8 slot, u8 pin)
8{ 8{
9 int irq; 9 int irq;
10 10
diff --git a/arch/sh/drivers/pci/fixups-snapgear.c b/arch/sh/drivers/pci/fixups-snapgear.c
index 6e33ba4cd076..a931e5928f58 100644
--- a/arch/sh/drivers/pci/fixups-snapgear.c
+++ b/arch/sh/drivers/pci/fixups-snapgear.c
@@ -19,7 +19,7 @@
19#include <linux/sh_intc.h> 19#include <linux/sh_intc.h>
20#include "pci-sh4.h" 20#include "pci-sh4.h"
21 21
22int __init pcibios_map_platform_irq(const struct pci_dev *pdev, u8 slot, u8 pin) 22int pcibios_map_platform_irq(const struct pci_dev *pdev, u8 slot, u8 pin)
23{ 23{
24 int irq = -1; 24 int irq = -1;
25 25
diff --git a/arch/sh/drivers/pci/fixups-titan.c b/arch/sh/drivers/pci/fixups-titan.c
index bd1addb1b8be..a9d563e479d5 100644
--- a/arch/sh/drivers/pci/fixups-titan.c
+++ b/arch/sh/drivers/pci/fixups-titan.c
@@ -19,7 +19,7 @@
19#include <mach/titan.h> 19#include <mach/titan.h>
20#include "pci-sh4.h" 20#include "pci-sh4.h"
21 21
22static char titan_irq_tab[] __initdata = { 22static char titan_irq_tab[] = {
23 TITAN_IRQ_WAN, 23 TITAN_IRQ_WAN,
24 TITAN_IRQ_LAN, 24 TITAN_IRQ_LAN,
25 TITAN_IRQ_MPCIA, 25 TITAN_IRQ_MPCIA,
@@ -27,7 +27,7 @@ static char titan_irq_tab[] __initdata = {
27 TITAN_IRQ_USB, 27 TITAN_IRQ_USB,
28}; 28};
29 29
30int __init pcibios_map_platform_irq(const struct pci_dev *pdev, u8 slot, u8 pin) 30int pcibios_map_platform_irq(const struct pci_dev *pdev, u8 slot, u8 pin)
31{ 31{
32 int irq = titan_irq_tab[slot]; 32 int irq = titan_irq_tab[slot];
33 33
diff --git a/arch/sh/drivers/pci/pcie-sh7786.c b/arch/sh/drivers/pci/pcie-sh7786.c
index a162a7f86b2e..0167a7352719 100644
--- a/arch/sh/drivers/pci/pcie-sh7786.c
+++ b/arch/sh/drivers/pci/pcie-sh7786.c
@@ -467,7 +467,7 @@ static int __init pcie_init(struct sh7786_pcie_port *port)
467 return 0; 467 return 0;
468} 468}
469 469
470int __init pcibios_map_platform_irq(const struct pci_dev *pdev, u8 slot, u8 pin) 470int pcibios_map_platform_irq(const struct pci_dev *pdev, u8 slot, u8 pin)
471{ 471{
472 return evt2irq(0xae0); 472 return evt2irq(0xae0);
473} 473}