X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Fppc%2Fplatforms%2Fsbc82xx.c;h=74c9ff72c3ddcc319268254158c8482d0ee19b16;hb=6a77f38946aaee1cd85eeec6cf4229b204c15071;hp=3a404a88cab1137c494c2080d6f860b79394810c;hpb=87fc8d1bb10cd459024a742c6a10961fefcef18f;p=linux-2.6.git diff --git a/arch/ppc/platforms/sbc82xx.c b/arch/ppc/platforms/sbc82xx.c index 3a404a88c..74c9ff72c 100644 --- a/arch/ppc/platforms/sbc82xx.c +++ b/arch/ppc/platforms/sbc82xx.c @@ -68,7 +68,7 @@ static void sbc82xx_time_init(void) static volatile char *sbc82xx_i8259_map; static char sbc82xx_i8259_mask = 0xff; -static spinlock_t sbc82xx_i8259_lock = SPIN_LOCK_UNLOCKED; +static DEFINE_SPINLOCK(sbc82xx_i8259_lock); static void sbc82xx_i8259_mask_and_ack_irq(unsigned int irq_nr) { @@ -142,10 +142,17 @@ static irqreturn_t sbc82xx_i8259_demux(int irq, void *dev_id, struct pt_regs *re return IRQ_HANDLED; } } - ppc_irq_dispatch_handler(regs, NR_SIU_INTS + irq); + __do_IRQ(NR_SIU_INTS + irq, regs); return IRQ_HANDLED; } +static struct irqaction sbc82xx_i8259_irqaction = { + .handler = sbc82xx_i8259_demux, + .flags = SA_INTERRUPT, + .mask = CPU_MASK_NONE, + .name = "i8259 demux", +}; + void __init sbc82xx_init_IRQ(void) { volatile memctl_cpm2_t *mc = &cpm2_immr->im_memctl; @@ -186,8 +193,7 @@ void __init sbc82xx_init_IRQ(void) sbc82xx_i8259_map[1] = sbc82xx_i8259_mask; /* Set interrupt mask */ /* Request cascade IRQ */ - if (request_irq(SIU_INT_IRQ6, sbc82xx_i8259_demux, SA_INTERRUPT, - "i8259 demux", 0)) { + if (setup_irq(SIU_INT_IRQ6, &sbc82xx_i8259_irqaction)) { printk("Installation of i8259 IRQ demultiplexer failed.\n"); } }