diff options
author | Chris Johns <chrisj@rtems.org> | 2016-05-06 17:55:29 +1000 |
---|---|---|
committer | Chris Johns <chrisj@rtems.org> | 2016-05-11 11:45:01 +1000 |
commit | 93fb8797961f602ea70ac5b846a066b05db44b18 (patch) | |
tree | 5f0fa3a6427b178a0763ec8c6255895133e75214 /c/src/lib/libbsp/i386/shared/irq/irq_init.c | |
parent | i386/pc386: Fix printk with the console changes. (diff) | |
download | rtems-93fb8797961f602ea70ac5b846a066b05db44b18.tar.bz2 |
i386/pc386: Fix interrupt support.
Fix the interrupt and stop the spurious interrupt from happening.
The fix moves the EOI to C code and cleans that functionality out
of the asm part of the ISR handler.
The code checks the ISR and IRR registers on the enable.
Only ack the master for a slave IRQ if the slave has no other pending
requests.
Diffstat (limited to '')
-rw-r--r-- | c/src/lib/libbsp/i386/shared/irq/irq_init.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/c/src/lib/libbsp/i386/shared/irq/irq_init.c b/c/src/lib/libbsp/i386/shared/irq/irq_init.c index fe8d7e7f9f..c401f29b71 100644 --- a/c/src/lib/libbsp/i386/shared/irq/irq_init.c +++ b/c/src/lib/libbsp/i386/shared/irq/irq_init.c @@ -66,7 +66,7 @@ static int raw_not_connected( static rtems_raw_irq_connect_data idtHdl[IDT_SIZE]; -static rtems_raw_irq_hdl rtemsIrq[BSP_IRQ_LINES_NUMBER] = { +static rtems_raw_irq_hdl rtemsIrq[BSP_IRQ_VECTOR_NUMBER] = { rtems_irq_prologue_0, rtems_irq_prologue_1, rtems_irq_prologue_2, @@ -149,7 +149,7 @@ void rtems_irq_mngt_init(void) * Patch the entry that will be used by RTEMS for interrupt management * with RTEMS prologue. */ - for (i = 0; i < BSP_IRQ_LINES_NUMBER; i++) { + for (i = 0; i < BSP_IRQ_VECTOR_NUMBER; i++) { create_interrupt_gate_descriptor(&idtEntry, rtemsIrq[i]); idt_entry_tbl[i + BSP_ASM_IRQ_VECTOR_BASE] = idtEntry; } |