|
From: Paul M. <le...@us...> - 2006-08-07 02:14:13
|
Update of /cvsroot/linuxsh/linux/arch/sh/kernel/cpu/irq In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv568/arch/sh/kernel/cpu/irq Modified Files: ipr.c maskreg.c pint.c Log Message: No need to toggle interrupts for IRQ enable/disable(), the generic hardirq framework already takes care of the locking and IRQ management for us. Index: ipr.c =================================================================== RCS file: /cvsroot/linuxsh/linux/arch/sh/kernel/cpu/irq/ipr.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- ipr.c 3 Aug 2006 06:55:15 -0000 1.4 +++ ipr.c 7 Aug 2006 02:14:09 -0000 1.5 @@ -58,31 +58,27 @@ static void disable_ipr_irq(unsigned int irq) { - unsigned long val, flags; + unsigned long val; unsigned int addr = ipr_data[irq].addr; unsigned short mask = 0xffff ^ (0x0f << ipr_data[irq].shift); /* Set the priority in IPR to 0 */ - local_irq_save(flags); val = ctrl_inw(addr); val &= mask; ctrl_outw(val, addr); - local_irq_restore(flags); } static void enable_ipr_irq(unsigned int irq) { - unsigned long val, flags; + unsigned long val; unsigned int addr = ipr_data[irq].addr; int priority = ipr_data[irq].priority; unsigned short value = (priority << ipr_data[irq].shift); /* Set priority in IPR back to original value */ - local_irq_save(flags); val = ctrl_inw(addr); val |= value; ctrl_outw(val, addr); - local_irq_restore(flags); } static void mask_and_ack_ipr(unsigned int irq) Index: maskreg.c =================================================================== RCS file: /cvsroot/linuxsh/linux/arch/sh/kernel/cpu/irq/maskreg.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- maskreg.c 7 Aug 2006 01:57:48 -0000 1.1 +++ maskreg.c 7 Aug 2006 02:14:09 -0000 1.2 @@ -52,32 +52,26 @@ static void disable_maskreg_irq(unsigned int irq) { - unsigned long flags; unsigned short val, mask = 0x01 << irq; BUG_ON(!irq_mask_register); /* Set "irq"th bit */ - local_irq_save(flags); val = ctrl_inw(irq_mask_register); val |= mask; ctrl_outw(val, irq_mask_register); - local_irq_restore(flags); } static void enable_maskreg_irq(unsigned int irq) { - unsigned long flags; unsigned short val, mask = ~(0x01 << irq); BUG_ON(!irq_mask_register); /* Clear "irq"th bit */ - local_irq_save(flags); val = ctrl_inw(irq_mask_register); val &= mask; ctrl_outw(val, irq_mask_register); - local_irq_restore(flags); } static void mask_and_ack_maskreg(unsigned int irq) Index: pint.c =================================================================== RCS file: /cvsroot/linuxsh/linux/arch/sh/kernel/cpu/irq/pint.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- pint.c 7 Jan 2006 20:16:39 -0000 1.1 +++ pint.c 7 Aug 2006 02:14:09 -0000 1.2 @@ -49,26 +49,22 @@ static void disable_pint_irq(unsigned int irq) { - unsigned long val, flags; + unsigned long val; - local_irq_save(flags); val = ctrl_inw(INTC_INTER); val &= ~(1 << (irq - PINT_IRQ_BASE)); ctrl_outw(val, INTC_INTER); /* disable PINTn */ portcr_mask &= ~(3 << (irq - PINT_IRQ_BASE)*2); - local_irq_restore(flags); } static void enable_pint_irq(unsigned int irq) { - unsigned long val, flags; + unsigned long val; - local_irq_save(flags); val = ctrl_inw(INTC_INTER); val |= 1 << (irq - PINT_IRQ_BASE); ctrl_outw(val, INTC_INTER); /* enable PINTn */ portcr_mask |= 3 << (irq - PINT_IRQ_BASE)*2; - local_irq_restore(flags); } static void mask_and_ack_pint(unsigned int irq) |