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>
This commit is contained in:
		
							parent
							
								
									e35c05baa1
								
							
						
					
					
						commit
						8706908a25
					
				|  | @ -91,14 +91,13 @@ static void disable_one_interrupt(int irq) | ||||||
| #endif | #endif | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| /* adding new handler for interrupt */ | int install_interrupt_handler(int irq, interrupt_handler_t *hdlr, void *arg) | ||||||
| void install_interrupt_handler (int irq, interrupt_handler_t * hdlr, void *arg) |  | ||||||
| { | { | ||||||
| 	struct irq_action *act; | 	struct irq_action *act; | ||||||
| 	/* irq out of range */ | 	/* irq out of range */ | ||||||
| 	if ((irq < 0) || (irq > irq_no)) { | 	if ((irq < 0) || (irq > irq_no)) { | ||||||
| 		puts ("IRQ out of range\n"); | 		puts ("IRQ out of range\n"); | ||||||
| 		return; | 		return -1; | ||||||
| 	} | 	} | ||||||
| 	act = &vecs[irq]; | 	act = &vecs[irq]; | ||||||
| 	if (hdlr) {		/* enable */ | 	if (hdlr) {		/* enable */ | ||||||
|  | @ -106,11 +105,14 @@ void install_interrupt_handler (int irq, interrupt_handler_t * hdlr, void *arg) | ||||||
| 		act->arg = arg; | 		act->arg = arg; | ||||||
| 		act->count = 0; | 		act->count = 0; | ||||||
| 		enable_one_interrupt (irq); | 		enable_one_interrupt (irq); | ||||||
| 	} else {		/* disable */ | 		return 0; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	/* Disable */ | ||||||
| 	act->handler = (interrupt_handler_t *) def_hdlr; | 	act->handler = (interrupt_handler_t *) def_hdlr; | ||||||
| 	act->arg = (void *)irq; | 	act->arg = (void *)irq; | ||||||
| 		disable_one_interrupt (irq); | 	disable_one_interrupt(irq); | ||||||
| 	} | 	return 1; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| /* initialization interrupt controller - hardware */ | /* initialization interrupt controller - hardware */ | ||||||
|  |  | ||||||
|  | @ -39,7 +39,16 @@ struct irq_action { | ||||||
| 	int count; /* number of interrupt */ | 	int count; /* number of interrupt */ | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| void install_interrupt_handler (int irq, interrupt_handler_t * hdlr, | /**
 | ||||||
|  |  * Register and unregister interrupt handler rutines | ||||||
|  |  * | ||||||
|  |  * @param irq	IRQ number | ||||||
|  |  * @param hdlr	Interrupt handler rutine | ||||||
|  |  * @param arg	Pointer to argument which is passed to int. handler rutine | ||||||
|  |  * @return	0 if registration pass, 1 if unregistration pass, | ||||||
|  |  *		or an error code < 0 otherwise | ||||||
|  |  */ | ||||||
|  | int install_interrupt_handler(int irq, interrupt_handler_t *hdlr, | ||||||
| 				       void *arg); | 				       void *arg); | ||||||
| 
 | 
 | ||||||
| int interrupts_init(void); | int interrupts_init(void); | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue