diff options
author | Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> | 2011-11-17 12:56:16 -0500 |
---|---|---|
committer | Kumar Gala <galak@kernel.crashing.org> | 2011-11-24 03:01:41 -0500 |
commit | 543a07b17389d751dbe2683d34e79be7c10ab6ac (patch) | |
tree | cca7d8d29e7e73a185e9c377ee128bcff229ffe0 /arch/powerpc/platforms | |
parent | 5d71349580757eb5f109fb1e396a8544f3043160 (diff) |
powerpc/85xx: separate cpm2 pic init
Separate handling of CPM2 PIC initialization to mpc85xx_cpm2_pic_init()
function.
Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/platforms')
-rw-r--r-- | arch/powerpc/platforms/85xx/Makefile | 2 | ||||
-rw-r--r-- | arch/powerpc/platforms/85xx/ksi8560.c | 29 | ||||
-rw-r--r-- | arch/powerpc/platforms/85xx/mpc8536_ds.c | 2 | ||||
-rw-r--r-- | arch/powerpc/platforms/85xx/mpc85xx.h | 9 | ||||
-rw-r--r-- | arch/powerpc/platforms/85xx/mpc85xx_ads.c | 34 | ||||
-rw-r--r-- | arch/powerpc/platforms/85xx/mpc85xx_cds.c | 2 | ||||
-rw-r--r-- | arch/powerpc/platforms/85xx/mpc85xx_common.c | 49 | ||||
-rw-r--r-- | arch/powerpc/platforms/85xx/mpc85xx_ds.c | 2 | ||||
-rw-r--r-- | arch/powerpc/platforms/85xx/mpc85xx_mds.c | 2 | ||||
-rw-r--r-- | arch/powerpc/platforms/85xx/mpc85xx_rdb.c | 2 | ||||
-rw-r--r-- | arch/powerpc/platforms/85xx/p1022_ds.c | 2 | ||||
-rw-r--r-- | arch/powerpc/platforms/85xx/sbc8560.c | 34 | ||||
-rw-r--r-- | arch/powerpc/platforms/85xx/socrates.c | 1 | ||||
-rw-r--r-- | arch/powerpc/platforms/85xx/stx_gp3.c | 37 | ||||
-rw-r--r-- | arch/powerpc/platforms/85xx/tqm85xx.c | 37 | ||||
-rw-r--r-- | arch/powerpc/platforms/85xx/xes_mpc85xx.c | 2 |
16 files changed, 89 insertions, 157 deletions
diff --git a/arch/powerpc/platforms/85xx/Makefile b/arch/powerpc/platforms/85xx/Makefile index bc5acb95917a..b6beec8c8378 100644 --- a/arch/powerpc/platforms/85xx/Makefile +++ b/arch/powerpc/platforms/85xx/Makefile | |||
@@ -3,6 +3,8 @@ | |||
3 | # | 3 | # |
4 | obj-$(CONFIG_SMP) += smp.o | 4 | obj-$(CONFIG_SMP) += smp.o |
5 | 5 | ||
6 | obj-y += mpc85xx_common.o | ||
7 | |||
6 | obj-$(CONFIG_MPC8540_ADS) += mpc85xx_ads.o | 8 | obj-$(CONFIG_MPC8540_ADS) += mpc85xx_ads.o |
7 | obj-$(CONFIG_MPC8560_ADS) += mpc85xx_ads.o | 9 | obj-$(CONFIG_MPC8560_ADS) += mpc85xx_ads.o |
8 | obj-$(CONFIG_MPC85xx_CDS) += mpc85xx_cds.o | 10 | obj-$(CONFIG_MPC85xx_CDS) += mpc85xx_cds.o |
diff --git a/arch/powerpc/platforms/85xx/ksi8560.c b/arch/powerpc/platforms/85xx/ksi8560.c index c46f9359be15..bf9b1e5f10f9 100644 --- a/arch/powerpc/platforms/85xx/ksi8560.c +++ b/arch/powerpc/platforms/85xx/ksi8560.c | |||
@@ -35,6 +35,7 @@ | |||
35 | #include <asm/cpm2.h> | 35 | #include <asm/cpm2.h> |
36 | #include <sysdev/cpm2_pic.h> | 36 | #include <sysdev/cpm2_pic.h> |
37 | 37 | ||
38 | #include "mpc85xx.h" | ||
38 | 39 | ||
39 | #define KSI8560_CPLD_HVR 0x04 /* Hardware Version Register */ | 40 | #define KSI8560_CPLD_HVR 0x04 /* Hardware Version Register */ |
40 | #define KSI8560_CPLD_PVR 0x08 /* PLD Version Register */ | 41 | #define KSI8560_CPLD_PVR 0x08 /* PLD Version Register */ |
@@ -54,25 +55,11 @@ static void machine_restart(char *cmd) | |||
54 | for (;;); | 55 | for (;;); |
55 | } | 56 | } |
56 | 57 | ||
57 | static void cpm2_cascade(unsigned int irq, struct irq_desc *desc) | ||
58 | { | ||
59 | struct irq_chip *chip = irq_desc_get_chip(desc); | ||
60 | int cascade_irq; | ||
61 | |||
62 | while ((cascade_irq = cpm2_get_irq()) >= 0) | ||
63 | generic_handle_irq(cascade_irq); | ||
64 | |||
65 | chip->irq_eoi(&desc->irq_data); | ||
66 | } | ||
67 | |||
68 | static void __init ksi8560_pic_init(void) | 58 | static void __init ksi8560_pic_init(void) |
69 | { | 59 | { |
70 | struct mpic *mpic; | 60 | struct mpic *mpic; |
71 | struct resource r; | 61 | struct resource r; |
72 | struct device_node *np; | 62 | struct device_node *np; |
73 | #ifdef CONFIG_CPM2 | ||
74 | int irq; | ||
75 | #endif | ||
76 | 63 | ||
77 | np = of_find_node_by_type(NULL, "open-pic"); | 64 | np = of_find_node_by_type(NULL, "open-pic"); |
78 | 65 | ||
@@ -95,19 +82,7 @@ static void __init ksi8560_pic_init(void) | |||
95 | 82 | ||
96 | mpic_init(mpic); | 83 | mpic_init(mpic); |
97 | 84 | ||
98 | #ifdef CONFIG_CPM2 | 85 | mpc85xx_cpm2_pic_init(); |
99 | /* Setup CPM2 PIC */ | ||
100 | np = of_find_compatible_node(NULL, NULL, "fsl,cpm2-pic"); | ||
101 | if (np == NULL) { | ||
102 | printk(KERN_ERR "PIC init: can not find fsl,cpm2-pic node\n"); | ||
103 | return; | ||
104 | } | ||
105 | irq = irq_of_parse_and_map(np, 0); | ||
106 | |||
107 | cpm2_pic_init(np); | ||
108 | of_node_put(np); | ||
109 | irq_set_chained_handler(irq, cpm2_cascade); | ||
110 | #endif | ||
111 | } | 86 | } |
112 | 87 | ||
113 | #ifdef CONFIG_CPM2 | 88 | #ifdef CONFIG_CPM2 |
diff --git a/arch/powerpc/platforms/85xx/mpc8536_ds.c b/arch/powerpc/platforms/85xx/mpc8536_ds.c index f79f2f102141..6a4b2c1372f4 100644 --- a/arch/powerpc/platforms/85xx/mpc8536_ds.c +++ b/arch/powerpc/platforms/85xx/mpc8536_ds.c | |||
@@ -32,6 +32,8 @@ | |||
32 | #include <sysdev/fsl_soc.h> | 32 | #include <sysdev/fsl_soc.h> |
33 | #include <sysdev/fsl_pci.h> | 33 | #include <sysdev/fsl_pci.h> |
34 | 34 | ||
35 | #include "mpc85xx.h" | ||
36 | |||
35 | void __init mpc8536_ds_pic_init(void) | 37 | void __init mpc8536_ds_pic_init(void) |
36 | { | 38 | { |
37 | struct mpic *mpic; | 39 | struct mpic *mpic; |
diff --git a/arch/powerpc/platforms/85xx/mpc85xx.h b/arch/powerpc/platforms/85xx/mpc85xx.h new file mode 100644 index 000000000000..fa55e8b08505 --- /dev/null +++ b/arch/powerpc/platforms/85xx/mpc85xx.h | |||
@@ -0,0 +1,9 @@ | |||
1 | #ifndef MPC85xx_H | ||
2 | #define MPC85xx_H | ||
3 | #ifdef CONFIG_CPM2 | ||
4 | extern void mpc85xx_cpm2_pic_init(void); | ||
5 | #else | ||
6 | static inline void __init mpc85xx_cpm2_pic_init(void) {} | ||
7 | #endif /* CONFIG_CPM2 */ | ||
8 | |||
9 | #endif | ||
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_ads.c b/arch/powerpc/platforms/85xx/mpc85xx_ads.c index 3b2c9bb66199..8b8f7a201166 100644 --- a/arch/powerpc/platforms/85xx/mpc85xx_ads.c +++ b/arch/powerpc/platforms/85xx/mpc85xx_ads.c | |||
@@ -35,6 +35,8 @@ | |||
35 | #include <sysdev/cpm2_pic.h> | 35 | #include <sysdev/cpm2_pic.h> |
36 | #endif | 36 | #endif |
37 | 37 | ||
38 | #include "mpc85xx.h" | ||
39 | |||
38 | #ifdef CONFIG_PCI | 40 | #ifdef CONFIG_PCI |
39 | static int mpc85xx_exclude_device(struct pci_controller *hose, | 41 | static int mpc85xx_exclude_device(struct pci_controller *hose, |
40 | u_char bus, u_char devfn) | 42 | u_char bus, u_char devfn) |
@@ -46,29 +48,11 @@ static int mpc85xx_exclude_device(struct pci_controller *hose, | |||
46 | } | 48 | } |
47 | #endif /* CONFIG_PCI */ | 49 | #endif /* CONFIG_PCI */ |
48 | 50 | ||
49 | #ifdef CONFIG_CPM2 | ||
50 | |||
51 | static void cpm2_cascade(unsigned int irq, struct irq_desc *desc) | ||
52 | { | ||
53 | struct irq_chip *chip = irq_desc_get_chip(desc); | ||
54 | int cascade_irq; | ||
55 | |||
56 | while ((cascade_irq = cpm2_get_irq()) >= 0) | ||
57 | generic_handle_irq(cascade_irq); | ||
58 | |||
59 | chip->irq_eoi(&desc->irq_data); | ||
60 | } | ||
61 | |||
62 | #endif /* CONFIG_CPM2 */ | ||
63 | |||
64 | static void __init mpc85xx_ads_pic_init(void) | 51 | static void __init mpc85xx_ads_pic_init(void) |
65 | { | 52 | { |
66 | struct mpic *mpic; | 53 | struct mpic *mpic; |
67 | struct resource r; | 54 | struct resource r; |
68 | struct device_node *np = NULL; | 55 | struct device_node *np = NULL; |
69 | #ifdef CONFIG_CPM2 | ||
70 | int irq; | ||
71 | #endif | ||
72 | 56 | ||
73 | np = of_find_node_by_type(np, "open-pic"); | 57 | np = of_find_node_by_type(np, "open-pic"); |
74 | if (!np) { | 58 | if (!np) { |
@@ -90,19 +74,7 @@ static void __init mpc85xx_ads_pic_init(void) | |||
90 | 74 | ||
91 | mpic_init(mpic); | 75 | mpic_init(mpic); |
92 | 76 | ||
93 | #ifdef CONFIG_CPM2 | 77 | mpc85xx_cpm2_pic_init(); |
94 | /* Setup CPM2 PIC */ | ||
95 | np = of_find_compatible_node(NULL, NULL, "fsl,cpm2-pic"); | ||
96 | if (np == NULL) { | ||
97 | printk(KERN_ERR "PIC init: can not find fsl,cpm2-pic node\n"); | ||
98 | return; | ||
99 | } | ||
100 | irq = irq_of_parse_and_map(np, 0); | ||
101 | |||
102 | cpm2_pic_init(np); | ||
103 | of_node_put(np); | ||
104 | irq_set_chained_handler(irq, cpm2_cascade); | ||
105 | #endif | ||
106 | } | 78 | } |
107 | 79 | ||
108 | /* | 80 | /* |
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_cds.c b/arch/powerpc/platforms/85xx/mpc85xx_cds.c index 66cb8d64079f..4f68bb7b381f 100644 --- a/arch/powerpc/platforms/85xx/mpc85xx_cds.c +++ b/arch/powerpc/platforms/85xx/mpc85xx_cds.c | |||
@@ -46,6 +46,8 @@ | |||
46 | #include <sysdev/fsl_soc.h> | 46 | #include <sysdev/fsl_soc.h> |
47 | #include <sysdev/fsl_pci.h> | 47 | #include <sysdev/fsl_pci.h> |
48 | 48 | ||
49 | #include "mpc85xx.h" | ||
50 | |||
49 | /* CADMUS info */ | 51 | /* CADMUS info */ |
50 | /* xxx - galak, move into device tree */ | 52 | /* xxx - galak, move into device tree */ |
51 | #define CADMUS_BASE (0xf8004000) | 53 | #define CADMUS_BASE (0xf8004000) |
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_common.c b/arch/powerpc/platforms/85xx/mpc85xx_common.c new file mode 100644 index 000000000000..49d781c36966 --- /dev/null +++ b/arch/powerpc/platforms/85xx/mpc85xx_common.c | |||
@@ -0,0 +1,49 @@ | |||
1 | /* | ||
2 | * Routines common to most mpc85xx-based boards. | ||
3 | * | ||
4 | * This is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License version 2 as | ||
6 | * published by the Free Software Foundation. | ||
7 | */ | ||
8 | #include <linux/of_platform.h> | ||
9 | |||
10 | #include <sysdev/cpm2_pic.h> | ||
11 | |||
12 | #include "mpc85xx.h" | ||
13 | |||
14 | #ifdef CONFIG_CPM2 | ||
15 | static void cpm2_cascade(unsigned int irq, struct irq_desc *desc) | ||
16 | { | ||
17 | struct irq_chip *chip = irq_desc_get_chip(desc); | ||
18 | int cascade_irq; | ||
19 | |||
20 | while ((cascade_irq = cpm2_get_irq()) >= 0) | ||
21 | generic_handle_irq(cascade_irq); | ||
22 | |||
23 | chip->irq_eoi(&desc->irq_data); | ||
24 | } | ||
25 | |||
26 | |||
27 | void __init mpc85xx_cpm2_pic_init(void) | ||
28 | { | ||
29 | struct device_node *np; | ||
30 | int irq; | ||
31 | |||
32 | /* Setup CPM2 PIC */ | ||
33 | np = of_find_compatible_node(NULL, NULL, "fsl,cpm2-pic"); | ||
34 | if (np == NULL) { | ||
35 | printk(KERN_ERR "PIC init: can not find fsl,cpm2-pic node\n"); | ||
36 | return; | ||
37 | } | ||
38 | irq = irq_of_parse_and_map(np, 0); | ||
39 | if (irq == NO_IRQ) { | ||
40 | of_node_put(np); | ||
41 | printk(KERN_ERR "PIC init: got no IRQ for cpm cascade\n"); | ||
42 | return; | ||
43 | } | ||
44 | |||
45 | cpm2_pic_init(np); | ||
46 | of_node_put(np); | ||
47 | irq_set_chained_handler(irq, cpm2_cascade); | ||
48 | } | ||
49 | #endif | ||
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_ds.c b/arch/powerpc/platforms/85xx/mpc85xx_ds.c index 1b9a8cf1873a..55075b966b62 100644 --- a/arch/powerpc/platforms/85xx/mpc85xx_ds.c +++ b/arch/powerpc/platforms/85xx/mpc85xx_ds.c | |||
@@ -36,6 +36,8 @@ | |||
36 | #include <sysdev/fsl_soc.h> | 36 | #include <sysdev/fsl_soc.h> |
37 | #include <sysdev/fsl_pci.h> | 37 | #include <sysdev/fsl_pci.h> |
38 | 38 | ||
39 | #include "mpc85xx.h" | ||
40 | |||
39 | #undef DEBUG | 41 | #undef DEBUG |
40 | 42 | ||
41 | #ifdef DEBUG | 43 | #ifdef DEBUG |
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_mds.c b/arch/powerpc/platforms/85xx/mpc85xx_mds.c index 7968ceda0633..9270da42b8bf 100644 --- a/arch/powerpc/platforms/85xx/mpc85xx_mds.c +++ b/arch/powerpc/platforms/85xx/mpc85xx_mds.c | |||
@@ -52,6 +52,8 @@ | |||
52 | #include <asm/mpic.h> | 52 | #include <asm/mpic.h> |
53 | #include <asm/swiotlb.h> | 53 | #include <asm/swiotlb.h> |
54 | 54 | ||
55 | #include "mpc85xx.h" | ||
56 | |||
55 | #undef DEBUG | 57 | #undef DEBUG |
56 | #ifdef DEBUG | 58 | #ifdef DEBUG |
57 | #define DBG(fmt...) udbg_printf(fmt) | 59 | #define DBG(fmt...) udbg_printf(fmt) |
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_rdb.c b/arch/powerpc/platforms/85xx/mpc85xx_rdb.c index f5ff9110c97e..824d2b676d56 100644 --- a/arch/powerpc/platforms/85xx/mpc85xx_rdb.c +++ b/arch/powerpc/platforms/85xx/mpc85xx_rdb.c | |||
@@ -30,6 +30,8 @@ | |||
30 | #include <sysdev/fsl_soc.h> | 30 | #include <sysdev/fsl_soc.h> |
31 | #include <sysdev/fsl_pci.h> | 31 | #include <sysdev/fsl_pci.h> |
32 | 32 | ||
33 | #include "mpc85xx.h" | ||
34 | |||
33 | #undef DEBUG | 35 | #undef DEBUG |
34 | 36 | ||
35 | #ifdef DEBUG | 37 | #ifdef DEBUG |
diff --git a/arch/powerpc/platforms/85xx/p1022_ds.c b/arch/powerpc/platforms/85xx/p1022_ds.c index fda15716fada..c75ec1c8ea65 100644 --- a/arch/powerpc/platforms/85xx/p1022_ds.c +++ b/arch/powerpc/platforms/85xx/p1022_ds.c | |||
@@ -27,6 +27,8 @@ | |||
27 | #include <sysdev/fsl_pci.h> | 27 | #include <sysdev/fsl_pci.h> |
28 | #include <asm/fsl_guts.h> | 28 | #include <asm/fsl_guts.h> |
29 | 29 | ||
30 | #include "mpc85xx.h" | ||
31 | |||
30 | #if defined(CONFIG_FB_FSL_DIU) || defined(CONFIG_FB_FSL_DIU_MODULE) | 32 | #if defined(CONFIG_FB_FSL_DIU) || defined(CONFIG_FB_FSL_DIU_MODULE) |
31 | 33 | ||
32 | /* | 34 | /* |
diff --git a/arch/powerpc/platforms/85xx/sbc8560.c b/arch/powerpc/platforms/85xx/sbc8560.c index cebd786dc334..43711f895778 100644 --- a/arch/powerpc/platforms/85xx/sbc8560.c +++ b/arch/powerpc/platforms/85xx/sbc8560.c | |||
@@ -32,34 +32,18 @@ | |||
32 | #include <sysdev/fsl_soc.h> | 32 | #include <sysdev/fsl_soc.h> |
33 | #include <sysdev/fsl_pci.h> | 33 | #include <sysdev/fsl_pci.h> |
34 | 34 | ||
35 | #include "mpc85xx.h" | ||
36 | |||
35 | #ifdef CONFIG_CPM2 | 37 | #ifdef CONFIG_CPM2 |
36 | #include <asm/cpm2.h> | 38 | #include <asm/cpm2.h> |
37 | #include <sysdev/cpm2_pic.h> | 39 | #include <sysdev/cpm2_pic.h> |
38 | #endif | 40 | #endif |
39 | 41 | ||
40 | #ifdef CONFIG_CPM2 | ||
41 | |||
42 | static void cpm2_cascade(unsigned int irq, struct irq_desc *desc) | ||
43 | { | ||
44 | struct irq_chip *chip = irq_desc_get_chip(desc); | ||
45 | int cascade_irq; | ||
46 | |||
47 | while ((cascade_irq = cpm2_get_irq()) >= 0) | ||
48 | generic_handle_irq(cascade_irq); | ||
49 | |||
50 | chip->irq_eoi(&desc->irq_data); | ||
51 | } | ||
52 | |||
53 | #endif /* CONFIG_CPM2 */ | ||
54 | |||
55 | static void __init sbc8560_pic_init(void) | 42 | static void __init sbc8560_pic_init(void) |
56 | { | 43 | { |
57 | struct mpic *mpic; | 44 | struct mpic *mpic; |
58 | struct resource r; | 45 | struct resource r; |
59 | struct device_node *np = NULL; | 46 | struct device_node *np = NULL; |
60 | #ifdef CONFIG_CPM2 | ||
61 | int irq; | ||
62 | #endif | ||
63 | 47 | ||
64 | np = of_find_node_by_type(np, "open-pic"); | 48 | np = of_find_node_by_type(np, "open-pic"); |
65 | if (!np) { | 49 | if (!np) { |
@@ -81,19 +65,7 @@ static void __init sbc8560_pic_init(void) | |||
81 | 65 | ||
82 | mpic_init(mpic); | 66 | mpic_init(mpic); |
83 | 67 | ||
84 | #ifdef CONFIG_CPM2 | 68 | mpc85xx_cpm2_pic_init(); |
85 | /* Setup CPM2 PIC */ | ||
86 | np = of_find_compatible_node(NULL, NULL, "fsl,cpm2-pic"); | ||
87 | if (np == NULL) { | ||
88 | printk(KERN_ERR "PIC init: can not find fsl,cpm2-pic node\n"); | ||
89 | return; | ||
90 | } | ||
91 | irq = irq_of_parse_and_map(np, 0); | ||
92 | |||
93 | cpm2_pic_init(np); | ||
94 | of_node_put(np); | ||
95 | irq_set_chained_handler(irq, cpm2_cascade); | ||
96 | #endif | ||
97 | } | 69 | } |
98 | 70 | ||
99 | /* | 71 | /* |
diff --git a/arch/powerpc/platforms/85xx/socrates.c b/arch/powerpc/platforms/85xx/socrates.c index 747d8fb3ab82..9d0fc283c1a1 100644 --- a/arch/powerpc/platforms/85xx/socrates.c +++ b/arch/powerpc/platforms/85xx/socrates.c | |||
@@ -41,6 +41,7 @@ | |||
41 | #include <sysdev/fsl_soc.h> | 41 | #include <sysdev/fsl_soc.h> |
42 | #include <sysdev/fsl_pci.h> | 42 | #include <sysdev/fsl_pci.h> |
43 | 43 | ||
44 | #include "mpc85xx.h" | ||
44 | #include "socrates_fpga_pic.h" | 45 | #include "socrates_fpga_pic.h" |
45 | 46 | ||
46 | static void __init socrates_pic_init(void) | 47 | static void __init socrates_pic_init(void) |
diff --git a/arch/powerpc/platforms/85xx/stx_gp3.c b/arch/powerpc/platforms/85xx/stx_gp3.c index 5387e9f06bdb..d24192b70823 100644 --- a/arch/powerpc/platforms/85xx/stx_gp3.c +++ b/arch/powerpc/platforms/85xx/stx_gp3.c | |||
@@ -40,20 +40,10 @@ | |||
40 | #include <sysdev/fsl_soc.h> | 40 | #include <sysdev/fsl_soc.h> |
41 | #include <sysdev/fsl_pci.h> | 41 | #include <sysdev/fsl_pci.h> |
42 | 42 | ||
43 | #include "mpc85xx.h" | ||
44 | |||
43 | #ifdef CONFIG_CPM2 | 45 | #ifdef CONFIG_CPM2 |
44 | #include <asm/cpm2.h> | 46 | #include <asm/cpm2.h> |
45 | #include <sysdev/cpm2_pic.h> | ||
46 | |||
47 | static void cpm2_cascade(unsigned int irq, struct irq_desc *desc) | ||
48 | { | ||
49 | struct irq_chip *chip = irq_desc_get_chip(desc); | ||
50 | int cascade_irq; | ||
51 | |||
52 | while ((cascade_irq = cpm2_get_irq()) >= 0) | ||
53 | generic_handle_irq(cascade_irq); | ||
54 | |||
55 | chip->irq_eoi(&desc->irq_data); | ||
56 | } | ||
57 | #endif /* CONFIG_CPM2 */ | 47 | #endif /* CONFIG_CPM2 */ |
58 | 48 | ||
59 | static void __init stx_gp3_pic_init(void) | 49 | static void __init stx_gp3_pic_init(void) |
@@ -61,9 +51,6 @@ static void __init stx_gp3_pic_init(void) | |||
61 | struct mpic *mpic; | 51 | struct mpic *mpic; |
62 | struct resource r; | 52 | struct resource r; |
63 | struct device_node *np; | 53 | struct device_node *np; |
64 | #ifdef CONFIG_CPM2 | ||
65 | int irq; | ||
66 | #endif | ||
67 | 54 | ||
68 | np = of_find_node_by_type(NULL, "open-pic"); | 55 | np = of_find_node_by_type(NULL, "open-pic"); |
69 | if (!np) { | 56 | if (!np) { |
@@ -85,25 +72,7 @@ static void __init stx_gp3_pic_init(void) | |||
85 | 72 | ||
86 | mpic_init(mpic); | 73 | mpic_init(mpic); |
87 | 74 | ||
88 | #ifdef CONFIG_CPM2 | 75 | mpc85xx_cpm2_pic_init(); |
89 | /* Setup CPM2 PIC */ | ||
90 | np = of_find_compatible_node(NULL, NULL, "fsl,cpm2-pic"); | ||
91 | if (np == NULL) { | ||
92 | printk(KERN_ERR "PIC init: can not find fsl,cpm2-pic node\n"); | ||
93 | return; | ||
94 | } | ||
95 | irq = irq_of_parse_and_map(np, 0); | ||
96 | |||
97 | if (irq == NO_IRQ) { | ||
98 | of_node_put(np); | ||
99 | printk(KERN_ERR "PIC init: got no IRQ for cpm cascade\n"); | ||
100 | return; | ||
101 | } | ||
102 | |||
103 | cpm2_pic_init(np); | ||
104 | of_node_put(np); | ||
105 | irq_set_chained_handler(irq, cpm2_cascade); | ||
106 | #endif | ||
107 | } | 76 | } |
108 | 77 | ||
109 | /* | 78 | /* |
diff --git a/arch/powerpc/platforms/85xx/tqm85xx.c b/arch/powerpc/platforms/85xx/tqm85xx.c index 325de772725a..b9e53ccf1143 100644 --- a/arch/powerpc/platforms/85xx/tqm85xx.c +++ b/arch/powerpc/platforms/85xx/tqm85xx.c | |||
@@ -38,20 +38,10 @@ | |||
38 | #include <sysdev/fsl_soc.h> | 38 | #include <sysdev/fsl_soc.h> |
39 | #include <sysdev/fsl_pci.h> | 39 | #include <sysdev/fsl_pci.h> |
40 | 40 | ||
41 | #include "mpc85xx.h" | ||
42 | |||
41 | #ifdef CONFIG_CPM2 | 43 | #ifdef CONFIG_CPM2 |
42 | #include <asm/cpm2.h> | 44 | #include <asm/cpm2.h> |
43 | #include <sysdev/cpm2_pic.h> | ||
44 | |||
45 | static void cpm2_cascade(unsigned int irq, struct irq_desc *desc) | ||
46 | { | ||
47 | struct irq_chip *chip = irq_desc_get_chip(desc); | ||
48 | int cascade_irq; | ||
49 | |||
50 | while ((cascade_irq = cpm2_get_irq()) >= 0) | ||
51 | generic_handle_irq(cascade_irq); | ||
52 | |||
53 | chip->irq_eoi(&desc->irq_data); | ||
54 | } | ||
55 | #endif /* CONFIG_CPM2 */ | 45 | #endif /* CONFIG_CPM2 */ |
56 | 46 | ||
57 | static void __init tqm85xx_pic_init(void) | 47 | static void __init tqm85xx_pic_init(void) |
@@ -59,9 +49,6 @@ static void __init tqm85xx_pic_init(void) | |||
59 | struct mpic *mpic; | 49 | struct mpic *mpic; |
60 | struct resource r; | 50 | struct resource r; |
61 | struct device_node *np; | 51 | struct device_node *np; |
62 | #ifdef CONFIG_CPM2 | ||
63 | int irq; | ||
64 | #endif | ||
65 | 52 | ||
66 | np = of_find_node_by_type(NULL, "open-pic"); | 53 | np = of_find_node_by_type(NULL, "open-pic"); |
67 | if (!np) { | 54 | if (!np) { |
@@ -83,25 +70,7 @@ static void __init tqm85xx_pic_init(void) | |||
83 | 70 | ||
84 | mpic_init(mpic); | 71 | mpic_init(mpic); |
85 | 72 | ||
86 | #ifdef CONFIG_CPM2 | 73 | mpc85xx_cpm2_pic_init(); |
87 | /* Setup CPM2 PIC */ | ||
88 | np = of_find_compatible_node(NULL, NULL, "fsl,cpm2-pic"); | ||
89 | if (np == NULL) { | ||
90 | printk(KERN_ERR "PIC init: can not find fsl,cpm2-pic node\n"); | ||
91 | return; | ||
92 | } | ||
93 | irq = irq_of_parse_and_map(np, 0); | ||
94 | |||
95 | if (irq == NO_IRQ) { | ||
96 | of_node_put(np); | ||
97 | printk(KERN_ERR "PIC init: got no IRQ for cpm cascade\n"); | ||
98 | return; | ||
99 | } | ||
100 | |||
101 | cpm2_pic_init(np); | ||
102 | of_node_put(np); | ||
103 | irq_set_chained_handler(irq, cpm2_cascade); | ||
104 | #endif | ||
105 | } | 74 | } |
106 | 75 | ||
107 | /* | 76 | /* |
diff --git a/arch/powerpc/platforms/85xx/xes_mpc85xx.c b/arch/powerpc/platforms/85xx/xes_mpc85xx.c index a9dc5e795123..ab7025a7e9a5 100644 --- a/arch/powerpc/platforms/85xx/xes_mpc85xx.c +++ b/arch/powerpc/platforms/85xx/xes_mpc85xx.c | |||
@@ -33,6 +33,8 @@ | |||
33 | #include <sysdev/fsl_soc.h> | 33 | #include <sysdev/fsl_soc.h> |
34 | #include <sysdev/fsl_pci.h> | 34 | #include <sysdev/fsl_pci.h> |
35 | 35 | ||
36 | #include "mpc85xx.h" | ||
37 | |||
36 | /* A few bit definitions needed for fixups on some boards */ | 38 | /* A few bit definitions needed for fixups on some boards */ |
37 | #define MPC85xx_L2CTL_L2E 0x80000000 /* L2 enable */ | 39 | #define MPC85xx_L2CTL_L2E 0x80000000 /* L2 enable */ |
38 | #define MPC85xx_L2CTL_L2I 0x40000000 /* L2 flash invalidate */ | 40 | #define MPC85xx_L2CTL_L2I 0x40000000 /* L2 flash invalidate */ |