summaryrefslogtreecommitdiffstats
path: root/arch/microblaze/cpu
diff options
context:
space:
mode:
authorMichal Simek <monstr@monstr.eu>2012-06-29 14:21:52 +0200
committerMichal Simek <monstr@monstr.eu>2012-09-11 09:24:57 +0200
commit8706908a2522f7d38f916e38ee13ca91e9f30bc5 (patch)
tree171b55936126f600ae26af35a1f77dc3352442ed /arch/microblaze/cpu
parente35c05baa17fc049f32c675b6ee0aaa109980dcb (diff)
downloadblackbird-obmc-uboot-8706908a2522f7d38f916e38ee13ca91e9f30bc5.tar.gz
blackbird-obmc-uboot-8706908a2522f7d38f916e38ee13ca91e9f30bc5.zip
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.c16
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 */
OpenPOWER on IntegriCloud