diff options
32 files changed, 35 insertions, 59 deletions
diff --git a/arch/powerpc/include/asm/mpic.h b/arch/powerpc/include/asm/mpic.h index 2ebac31d1bbd..d7e3fec343d8 100644 --- a/arch/powerpc/include/asm/mpic.h +++ b/arch/powerpc/include/asm/mpic.h | |||
@@ -348,8 +348,6 @@ struct mpic | |||
348 | #define MPIC_U3_HT_IRQS 0x00000004 | 348 | #define MPIC_U3_HT_IRQS 0x00000004 |
349 | /* Broken IPI registers (autodetected) */ | 349 | /* Broken IPI registers (autodetected) */ |
350 | #define MPIC_BROKEN_IPI 0x00000008 | 350 | #define MPIC_BROKEN_IPI 0x00000008 |
351 | /* MPIC wants a reset */ | ||
352 | #define MPIC_WANTS_RESET 0x00000010 | ||
353 | /* Spurious vector requires EOI */ | 351 | /* Spurious vector requires EOI */ |
354 | #define MPIC_SPV_EOI 0x00000020 | 352 | #define MPIC_SPV_EOI 0x00000020 |
355 | /* No passthrough disable */ | 353 | /* No passthrough disable */ |
@@ -366,9 +364,7 @@ struct mpic | |||
366 | #define MPIC_SINGLE_DEST_CPU 0x00001000 | 364 | #define MPIC_SINGLE_DEST_CPU 0x00001000 |
367 | /* Enable CoreInt delivery of interrupts */ | 365 | /* Enable CoreInt delivery of interrupts */ |
368 | #define MPIC_ENABLE_COREINT 0x00002000 | 366 | #define MPIC_ENABLE_COREINT 0x00002000 |
369 | /* Disable resetting of the MPIC. | 367 | /* Do not reset the MPIC during initialization */ |
370 | * NOTE: This flag trumps MPIC_WANTS_RESET. | ||
371 | */ | ||
372 | #define MPIC_NO_RESET 0x00004000 | 368 | #define MPIC_NO_RESET 0x00004000 |
373 | /* Freescale MPIC (compatible includes "fsl,mpic") */ | 369 | /* Freescale MPIC (compatible includes "fsl,mpic") */ |
374 | #define MPIC_FSL 0x00008000 | 370 | #define MPIC_FSL 0x00008000 |
diff --git a/arch/powerpc/platforms/44x/currituck.c b/arch/powerpc/platforms/44x/currituck.c index 3f6229b5dee0..583e67fee37e 100644 --- a/arch/powerpc/platforms/44x/currituck.c +++ b/arch/powerpc/platforms/44x/currituck.c | |||
@@ -83,7 +83,7 @@ static void __init ppc47x_init_irq(void) | |||
83 | * device-tree, just pass 0 to all arguments | 83 | * device-tree, just pass 0 to all arguments |
84 | */ | 84 | */ |
85 | struct mpic *mpic = | 85 | struct mpic *mpic = |
86 | mpic_alloc(np, 0, 0, 0, 0, " MPIC "); | 86 | mpic_alloc(np, 0, MPIC_NO_RESET, 0, 0, " MPIC "); |
87 | BUG_ON(mpic == NULL); | 87 | BUG_ON(mpic == NULL); |
88 | mpic_init(mpic); | 88 | mpic_init(mpic); |
89 | ppc_md.get_irq = mpic_get_irq; | 89 | ppc_md.get_irq = mpic_get_irq; |
diff --git a/arch/powerpc/platforms/44x/iss4xx.c b/arch/powerpc/platforms/44x/iss4xx.c index 5b8cdbb82f80..a28a8629727e 100644 --- a/arch/powerpc/platforms/44x/iss4xx.c +++ b/arch/powerpc/platforms/44x/iss4xx.c | |||
@@ -71,8 +71,7 @@ static void __init iss4xx_init_irq(void) | |||
71 | /* The MPIC driver will get everything it needs from the | 71 | /* The MPIC driver will get everything it needs from the |
72 | * device-tree, just pass 0 to all arguments | 72 | * device-tree, just pass 0 to all arguments |
73 | */ | 73 | */ |
74 | struct mpic *mpic = mpic_alloc(np, 0, 0, 0, 0, | 74 | struct mpic *mpic = mpic_alloc(np, 0, MPIC_NO_RESET, 0, 0, " MPIC "); |
75 | " MPIC "); | ||
76 | BUG_ON(mpic == NULL); | 75 | BUG_ON(mpic == NULL); |
77 | mpic_init(mpic); | 76 | mpic_init(mpic); |
78 | ppc_md.get_irq = mpic_get_irq; | 77 | ppc_md.get_irq = mpic_get_irq; |
diff --git a/arch/powerpc/platforms/85xx/corenet_ds.c b/arch/powerpc/platforms/85xx/corenet_ds.c index 768479b986d4..df69e99e511c 100644 --- a/arch/powerpc/platforms/85xx/corenet_ds.c +++ b/arch/powerpc/platforms/85xx/corenet_ds.c | |||
@@ -36,7 +36,8 @@ | |||
36 | void __init corenet_ds_pic_init(void) | 36 | void __init corenet_ds_pic_init(void) |
37 | { | 37 | { |
38 | struct mpic *mpic; | 38 | struct mpic *mpic; |
39 | unsigned int flags = MPIC_BIG_ENDIAN | MPIC_SINGLE_DEST_CPU; | 39 | unsigned int flags = MPIC_BIG_ENDIAN | MPIC_SINGLE_DEST_CPU | |
40 | MPIC_NO_RESET; | ||
40 | 41 | ||
41 | if (ppc_md.get_irq == mpic_get_coreint_irq) | 42 | if (ppc_md.get_irq == mpic_get_coreint_irq) |
42 | flags |= MPIC_ENABLE_COREINT; | 43 | flags |= MPIC_ENABLE_COREINT; |
diff --git a/arch/powerpc/platforms/85xx/ksi8560.c b/arch/powerpc/platforms/85xx/ksi8560.c index 20f75d7819c6..60120e55da41 100644 --- a/arch/powerpc/platforms/85xx/ksi8560.c +++ b/arch/powerpc/platforms/85xx/ksi8560.c | |||
@@ -57,8 +57,7 @@ static void machine_restart(char *cmd) | |||
57 | 57 | ||
58 | static void __init ksi8560_pic_init(void) | 58 | static void __init ksi8560_pic_init(void) |
59 | { | 59 | { |
60 | struct mpic *mpic = mpic_alloc(NULL, 0, | 60 | struct mpic *mpic = mpic_alloc(NULL, 0, MPIC_BIG_ENDIAN, |
61 | MPIC_WANTS_RESET | MPIC_BIG_ENDIAN, | ||
62 | 0, 256, " OpenPIC "); | 61 | 0, 256, " OpenPIC "); |
63 | BUG_ON(mpic == NULL); | 62 | BUG_ON(mpic == NULL); |
64 | mpic_init(mpic); | 63 | mpic_init(mpic); |
diff --git a/arch/powerpc/platforms/85xx/mpc8536_ds.c b/arch/powerpc/platforms/85xx/mpc8536_ds.c index d5373e0c0f7d..f58872688d8f 100644 --- a/arch/powerpc/platforms/85xx/mpc8536_ds.c +++ b/arch/powerpc/platforms/85xx/mpc8536_ds.c | |||
@@ -36,9 +36,7 @@ | |||
36 | 36 | ||
37 | void __init mpc8536_ds_pic_init(void) | 37 | void __init mpc8536_ds_pic_init(void) |
38 | { | 38 | { |
39 | struct mpic *mpic = mpic_alloc(NULL, 0, | 39 | struct mpic *mpic = mpic_alloc(NULL, 0, MPIC_BIG_ENDIAN, |
40 | MPIC_WANTS_RESET | | ||
41 | MPIC_BIG_ENDIAN, | ||
42 | 0, 256, " OpenPIC "); | 40 | 0, 256, " OpenPIC "); |
43 | BUG_ON(mpic == NULL); | 41 | BUG_ON(mpic == NULL); |
44 | mpic_init(mpic); | 42 | mpic_init(mpic); |
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_ads.c b/arch/powerpc/platforms/85xx/mpc85xx_ads.c index 3bebb5173bfc..d19f675cb369 100644 --- a/arch/powerpc/platforms/85xx/mpc85xx_ads.c +++ b/arch/powerpc/platforms/85xx/mpc85xx_ads.c | |||
@@ -50,8 +50,7 @@ static int mpc85xx_exclude_device(struct pci_controller *hose, | |||
50 | 50 | ||
51 | static void __init mpc85xx_ads_pic_init(void) | 51 | static void __init mpc85xx_ads_pic_init(void) |
52 | { | 52 | { |
53 | struct mpic *mpic = mpic_alloc(NULL, 0, | 53 | struct mpic *mpic = mpic_alloc(NULL, 0, MPIC_BIG_ENDIAN, |
54 | MPIC_WANTS_RESET | MPIC_BIG_ENDIAN, | ||
55 | 0, 256, " OpenPIC "); | 54 | 0, 256, " OpenPIC "); |
56 | BUG_ON(mpic == NULL); | 55 | BUG_ON(mpic == NULL); |
57 | mpic_init(mpic); | 56 | mpic_init(mpic); |
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_cds.c b/arch/powerpc/platforms/85xx/mpc85xx_cds.c index 40f03da616a9..02d97e31c18c 100644 --- a/arch/powerpc/platforms/85xx/mpc85xx_cds.c +++ b/arch/powerpc/platforms/85xx/mpc85xx_cds.c | |||
@@ -188,8 +188,7 @@ static struct irqaction mpc85xxcds_8259_irqaction = { | |||
188 | static void __init mpc85xx_cds_pic_init(void) | 188 | static void __init mpc85xx_cds_pic_init(void) |
189 | { | 189 | { |
190 | struct mpic *mpic; | 190 | struct mpic *mpic; |
191 | mpic = mpic_alloc(NULL, 0, | 191 | mpic = mpic_alloc(NULL, 0, MPIC_BIG_ENDIAN, |
192 | MPIC_WANTS_RESET | MPIC_BIG_ENDIAN, | ||
193 | 0, 256, " OpenPIC "); | 192 | 0, 256, " OpenPIC "); |
194 | BUG_ON(mpic == NULL); | 193 | BUG_ON(mpic == NULL); |
195 | mpic_init(mpic); | 194 | mpic_init(mpic); |
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_ds.c b/arch/powerpc/platforms/85xx/mpc85xx_ds.c index 528b9a09e149..6e23e3e34bd9 100644 --- a/arch/powerpc/platforms/85xx/mpc85xx_ds.c +++ b/arch/powerpc/platforms/85xx/mpc85xx_ds.c | |||
@@ -72,12 +72,12 @@ void __init mpc85xx_ds_pic_init(void) | |||
72 | 72 | ||
73 | if (of_flat_dt_is_compatible(root, "fsl,MPC8572DS-CAMP")) { | 73 | if (of_flat_dt_is_compatible(root, "fsl,MPC8572DS-CAMP")) { |
74 | mpic = mpic_alloc(NULL, 0, | 74 | mpic = mpic_alloc(NULL, 0, |
75 | MPIC_NO_RESET | | ||
75 | MPIC_BIG_ENDIAN | | 76 | MPIC_BIG_ENDIAN | |
76 | MPIC_SINGLE_DEST_CPU, | 77 | MPIC_SINGLE_DEST_CPU, |
77 | 0, 256, " OpenPIC "); | 78 | 0, 256, " OpenPIC "); |
78 | } else { | 79 | } else { |
79 | mpic = mpic_alloc(NULL, 0, | 80 | mpic = mpic_alloc(NULL, 0, |
80 | MPIC_WANTS_RESET | | ||
81 | MPIC_BIG_ENDIAN | | 81 | MPIC_BIG_ENDIAN | |
82 | MPIC_SINGLE_DEST_CPU, | 82 | MPIC_SINGLE_DEST_CPU, |
83 | 0, 256, " OpenPIC "); | 83 | 0, 256, " OpenPIC "); |
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_mds.c b/arch/powerpc/platforms/85xx/mpc85xx_mds.c index a0cb7707c5b2..57aceb5d273e 100644 --- a/arch/powerpc/platforms/85xx/mpc85xx_mds.c +++ b/arch/powerpc/platforms/85xx/mpc85xx_mds.c | |||
@@ -434,8 +434,7 @@ machine_arch_initcall(p1021_mds, swiotlb_setup_bus_notifier); | |||
434 | 434 | ||
435 | static void __init mpc85xx_mds_pic_init(void) | 435 | static void __init mpc85xx_mds_pic_init(void) |
436 | { | 436 | { |
437 | struct mpic *mpic = mpic_alloc(NULL, 0, | 437 | struct mpic *mpic = mpic_alloc(NULL, 0, MPIC_BIG_ENDIAN | |
438 | MPIC_WANTS_RESET | MPIC_BIG_ENDIAN | | ||
439 | MPIC_SINGLE_DEST_CPU, | 438 | MPIC_SINGLE_DEST_CPU, |
440 | 0, 256, " OpenPIC "); | 439 | 0, 256, " OpenPIC "); |
441 | BUG_ON(mpic == NULL); | 440 | BUG_ON(mpic == NULL); |
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_rdb.c b/arch/powerpc/platforms/85xx/mpc85xx_rdb.c index a23f6f30993c..407c7391e360 100644 --- a/arch/powerpc/platforms/85xx/mpc85xx_rdb.c +++ b/arch/powerpc/platforms/85xx/mpc85xx_rdb.c | |||
@@ -48,13 +48,12 @@ void __init mpc85xx_rdb_pic_init(void) | |||
48 | unsigned long root = of_get_flat_dt_root(); | 48 | unsigned long root = of_get_flat_dt_root(); |
49 | 49 | ||
50 | if (of_flat_dt_is_compatible(root, "fsl,MPC85XXRDB-CAMP")) { | 50 | if (of_flat_dt_is_compatible(root, "fsl,MPC85XXRDB-CAMP")) { |
51 | mpic = mpic_alloc(NULL, 0, | 51 | mpic = mpic_alloc(NULL, 0, MPIC_NO_RESET | |
52 | MPIC_BIG_ENDIAN | | 52 | MPIC_BIG_ENDIAN | |
53 | MPIC_SINGLE_DEST_CPU, | 53 | MPIC_SINGLE_DEST_CPU, |
54 | 0, 256, " OpenPIC "); | 54 | 0, 256, " OpenPIC "); |
55 | } else { | 55 | } else { |
56 | mpic = mpic_alloc(NULL, 0, | 56 | mpic = mpic_alloc(NULL, 0, |
57 | MPIC_WANTS_RESET | | ||
58 | MPIC_BIG_ENDIAN | | 57 | MPIC_BIG_ENDIAN | |
59 | MPIC_SINGLE_DEST_CPU, | 58 | MPIC_SINGLE_DEST_CPU, |
60 | 0, 256, " OpenPIC "); | 59 | 0, 256, " OpenPIC "); |
diff --git a/arch/powerpc/platforms/85xx/p1010rdb.c b/arch/powerpc/platforms/85xx/p1010rdb.c index 8650773c8390..d8bd6563d9ca 100644 --- a/arch/powerpc/platforms/85xx/p1010rdb.c +++ b/arch/powerpc/platforms/85xx/p1010rdb.c | |||
@@ -32,8 +32,7 @@ | |||
32 | 32 | ||
33 | void __init p1010_rdb_pic_init(void) | 33 | void __init p1010_rdb_pic_init(void) |
34 | { | 34 | { |
35 | struct mpic *mpic = mpic_alloc(NULL, 0, | 35 | struct mpic *mpic = mpic_alloc(NULL, 0, MPIC_BIG_ENDIAN | |
36 | MPIC_WANTS_RESET | MPIC_BIG_ENDIAN | | ||
37 | MPIC_SINGLE_DEST_CPU, | 36 | MPIC_SINGLE_DEST_CPU, |
38 | 0, 256, " OpenPIC "); | 37 | 0, 256, " OpenPIC "); |
39 | 38 | ||
diff --git a/arch/powerpc/platforms/85xx/p1022_ds.c b/arch/powerpc/platforms/85xx/p1022_ds.c index 28266ab619db..63ba79053960 100644 --- a/arch/powerpc/platforms/85xx/p1022_ds.c +++ b/arch/powerpc/platforms/85xx/p1022_ds.c | |||
@@ -242,9 +242,7 @@ p1022ds_valid_monitor_port(enum fsl_diu_monitor_port port) | |||
242 | 242 | ||
243 | void __init p1022_ds_pic_init(void) | 243 | void __init p1022_ds_pic_init(void) |
244 | { | 244 | { |
245 | struct mpic *mpic = mpic_alloc(NULL, 0, | 245 | struct mpic *mpic = mpic_alloc(NULL, 0, MPIC_BIG_ENDIAN | |
246 | MPIC_WANTS_RESET | | ||
247 | MPIC_BIG_ENDIAN | | ||
248 | MPIC_SINGLE_DEST_CPU, | 246 | MPIC_SINGLE_DEST_CPU, |
249 | 0, 256, " OpenPIC "); | 247 | 0, 256, " OpenPIC "); |
250 | BUG_ON(mpic == NULL); | 248 | BUG_ON(mpic == NULL); |
diff --git a/arch/powerpc/platforms/85xx/p1023_rds.c b/arch/powerpc/platforms/85xx/p1023_rds.c index b1cd6a28901f..6b07398e4369 100644 --- a/arch/powerpc/platforms/85xx/p1023_rds.c +++ b/arch/powerpc/platforms/85xx/p1023_rds.c | |||
@@ -93,8 +93,7 @@ machine_device_initcall(p1023_rds, mpc85xx_common_publish_devices); | |||
93 | 93 | ||
94 | static void __init mpc85xx_rds_pic_init(void) | 94 | static void __init mpc85xx_rds_pic_init(void) |
95 | { | 95 | { |
96 | struct mpic *mpic = mpic_alloc(NULL, 0, | 96 | struct mpic *mpic = mpic_alloc(NULL, 0, MPIC_BIG_ENDIAN | |
97 | MPIC_WANTS_RESET | MPIC_BIG_ENDIAN | | ||
98 | MPIC_SINGLE_DEST_CPU, | 97 | MPIC_SINGLE_DEST_CPU, |
99 | 0, 256, " OpenPIC "); | 98 | 0, 256, " OpenPIC "); |
100 | 99 | ||
diff --git a/arch/powerpc/platforms/85xx/sbc8548.c b/arch/powerpc/platforms/85xx/sbc8548.c index 184a50784617..1677b8a22677 100644 --- a/arch/powerpc/platforms/85xx/sbc8548.c +++ b/arch/powerpc/platforms/85xx/sbc8548.c | |||
@@ -54,8 +54,7 @@ static int sbc_rev; | |||
54 | 54 | ||
55 | static void __init sbc8548_pic_init(void) | 55 | static void __init sbc8548_pic_init(void) |
56 | { | 56 | { |
57 | struct mpic *mpic = mpic_alloc(NULL, 0, | 57 | struct mpic *mpic = mpic_alloc(NULL, 0, MPIC_BIG_ENDIAN, |
58 | MPIC_WANTS_RESET | MPIC_BIG_ENDIAN, | ||
59 | 0, 256, " OpenPIC "); | 58 | 0, 256, " OpenPIC "); |
60 | BUG_ON(mpic == NULL); | 59 | BUG_ON(mpic == NULL); |
61 | mpic_init(mpic); | 60 | mpic_init(mpic); |
diff --git a/arch/powerpc/platforms/85xx/sbc8560.c b/arch/powerpc/platforms/85xx/sbc8560.c index 940752e93051..3c3bbcc27566 100644 --- a/arch/powerpc/platforms/85xx/sbc8560.c +++ b/arch/powerpc/platforms/85xx/sbc8560.c | |||
@@ -41,8 +41,7 @@ | |||
41 | 41 | ||
42 | static void __init sbc8560_pic_init(void) | 42 | static void __init sbc8560_pic_init(void) |
43 | { | 43 | { |
44 | struct mpic *mpic = mpic_alloc(NULL, 0, | 44 | struct mpic *mpic = mpic_alloc(NULL, 0, MPIC_BIG_ENDIAN, |
45 | MPIC_WANTS_RESET | MPIC_BIG_ENDIAN, | ||
46 | 0, 256, " OpenPIC "); | 45 | 0, 256, " OpenPIC "); |
47 | BUG_ON(mpic == NULL); | 46 | BUG_ON(mpic == NULL); |
48 | mpic_init(mpic); | 47 | mpic_init(mpic); |
diff --git a/arch/powerpc/platforms/85xx/socrates.c b/arch/powerpc/platforms/85xx/socrates.c index 18f635906b27..b71919217756 100644 --- a/arch/powerpc/platforms/85xx/socrates.c +++ b/arch/powerpc/platforms/85xx/socrates.c | |||
@@ -48,8 +48,7 @@ static void __init socrates_pic_init(void) | |||
48 | { | 48 | { |
49 | struct device_node *np; | 49 | struct device_node *np; |
50 | 50 | ||
51 | struct mpic *mpic = mpic_alloc(NULL, 0, | 51 | struct mpic *mpic = mpic_alloc(NULL, 0, MPIC_BIG_ENDIAN, |
52 | MPIC_WANTS_RESET | MPIC_BIG_ENDIAN, | ||
53 | 0, 256, " OpenPIC "); | 52 | 0, 256, " OpenPIC "); |
54 | BUG_ON(mpic == NULL); | 53 | BUG_ON(mpic == NULL); |
55 | mpic_init(mpic); | 54 | mpic_init(mpic); |
diff --git a/arch/powerpc/platforms/85xx/stx_gp3.c b/arch/powerpc/platforms/85xx/stx_gp3.c index e9e5234b4e76..27ca3a7b04ab 100644 --- a/arch/powerpc/platforms/85xx/stx_gp3.c +++ b/arch/powerpc/platforms/85xx/stx_gp3.c | |||
@@ -48,8 +48,7 @@ | |||
48 | 48 | ||
49 | static void __init stx_gp3_pic_init(void) | 49 | static void __init stx_gp3_pic_init(void) |
50 | { | 50 | { |
51 | struct mpic *mpic = mpic_alloc(NULL, 0, | 51 | struct mpic *mpic = mpic_alloc(NULL, 0, MPIC_BIG_ENDIAN, |
52 | MPIC_WANTS_RESET | MPIC_BIG_ENDIAN, | ||
53 | 0, 256, " OpenPIC "); | 52 | 0, 256, " OpenPIC "); |
54 | BUG_ON(mpic == NULL); | 53 | BUG_ON(mpic == NULL); |
55 | mpic_init(mpic); | 54 | mpic_init(mpic); |
diff --git a/arch/powerpc/platforms/85xx/tqm85xx.c b/arch/powerpc/platforms/85xx/tqm85xx.c index bf7c89fb75bb..d7504cefe016 100644 --- a/arch/powerpc/platforms/85xx/tqm85xx.c +++ b/arch/powerpc/platforms/85xx/tqm85xx.c | |||
@@ -47,7 +47,7 @@ | |||
47 | static void __init tqm85xx_pic_init(void) | 47 | static void __init tqm85xx_pic_init(void) |
48 | { | 48 | { |
49 | struct mpic *mpic = mpic_alloc(NULL, 0, | 49 | struct mpic *mpic = mpic_alloc(NULL, 0, |
50 | MPIC_WANTS_RESET | MPIC_BIG_ENDIAN, | 50 | MPIC_BIG_ENDIAN, |
51 | 0, 256, " OpenPIC "); | 51 | 0, 256, " OpenPIC "); |
52 | BUG_ON(mpic == NULL); | 52 | BUG_ON(mpic == NULL); |
53 | mpic_init(mpic); | 53 | mpic_init(mpic); |
diff --git a/arch/powerpc/platforms/85xx/xes_mpc85xx.c b/arch/powerpc/platforms/85xx/xes_mpc85xx.c index 1ab4e026006d..503c21596c63 100644 --- a/arch/powerpc/platforms/85xx/xes_mpc85xx.c +++ b/arch/powerpc/platforms/85xx/xes_mpc85xx.c | |||
@@ -43,9 +43,7 @@ | |||
43 | 43 | ||
44 | void __init xes_mpc85xx_pic_init(void) | 44 | void __init xes_mpc85xx_pic_init(void) |
45 | { | 45 | { |
46 | struct mpic *mpic = mpic_alloc(NULL, 0, | 46 | struct mpic *mpic = mpic_alloc(NULL, 0, MPIC_BIG_ENDIAN, |
47 | MPIC_WANTS_RESET | | ||
48 | MPIC_BIG_ENDIAN, | ||
49 | 0, 256, " OpenPIC "); | 47 | 0, 256, " OpenPIC "); |
50 | BUG_ON(mpic == NULL); | 48 | BUG_ON(mpic == NULL); |
51 | mpic_init(mpic); | 49 | mpic_init(mpic); |
diff --git a/arch/powerpc/platforms/86xx/pic.c b/arch/powerpc/platforms/86xx/pic.c index 27959d63a079..22cc3571ae19 100644 --- a/arch/powerpc/platforms/86xx/pic.c +++ b/arch/powerpc/platforms/86xx/pic.c | |||
@@ -37,8 +37,7 @@ void __init mpc86xx_init_irq(void) | |||
37 | int cascade_irq; | 37 | int cascade_irq; |
38 | #endif | 38 | #endif |
39 | 39 | ||
40 | struct mpic *mpic = mpic_alloc(NULL, 0, | 40 | struct mpic *mpic = mpic_alloc(NULL, 0, MPIC_BIG_ENDIAN | |
41 | MPIC_WANTS_RESET | MPIC_BIG_ENDIAN | | ||
42 | MPIC_SINGLE_DEST_CPU, | 41 | MPIC_SINGLE_DEST_CPU, |
43 | 0, 256, " MPIC "); | 42 | 0, 256, " MPIC "); |
44 | BUG_ON(mpic == NULL); | 43 | BUG_ON(mpic == NULL); |
diff --git a/arch/powerpc/platforms/cell/setup.c b/arch/powerpc/platforms/cell/setup.c index 62002a7edfed..fa3e294fd343 100644 --- a/arch/powerpc/platforms/cell/setup.c +++ b/arch/powerpc/platforms/cell/setup.c | |||
@@ -197,7 +197,8 @@ static void __init mpic_init_IRQ(void) | |||
197 | /* The MPIC driver will get everything it needs from the | 197 | /* The MPIC driver will get everything it needs from the |
198 | * device-tree, just pass 0 to all arguments | 198 | * device-tree, just pass 0 to all arguments |
199 | */ | 199 | */ |
200 | mpic = mpic_alloc(dn, 0, MPIC_SECONDARY, 0, 0, " MPIC "); | 200 | mpic = mpic_alloc(dn, 0, MPIC_SECONDARY | MPIC_NO_RESET, |
201 | 0, 0, " MPIC "); | ||
201 | if (mpic == NULL) | 202 | if (mpic == NULL) |
202 | continue; | 203 | continue; |
203 | mpic_init(mpic); | 204 | mpic_init(mpic); |
diff --git a/arch/powerpc/platforms/chrp/setup.c b/arch/powerpc/platforms/chrp/setup.c index f1f17bb2c33c..c665d7de6c99 100644 --- a/arch/powerpc/platforms/chrp/setup.c +++ b/arch/powerpc/platforms/chrp/setup.c | |||
@@ -435,7 +435,8 @@ static void __init chrp_find_openpic(void) | |||
435 | if (len > 1) | 435 | if (len > 1) |
436 | isu_size = iranges[3]; | 436 | isu_size = iranges[3]; |
437 | 437 | ||
438 | chrp_mpic = mpic_alloc(np, opaddr, 0, isu_size, 0, " MPIC "); | 438 | chrp_mpic = mpic_alloc(np, opaddr, MPIC_NO_RESET, |
439 | isu_size, 0, " MPIC "); | ||
439 | if (chrp_mpic == NULL) { | 440 | if (chrp_mpic == NULL) { |
440 | printk(KERN_ERR "Failed to allocate MPIC structure\n"); | 441 | printk(KERN_ERR "Failed to allocate MPIC structure\n"); |
441 | goto bail; | 442 | goto bail; |
diff --git a/arch/powerpc/platforms/embedded6xx/holly.c b/arch/powerpc/platforms/embedded6xx/holly.c index d7727de85d57..ab51b21b4bd7 100644 --- a/arch/powerpc/platforms/embedded6xx/holly.c +++ b/arch/powerpc/platforms/embedded6xx/holly.c | |||
@@ -154,8 +154,7 @@ static void __init holly_init_IRQ(void) | |||
154 | struct device_node *cascade_node = NULL; | 154 | struct device_node *cascade_node = NULL; |
155 | #endif | 155 | #endif |
156 | 156 | ||
157 | mpic = mpic_alloc(NULL, 0, | 157 | mpic = mpic_alloc(NULL, 0, MPIC_BIG_ENDIAN | |
158 | MPIC_BIG_ENDIAN | MPIC_WANTS_RESET | | ||
159 | MPIC_SPV_EOI | MPIC_NO_PTHROU_DIS | MPIC_REGSET_TSI108, | 158 | MPIC_SPV_EOI | MPIC_NO_PTHROU_DIS | MPIC_REGSET_TSI108, |
160 | 24, 0, | 159 | 24, 0, |
161 | "Tsi108_PIC"); | 160 | "Tsi108_PIC"); |
diff --git a/arch/powerpc/platforms/embedded6xx/linkstation.c b/arch/powerpc/platforms/embedded6xx/linkstation.c index 9479f4ebe1bc..455e7c087422 100644 --- a/arch/powerpc/platforms/embedded6xx/linkstation.c +++ b/arch/powerpc/platforms/embedded6xx/linkstation.c | |||
@@ -82,8 +82,7 @@ static void __init linkstation_init_IRQ(void) | |||
82 | { | 82 | { |
83 | struct mpic *mpic; | 83 | struct mpic *mpic; |
84 | 84 | ||
85 | mpic = mpic_alloc(NULL, 0, MPIC_WANTS_RESET, | 85 | mpic = mpic_alloc(NULL, 0, 0, 4, 0, " EPIC "); |
86 | 4, 0, " EPIC "); | ||
87 | BUG_ON(mpic == NULL); | 86 | BUG_ON(mpic == NULL); |
88 | 87 | ||
89 | /* PCI IRQs */ | 88 | /* PCI IRQs */ |
diff --git a/arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c b/arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c index 90acb5449163..74ccce36baed 100644 --- a/arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c +++ b/arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c | |||
@@ -108,8 +108,7 @@ static void __init mpc7448_hpc2_init_IRQ(void) | |||
108 | struct device_node *cascade_node = NULL; | 108 | struct device_node *cascade_node = NULL; |
109 | #endif | 109 | #endif |
110 | 110 | ||
111 | mpic = mpic_alloc(NULL, 0, | 111 | mpic = mpic_alloc(NULL, 0, MPIC_BIG_ENDIAN | |
112 | MPIC_BIG_ENDIAN | MPIC_WANTS_RESET | | ||
113 | MPIC_SPV_EOI | MPIC_NO_PTHROU_DIS | MPIC_REGSET_TSI108, | 112 | MPIC_SPV_EOI | MPIC_NO_PTHROU_DIS | MPIC_REGSET_TSI108, |
114 | 24, 0, | 113 | 24, 0, |
115 | "Tsi108_PIC"); | 114 | "Tsi108_PIC"); |
diff --git a/arch/powerpc/platforms/embedded6xx/storcenter.c b/arch/powerpc/platforms/embedded6xx/storcenter.c index 451dce4edccd..e0ed3c71d69b 100644 --- a/arch/powerpc/platforms/embedded6xx/storcenter.c +++ b/arch/powerpc/platforms/embedded6xx/storcenter.c | |||
@@ -84,8 +84,7 @@ static void __init storcenter_init_IRQ(void) | |||
84 | { | 84 | { |
85 | struct mpic *mpic; | 85 | struct mpic *mpic; |
86 | 86 | ||
87 | mpic = mpic_alloc(NULL, 0, MPIC_WANTS_RESET, | 87 | mpic = mpic_alloc(NULL, 0, 0, 16, 0, " OpenPIC "); |
88 | 16, 0, " OpenPIC "); | ||
89 | BUG_ON(mpic == NULL); | 88 | BUG_ON(mpic == NULL); |
90 | 89 | ||
91 | /* | 90 | /* |
diff --git a/arch/powerpc/platforms/maple/setup.c b/arch/powerpc/platforms/maple/setup.c index 0bcbfe7b2c55..3b7545a51aa9 100644 --- a/arch/powerpc/platforms/maple/setup.c +++ b/arch/powerpc/platforms/maple/setup.c | |||
@@ -262,7 +262,7 @@ static void __init maple_init_IRQ(void) | |||
262 | flags |= MPIC_BIG_ENDIAN; | 262 | flags |= MPIC_BIG_ENDIAN; |
263 | 263 | ||
264 | /* XXX Maple specific bits */ | 264 | /* XXX Maple specific bits */ |
265 | flags |= MPIC_U3_HT_IRQS | MPIC_WANTS_RESET; | 265 | flags |= MPIC_U3_HT_IRQS; |
266 | /* All U3/U4 are big-endian, older SLOF firmware doesn't encode this */ | 266 | /* All U3/U4 are big-endian, older SLOF firmware doesn't encode this */ |
267 | flags |= MPIC_BIG_ENDIAN; | 267 | flags |= MPIC_BIG_ENDIAN; |
268 | 268 | ||
diff --git a/arch/powerpc/platforms/pasemi/setup.c b/arch/powerpc/platforms/pasemi/setup.c index 98b7a7c13176..e777ad471a48 100644 --- a/arch/powerpc/platforms/pasemi/setup.c +++ b/arch/powerpc/platforms/pasemi/setup.c | |||
@@ -224,7 +224,7 @@ static __init void pas_init_IRQ(void) | |||
224 | openpic_addr = of_read_number(opprop, naddr); | 224 | openpic_addr = of_read_number(opprop, naddr); |
225 | printk(KERN_DEBUG "OpenPIC addr: %lx\n", openpic_addr); | 225 | printk(KERN_DEBUG "OpenPIC addr: %lx\n", openpic_addr); |
226 | 226 | ||
227 | mpic_flags = MPIC_LARGE_VECTORS | MPIC_NO_BIAS; | 227 | mpic_flags = MPIC_LARGE_VECTORS | MPIC_NO_BIAS | MPIC_NO_RESET; |
228 | 228 | ||
229 | nmiprop = of_get_property(mpic_node, "nmi-source", NULL); | 229 | nmiprop = of_get_property(mpic_node, "nmi-source", NULL); |
230 | if (nmiprop) | 230 | if (nmiprop) |
diff --git a/arch/powerpc/platforms/powermac/pic.c b/arch/powerpc/platforms/powermac/pic.c index 7761aabfc293..0293d7a258c3 100644 --- a/arch/powerpc/platforms/powermac/pic.c +++ b/arch/powerpc/platforms/powermac/pic.c | |||
@@ -469,7 +469,6 @@ static struct mpic * __init pmac_setup_one_mpic(struct device_node *np, | |||
469 | 469 | ||
470 | pmac_call_feature(PMAC_FTR_ENABLE_MPIC, np, 0, 0); | 470 | pmac_call_feature(PMAC_FTR_ENABLE_MPIC, np, 0, 0); |
471 | 471 | ||
472 | flags |= MPIC_WANTS_RESET; | ||
473 | if (of_get_property(np, "big-endian", NULL)) | 472 | if (of_get_property(np, "big-endian", NULL)) |
474 | flags |= MPIC_BIG_ENDIAN; | 473 | flags |= MPIC_BIG_ENDIAN; |
475 | 474 | ||
diff --git a/arch/powerpc/platforms/pseries/setup.c b/arch/powerpc/platforms/pseries/setup.c index 6d0a5dfbb9fc..d928412cfb32 100644 --- a/arch/powerpc/platforms/pseries/setup.c +++ b/arch/powerpc/platforms/pseries/setup.c | |||
@@ -190,7 +190,8 @@ static void __init pseries_mpic_init_IRQ(void) | |||
190 | BUG_ON(openpic_addr == 0); | 190 | BUG_ON(openpic_addr == 0); |
191 | 191 | ||
192 | /* Setup the openpic driver */ | 192 | /* Setup the openpic driver */ |
193 | mpic = mpic_alloc(pSeries_mpic_node, openpic_addr, 0, 16, 0, " MPIC "); | 193 | mpic = mpic_alloc(pSeries_mpic_node, openpic_addr, |
194 | MPIC_NO_RESET, 16, 0, " MPIC "); | ||
194 | BUG_ON(mpic == NULL); | 195 | BUG_ON(mpic == NULL); |
195 | 196 | ||
196 | /* Add ISUs */ | 197 | /* Add ISUs */ |
diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c index 90171d447c3d..b9b989d305dd 100644 --- a/arch/powerpc/sysdev/mpic.c +++ b/arch/powerpc/sysdev/mpic.c | |||
@@ -1286,7 +1286,7 @@ struct mpic * __init mpic_alloc(struct device_node *node, | |||
1286 | /* When using a device-node, reset requests are only honored if the MPIC | 1286 | /* When using a device-node, reset requests are only honored if the MPIC |
1287 | * is allowed to reset. | 1287 | * is allowed to reset. |
1288 | */ | 1288 | */ |
1289 | if ((mpic->flags & MPIC_WANTS_RESET) && !(mpic->flags & MPIC_NO_RESET)) { | 1289 | if (!(mpic->flags & MPIC_NO_RESET)) { |
1290 | printk(KERN_DEBUG "mpic: Resetting\n"); | 1290 | printk(KERN_DEBUG "mpic: Resetting\n"); |
1291 | mpic_write(mpic->gregs, MPIC_INFO(GREG_GLOBAL_CONF_0), | 1291 | mpic_write(mpic->gregs, MPIC_INFO(GREG_GLOBAL_CONF_0), |
1292 | mpic_read(mpic->gregs, MPIC_INFO(GREG_GLOBAL_CONF_0)) | 1292 | mpic_read(mpic->gregs, MPIC_INFO(GREG_GLOBAL_CONF_0)) |