Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 292464
b: refs/heads/master
c: e55d7f7
h: refs/heads/master
v: v3
  • Loading branch information
Kyle Moffett authored and Benjamin Herrenschmidt committed Feb 22, 2012
1 parent f22838b commit c02dd1c
Show file tree
Hide file tree
Showing 33 changed files with 36 additions and 60 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: c1b8d45db4dbc64cc6015f97922f767fdf782f64
refs/heads/master: e55d7f737d3daf4aaf41945c1829138c608662e9
6 changes: 1 addition & 5 deletions trunk/arch/powerpc/include/asm/mpic.h
Original file line number Diff line number Diff line change
Expand Up @@ -348,8 +348,6 @@ struct mpic
#define MPIC_U3_HT_IRQS 0x00000004
/* Broken IPI registers (autodetected) */
#define MPIC_BROKEN_IPI 0x00000008
/* MPIC wants a reset */
#define MPIC_WANTS_RESET 0x00000010
/* Spurious vector requires EOI */
#define MPIC_SPV_EOI 0x00000020
/* No passthrough disable */
Expand All @@ -366,9 +364,7 @@ struct mpic
#define MPIC_SINGLE_DEST_CPU 0x00001000
/* Enable CoreInt delivery of interrupts */
#define MPIC_ENABLE_COREINT 0x00002000
/* Disable resetting of the MPIC.
* NOTE: This flag trumps MPIC_WANTS_RESET.
*/
/* Do not reset the MPIC during initialization */
#define MPIC_NO_RESET 0x00004000
/* Freescale MPIC (compatible includes "fsl,mpic") */
#define MPIC_FSL 0x00008000
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/powerpc/platforms/44x/currituck.c
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ static void __init ppc47x_init_irq(void)
* device-tree, just pass 0 to all arguments
*/
struct mpic *mpic =
mpic_alloc(np, 0, 0, 0, 0, " MPIC ");
mpic_alloc(np, 0, MPIC_NO_RESET, 0, 0, " MPIC ");
BUG_ON(mpic == NULL);
mpic_init(mpic);
ppc_md.get_irq = mpic_get_irq;
Expand Down
3 changes: 1 addition & 2 deletions trunk/arch/powerpc/platforms/44x/iss4xx.c
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,7 @@ static void __init iss4xx_init_irq(void)
/* The MPIC driver will get everything it needs from the
* device-tree, just pass 0 to all arguments
*/
struct mpic *mpic = mpic_alloc(np, 0, 0, 0, 0,
" MPIC ");
struct mpic *mpic = mpic_alloc(np, 0, MPIC_NO_RESET, 0, 0, " MPIC ");
BUG_ON(mpic == NULL);
mpic_init(mpic);
ppc_md.get_irq = mpic_get_irq;
Expand Down
3 changes: 2 additions & 1 deletion trunk/arch/powerpc/platforms/85xx/corenet_ds.c
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,8 @@
void __init corenet_ds_pic_init(void)
{
struct mpic *mpic;
unsigned int flags = MPIC_BIG_ENDIAN | MPIC_SINGLE_DEST_CPU;
unsigned int flags = MPIC_BIG_ENDIAN | MPIC_SINGLE_DEST_CPU |
MPIC_NO_RESET;

if (ppc_md.get_irq == mpic_get_coreint_irq)
flags |= MPIC_ENABLE_COREINT;
Expand Down
3 changes: 1 addition & 2 deletions trunk/arch/powerpc/platforms/85xx/ksi8560.c
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,7 @@ static void machine_restart(char *cmd)

static void __init ksi8560_pic_init(void)
{
struct mpic *mpic = mpic_alloc(NULL, 0,
MPIC_WANTS_RESET | MPIC_BIG_ENDIAN,
struct mpic *mpic = mpic_alloc(NULL, 0, MPIC_BIG_ENDIAN,
0, 256, " OpenPIC ");
BUG_ON(mpic == NULL);
mpic_init(mpic);
Expand Down
4 changes: 1 addition & 3 deletions trunk/arch/powerpc/platforms/85xx/mpc8536_ds.c
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,7 @@

void __init mpc8536_ds_pic_init(void)
{
struct mpic *mpic = mpic_alloc(NULL, 0,
MPIC_WANTS_RESET |
MPIC_BIG_ENDIAN,
struct mpic *mpic = mpic_alloc(NULL, 0, MPIC_BIG_ENDIAN,
0, 256, " OpenPIC ");
BUG_ON(mpic == NULL);
mpic_init(mpic);
Expand Down
3 changes: 1 addition & 2 deletions trunk/arch/powerpc/platforms/85xx/mpc85xx_ads.c
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,7 @@ static int mpc85xx_exclude_device(struct pci_controller *hose,

static void __init mpc85xx_ads_pic_init(void)
{
struct mpic *mpic = mpic_alloc(NULL, 0,
MPIC_WANTS_RESET | MPIC_BIG_ENDIAN,
struct mpic *mpic = mpic_alloc(NULL, 0, MPIC_BIG_ENDIAN,
0, 256, " OpenPIC ");
BUG_ON(mpic == NULL);
mpic_init(mpic);
Expand Down
3 changes: 1 addition & 2 deletions trunk/arch/powerpc/platforms/85xx/mpc85xx_cds.c
Original file line number Diff line number Diff line change
Expand Up @@ -188,8 +188,7 @@ static struct irqaction mpc85xxcds_8259_irqaction = {
static void __init mpc85xx_cds_pic_init(void)
{
struct mpic *mpic;
mpic = mpic_alloc(NULL, 0,
MPIC_WANTS_RESET | MPIC_BIG_ENDIAN,
mpic = mpic_alloc(NULL, 0, MPIC_BIG_ENDIAN,
0, 256, " OpenPIC ");
BUG_ON(mpic == NULL);
mpic_init(mpic);
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/powerpc/platforms/85xx/mpc85xx_ds.c
Original file line number Diff line number Diff line change
Expand Up @@ -72,12 +72,12 @@ void __init mpc85xx_ds_pic_init(void)

if (of_flat_dt_is_compatible(root, "fsl,MPC8572DS-CAMP")) {
mpic = mpic_alloc(NULL, 0,
MPIC_NO_RESET |
MPIC_BIG_ENDIAN |
MPIC_SINGLE_DEST_CPU,
0, 256, " OpenPIC ");
} else {
mpic = mpic_alloc(NULL, 0,
MPIC_WANTS_RESET |
MPIC_BIG_ENDIAN |
MPIC_SINGLE_DEST_CPU,
0, 256, " OpenPIC ");
Expand Down
3 changes: 1 addition & 2 deletions trunk/arch/powerpc/platforms/85xx/mpc85xx_mds.c
Original file line number Diff line number Diff line change
Expand Up @@ -434,8 +434,7 @@ machine_arch_initcall(p1021_mds, swiotlb_setup_bus_notifier);

static void __init mpc85xx_mds_pic_init(void)
{
struct mpic *mpic = mpic_alloc(NULL, 0,
MPIC_WANTS_RESET | MPIC_BIG_ENDIAN |
struct mpic *mpic = mpic_alloc(NULL, 0, MPIC_BIG_ENDIAN |
MPIC_SINGLE_DEST_CPU,
0, 256, " OpenPIC ");
BUG_ON(mpic == NULL);
Expand Down
3 changes: 1 addition & 2 deletions trunk/arch/powerpc/platforms/85xx/mpc85xx_rdb.c
Original file line number Diff line number Diff line change
Expand Up @@ -48,13 +48,12 @@ void __init mpc85xx_rdb_pic_init(void)
unsigned long root = of_get_flat_dt_root();

if (of_flat_dt_is_compatible(root, "fsl,MPC85XXRDB-CAMP")) {
mpic = mpic_alloc(NULL, 0,
mpic = mpic_alloc(NULL, 0, MPIC_NO_RESET |
MPIC_BIG_ENDIAN |
MPIC_SINGLE_DEST_CPU,
0, 256, " OpenPIC ");
} else {
mpic = mpic_alloc(NULL, 0,
MPIC_WANTS_RESET |
MPIC_BIG_ENDIAN |
MPIC_SINGLE_DEST_CPU,
0, 256, " OpenPIC ");
Expand Down
3 changes: 1 addition & 2 deletions trunk/arch/powerpc/platforms/85xx/p1010rdb.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,7 @@

void __init p1010_rdb_pic_init(void)
{
struct mpic *mpic = mpic_alloc(NULL, 0,
MPIC_WANTS_RESET | MPIC_BIG_ENDIAN |
struct mpic *mpic = mpic_alloc(NULL, 0, MPIC_BIG_ENDIAN |
MPIC_SINGLE_DEST_CPU,
0, 256, " OpenPIC ");

Expand Down
4 changes: 1 addition & 3 deletions trunk/arch/powerpc/platforms/85xx/p1022_ds.c
Original file line number Diff line number Diff line change
Expand Up @@ -242,9 +242,7 @@ p1022ds_valid_monitor_port(enum fsl_diu_monitor_port port)

void __init p1022_ds_pic_init(void)
{
struct mpic *mpic = mpic_alloc(NULL, 0,
MPIC_WANTS_RESET |
MPIC_BIG_ENDIAN |
struct mpic *mpic = mpic_alloc(NULL, 0, MPIC_BIG_ENDIAN |
MPIC_SINGLE_DEST_CPU,
0, 256, " OpenPIC ");
BUG_ON(mpic == NULL);
Expand Down
3 changes: 1 addition & 2 deletions trunk/arch/powerpc/platforms/85xx/p1023_rds.c
Original file line number Diff line number Diff line change
Expand Up @@ -93,8 +93,7 @@ machine_device_initcall(p1023_rds, mpc85xx_common_publish_devices);

static void __init mpc85xx_rds_pic_init(void)
{
struct mpic *mpic = mpic_alloc(NULL, 0,
MPIC_WANTS_RESET | MPIC_BIG_ENDIAN |
struct mpic *mpic = mpic_alloc(NULL, 0, MPIC_BIG_ENDIAN |
MPIC_SINGLE_DEST_CPU,
0, 256, " OpenPIC ");

Expand Down
3 changes: 1 addition & 2 deletions trunk/arch/powerpc/platforms/85xx/sbc8548.c
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,7 @@ static int sbc_rev;

static void __init sbc8548_pic_init(void)
{
struct mpic *mpic = mpic_alloc(NULL, 0,
MPIC_WANTS_RESET | MPIC_BIG_ENDIAN,
struct mpic *mpic = mpic_alloc(NULL, 0, MPIC_BIG_ENDIAN,
0, 256, " OpenPIC ");
BUG_ON(mpic == NULL);
mpic_init(mpic);
Expand Down
3 changes: 1 addition & 2 deletions trunk/arch/powerpc/platforms/85xx/sbc8560.c
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,7 @@

static void __init sbc8560_pic_init(void)
{
struct mpic *mpic = mpic_alloc(NULL, 0,
MPIC_WANTS_RESET | MPIC_BIG_ENDIAN,
struct mpic *mpic = mpic_alloc(NULL, 0, MPIC_BIG_ENDIAN,
0, 256, " OpenPIC ");
BUG_ON(mpic == NULL);
mpic_init(mpic);
Expand Down
3 changes: 1 addition & 2 deletions trunk/arch/powerpc/platforms/85xx/socrates.c
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,7 @@ static void __init socrates_pic_init(void)
{
struct device_node *np;

struct mpic *mpic = mpic_alloc(NULL, 0,
MPIC_WANTS_RESET | MPIC_BIG_ENDIAN,
struct mpic *mpic = mpic_alloc(NULL, 0, MPIC_BIG_ENDIAN,
0, 256, " OpenPIC ");
BUG_ON(mpic == NULL);
mpic_init(mpic);
Expand Down
3 changes: 1 addition & 2 deletions trunk/arch/powerpc/platforms/85xx/stx_gp3.c
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,7 @@

static void __init stx_gp3_pic_init(void)
{
struct mpic *mpic = mpic_alloc(NULL, 0,
MPIC_WANTS_RESET | MPIC_BIG_ENDIAN,
struct mpic *mpic = mpic_alloc(NULL, 0, MPIC_BIG_ENDIAN,
0, 256, " OpenPIC ");
BUG_ON(mpic == NULL);
mpic_init(mpic);
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/powerpc/platforms/85xx/tqm85xx.c
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
static void __init tqm85xx_pic_init(void)
{
struct mpic *mpic = mpic_alloc(NULL, 0,
MPIC_WANTS_RESET | MPIC_BIG_ENDIAN,
MPIC_BIG_ENDIAN,
0, 256, " OpenPIC ");
BUG_ON(mpic == NULL);
mpic_init(mpic);
Expand Down
4 changes: 1 addition & 3 deletions trunk/arch/powerpc/platforms/85xx/xes_mpc85xx.c
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,7 @@

void __init xes_mpc85xx_pic_init(void)
{
struct mpic *mpic = mpic_alloc(NULL, 0,
MPIC_WANTS_RESET |
MPIC_BIG_ENDIAN,
struct mpic *mpic = mpic_alloc(NULL, 0, MPIC_BIG_ENDIAN,
0, 256, " OpenPIC ");
BUG_ON(mpic == NULL);
mpic_init(mpic);
Expand Down
3 changes: 1 addition & 2 deletions trunk/arch/powerpc/platforms/86xx/pic.c
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,7 @@ void __init mpc86xx_init_irq(void)
int cascade_irq;
#endif

struct mpic *mpic = mpic_alloc(NULL, 0,
MPIC_WANTS_RESET | MPIC_BIG_ENDIAN |
struct mpic *mpic = mpic_alloc(NULL, 0, MPIC_BIG_ENDIAN |
MPIC_SINGLE_DEST_CPU,
0, 256, " MPIC ");
BUG_ON(mpic == NULL);
Expand Down
3 changes: 2 additions & 1 deletion trunk/arch/powerpc/platforms/cell/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,8 @@ static void __init mpic_init_IRQ(void)
/* The MPIC driver will get everything it needs from the
* device-tree, just pass 0 to all arguments
*/
mpic = mpic_alloc(dn, 0, MPIC_SECONDARY, 0, 0, " MPIC ");
mpic = mpic_alloc(dn, 0, MPIC_SECONDARY | MPIC_NO_RESET,
0, 0, " MPIC ");
if (mpic == NULL)
continue;
mpic_init(mpic);
Expand Down
3 changes: 2 additions & 1 deletion trunk/arch/powerpc/platforms/chrp/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -435,7 +435,8 @@ static void __init chrp_find_openpic(void)
if (len > 1)
isu_size = iranges[3];

chrp_mpic = mpic_alloc(np, opaddr, 0, isu_size, 0, " MPIC ");
chrp_mpic = mpic_alloc(np, opaddr, MPIC_NO_RESET,
isu_size, 0, " MPIC ");
if (chrp_mpic == NULL) {
printk(KERN_ERR "Failed to allocate MPIC structure\n");
goto bail;
Expand Down
3 changes: 1 addition & 2 deletions trunk/arch/powerpc/platforms/embedded6xx/holly.c
Original file line number Diff line number Diff line change
Expand Up @@ -154,8 +154,7 @@ static void __init holly_init_IRQ(void)
struct device_node *cascade_node = NULL;
#endif

mpic = mpic_alloc(NULL, 0,
MPIC_BIG_ENDIAN | MPIC_WANTS_RESET |
mpic = mpic_alloc(NULL, 0, MPIC_BIG_ENDIAN |
MPIC_SPV_EOI | MPIC_NO_PTHROU_DIS | MPIC_REGSET_TSI108,
24, 0,
"Tsi108_PIC");
Expand Down
3 changes: 1 addition & 2 deletions trunk/arch/powerpc/platforms/embedded6xx/linkstation.c
Original file line number Diff line number Diff line change
Expand Up @@ -82,8 +82,7 @@ static void __init linkstation_init_IRQ(void)
{
struct mpic *mpic;

mpic = mpic_alloc(NULL, 0, MPIC_WANTS_RESET,
4, 0, " EPIC ");
mpic = mpic_alloc(NULL, 0, 0, 4, 0, " EPIC ");
BUG_ON(mpic == NULL);

/* PCI IRQs */
Expand Down
3 changes: 1 addition & 2 deletions trunk/arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c
Original file line number Diff line number Diff line change
Expand Up @@ -108,8 +108,7 @@ static void __init mpc7448_hpc2_init_IRQ(void)
struct device_node *cascade_node = NULL;
#endif

mpic = mpic_alloc(NULL, 0,
MPIC_BIG_ENDIAN | MPIC_WANTS_RESET |
mpic = mpic_alloc(NULL, 0, MPIC_BIG_ENDIAN |
MPIC_SPV_EOI | MPIC_NO_PTHROU_DIS | MPIC_REGSET_TSI108,
24, 0,
"Tsi108_PIC");
Expand Down
3 changes: 1 addition & 2 deletions trunk/arch/powerpc/platforms/embedded6xx/storcenter.c
Original file line number Diff line number Diff line change
Expand Up @@ -84,8 +84,7 @@ static void __init storcenter_init_IRQ(void)
{
struct mpic *mpic;

mpic = mpic_alloc(NULL, 0, MPIC_WANTS_RESET,
16, 0, " OpenPIC ");
mpic = mpic_alloc(NULL, 0, 0, 16, 0, " OpenPIC ");
BUG_ON(mpic == NULL);

/*
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/powerpc/platforms/maple/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,7 @@ static void __init maple_init_IRQ(void)
flags |= MPIC_BIG_ENDIAN;

/* XXX Maple specific bits */
flags |= MPIC_U3_HT_IRQS | MPIC_WANTS_RESET;
flags |= MPIC_U3_HT_IRQS;
/* All U3/U4 are big-endian, older SLOF firmware doesn't encode this */
flags |= MPIC_BIG_ENDIAN;

Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/powerpc/platforms/pasemi/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,7 @@ static __init void pas_init_IRQ(void)
openpic_addr = of_read_number(opprop, naddr);
printk(KERN_DEBUG "OpenPIC addr: %lx\n", openpic_addr);

mpic_flags = MPIC_LARGE_VECTORS | MPIC_NO_BIAS;
mpic_flags = MPIC_LARGE_VECTORS | MPIC_NO_BIAS | MPIC_NO_RESET;

nmiprop = of_get_property(mpic_node, "nmi-source", NULL);
if (nmiprop)
Expand Down
1 change: 0 additions & 1 deletion trunk/arch/powerpc/platforms/powermac/pic.c
Original file line number Diff line number Diff line change
Expand Up @@ -469,7 +469,6 @@ static struct mpic * __init pmac_setup_one_mpic(struct device_node *np,

pmac_call_feature(PMAC_FTR_ENABLE_MPIC, np, 0, 0);

flags |= MPIC_WANTS_RESET;
if (of_get_property(np, "big-endian", NULL))
flags |= MPIC_BIG_ENDIAN;

Expand Down
3 changes: 2 additions & 1 deletion trunk/arch/powerpc/platforms/pseries/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,8 @@ static void __init pseries_mpic_init_IRQ(void)
BUG_ON(openpic_addr == 0);

/* Setup the openpic driver */
mpic = mpic_alloc(pSeries_mpic_node, openpic_addr, 0, 16, 0, " MPIC ");
mpic = mpic_alloc(pSeries_mpic_node, openpic_addr,
MPIC_NO_RESET, 16, 0, " MPIC ");
BUG_ON(mpic == NULL);

/* Add ISUs */
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/powerpc/sysdev/mpic.c
Original file line number Diff line number Diff line change
Expand Up @@ -1286,7 +1286,7 @@ struct mpic * __init mpic_alloc(struct device_node *node,
/* When using a device-node, reset requests are only honored if the MPIC
* is allowed to reset.
*/
if ((mpic->flags & MPIC_WANTS_RESET) && !(mpic->flags & MPIC_NO_RESET)) {
if (!(mpic->flags & MPIC_NO_RESET)) {
printk(KERN_DEBUG "mpic: Resetting\n");
mpic_write(mpic->gregs, MPIC_INFO(GREG_GLOBAL_CONF_0),
mpic_read(mpic->gregs, MPIC_INFO(GREG_GLOBAL_CONF_0))
Expand Down

0 comments on commit c02dd1c

Please sign in to comment.