diff options
author | Michal Simek <monstr@monstr.eu> | 2012-06-29 16:21:52 +0400 |
---|---|---|
committer | Michal Simek <monstr@monstr.eu> | 2012-09-11 11:24:57 +0400 |
commit | 8706908a2522f7d38f916e38ee13ca91e9f30bc5 (patch) | |
tree | 171b55936126f600ae26af35a1f77dc3352442ed /arch/microblaze/cpu | |
parent | e35c05baa17fc049f32c675b6ee0aaa109980dcb (diff) | |
download | u-boot-8706908a2522f7d38f916e38ee13ca91e9f30bc5.tar.xz |
microblaze: intc: Registering interrupt should return value
Return value to find out if un/registration was succesful.
Signed-off-by: Michal Simek <monstr@monstr.eu>
Diffstat (limited to 'arch/microblaze/cpu')
-rw-r--r-- | arch/microblaze/cpu/interrupts.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/arch/microblaze/cpu/interrupts.c b/arch/microblaze/cpu/interrupts.c index ee67082188..08f6bad90a 100644 --- a/arch/microblaze/cpu/interrupts.c +++ b/arch/microblaze/cpu/interrupts.c @@ -91,14 +91,13 @@ static void disable_one_interrupt(int irq) #endif } -/* adding new handler for interrupt */ -void install_interrupt_handler (int irq, interrupt_handler_t * hdlr, void *arg) +int install_interrupt_handler(int irq, interrupt_handler_t *hdlr, void *arg) { struct irq_action *act; /* irq out of range */ if ((irq < 0) || (irq > irq_no)) { puts ("IRQ out of range\n"); - return; + return -1; } act = &vecs[irq]; if (hdlr) { /* enable */ @@ -106,11 +105,14 @@ void install_interrupt_handler (int irq, interrupt_handler_t * hdlr, void *arg) act->arg = arg; act->count = 0; enable_one_interrupt (irq); - } else { /* disable */ - act->handler = (interrupt_handler_t *) def_hdlr; - act->arg = (void *)irq; - disable_one_interrupt (irq); + return 0; } + + /* Disable */ + act->handler = (interrupt_handler_t *) def_hdlr; + act->arg = (void *)irq; + disable_one_interrupt(irq); + return 1; } /* initialization interrupt controller - hardware */ |