diff -Nur /home/weldon/rtai-24.1.13/arch/arm/rtai.c /user/weldon/rtai-arm/rtai-24.1.13/arch/arm/rtai.c
--- /home/weldon/rtai-24.1.13/arch/arm/rtai.c Sat Nov 8 02:53:27 2003
+++ /user/weldon/rtai-arm/rtai-24.1.13/arch/arm/rtai.c Tue Nov 2 16:28:11 2004
@@ -215,9 +215,6 @@
#endif
clear_pending_irq(irq);
- /* Emulate Linux behaviour, i.e. serve multiplexed interrupts 1 at a time */
- if (isdemuxirq(irq))
- irq_desc[ARCH_MUX_IRQ].running = 1;
rt_spin_unlock_irq(&(global.data_lock));
// ** call old Linux do_IRQ() to handle IRQ
@@ -225,8 +222,6 @@
/* Unmasking is done in do_IRQ above - don't do twice */
rt_spin_lock_irq(&(global.data_lock));
- if (isdemuxirq(irq))
- irq_desc[ARCH_MUX_IRQ].running = 0;
}
// Local IRQ Handling - missing here ... only on SMP
@@ -587,7 +582,7 @@
irq_desc[irq].mask = do_nothing_picfun;
irq_desc[irq].unmask = shared_unmask_irq;
- shadow_irq_desc[irq].disable_depth = 1;
+ shadow_irq_desc[irq].enabled = 0;
global_irq[irq].handler = handler;
global_irq[irq].dev_id = dev_id;
diff -Nur /home/weldon/rtai-24.1.13/include/asm-arm/irqops.h /user/weldon/rtai-arm/rtai-24.1.13/include/asm-arm/irqops.h
--- /home/weldon/rtai-24.1.13/include/asm-arm/irqops.h Sat Nov 8 02:53:27 2003
+++ /user/weldon/rtai-arm/rtai-24.1.13/include/asm-arm/irqops.h Tue Nov 2 16:24:10 2004
@@ -55,8 +55,7 @@
irq_p = list_entry(listhead_p, linux_irq_t, pending);
irq = irq_p - linux_irqs;
desc = irq_desc + irq;
- if (linux_unmasked(desc) &&
- !(isdemuxirq(irq) && irq_desc[ARCH_MUX_IRQ].running))
+ if (linux_unmasked(desc))
return irq;
}
return NO_IRQ;
本文地址:http://com.8s8s.com/it/it25965.htm