Skip to content

Commit

Permalink
powerpc: mpc8xx_pic: Cleanup flow type handling
Browse files Browse the repository at this point in the history
The core irq_set_type() function updates the flow type when the chip
callback returns 0. So setting the type is bogus. The level flag is
updated in the core as well.

Use the proper accessors for setting the irq handlers.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
  • Loading branch information
Thomas Gleixner committed Mar 29, 2011
1 parent ecf4b19 commit 5fed97a
Showing 1 changed file with 1 addition and 8 deletions.
9 changes: 1 addition & 8 deletions arch/powerpc/sysdev/mpc8xx_pic.c
Original file line number Diff line number Diff line change
Expand Up @@ -72,13 +72,6 @@ static void mpc8xx_end_irq(struct irq_data *d)

static int mpc8xx_set_irq_type(struct irq_data *d, unsigned int flow_type)
{
struct irq_desc *desc = irq_to_desc(d->irq);

desc->status &= ~(IRQ_TYPE_SENSE_MASK | IRQ_LEVEL);
desc->status |= flow_type & IRQ_TYPE_SENSE_MASK;
if (flow_type & (IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_LEVEL_LOW))
desc->status |= IRQ_LEVEL;

if (flow_type & IRQ_TYPE_EDGE_FALLING) {
irq_hw_number_t hw = (unsigned int)irq_map[d->irq].hwirq;
unsigned int siel = in_be32(&siu_reg->sc_siel);
Expand All @@ -87,7 +80,7 @@ static int mpc8xx_set_irq_type(struct irq_data *d, unsigned int flow_type)
if ((hw & 1) == 0) {
siel |= (0x80000000 >> hw);
out_be32(&siu_reg->sc_siel, siel);
desc->handle_irq = handle_edge_irq;
__set_irq_handler_unlocked(irq, handle_edge_irq);
}
}
return 0;
Expand Down

0 comments on commit 5fed97a

Please sign in to comment.