Skip to content

Commit

Permalink
powerpc: cpm2_pic: Use IRQCHIP_EOI_IF_HANDLED
Browse files Browse the repository at this point in the history
The core code provides the same functionality when the
IRQCHIP_EOI_IF_HANDLED flag is set for the irq chip.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
  • Loading branch information
Thomas Gleixner committed Mar 29, 2011
1 parent a28ab38 commit 7bf811a
Showing 1 changed file with 10 additions and 15 deletions.
25 changes: 10 additions & 15 deletions arch/powerpc/sysdev/cpm2_pic.c
Original file line number Diff line number Diff line change
Expand Up @@ -115,26 +115,20 @@ static void cpm2_ack(struct irq_data *d)

static void cpm2_end_irq(struct irq_data *d)
{
struct irq_desc *desc;
int bit, word;
unsigned int irq_nr = virq_to_hw(d->irq);

desc = irq_to_desc(irq_nr);
if (!(desc->status & (IRQ_DISABLED|IRQ_INPROGRESS))
&& desc->action) {

bit = irq_to_siubit[irq_nr];
word = irq_to_siureg[irq_nr];
bit = irq_to_siubit[irq_nr];
word = irq_to_siureg[irq_nr];

ppc_cached_irq_mask[word] |= 1 << bit;
out_be32(&cpm2_intctl->ic_simrh + word, ppc_cached_irq_mask[word]);
ppc_cached_irq_mask[word] |= 1 << bit;
out_be32(&cpm2_intctl->ic_simrh + word, ppc_cached_irq_mask[word]);

/*
* Work around large numbers of spurious IRQs on PowerPC 82xx
* systems.
*/
mb();
}
/*
* Work around large numbers of spurious IRQs on PowerPC 82xx
* systems.
*/
mb();
}

static int cpm2_set_irq_type(struct irq_data *d, unsigned int flow_type)
Expand Down Expand Up @@ -202,6 +196,7 @@ static struct irq_chip cpm2_pic = {
.irq_ack = cpm2_ack,
.irq_eoi = cpm2_end_irq,
.irq_set_type = cpm2_set_irq_type,
.flags = IRQCHIP_EOI_IF_HANDLED,
};

unsigned int cpm2_get_irq(void)
Expand Down

0 comments on commit 7bf811a

Please sign in to comment.