* (C) Copyright 2000-2004
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
*
- * (C) Copyright 2007
+ * (C) Copyright 2007 Freescale Semiconductor Inc
* TsiChung Liew (Tsi-Chung.Liew@freescale.com)
*
* See file CREDITS for list of people who contributed to this
#include <common.h>
#include <watchdog.h>
#include <asm/processor.h>
+#include <asm/immap.h>
-#ifdef CONFIG_MCFINTC
-#define NR_IRQS (CFG_NUM_IRQS)
+#define NR_IRQS (CONFIG_SYS_NUM_IRQS)
/*
* Interrupt vector functions.
*/
void irq_install_handler (int vec, interrupt_handler_t * handler, void *arg)
{
- if ((vec < 0) || (vec > NR_IRQS)) {
+ if ((vec < 0) || (vec >= NR_IRQS)) {
printf ("irq_install_handler: wrong interrupt vector %d\n",
vec);
return;
void irq_free_handler (int vec)
{
- if ((vec < 0) || (vec > NR_IRQS)) {
+ if ((vec < 0) || (vec >= NR_IRQS)) {
return;
}
vec = (fp->vector >> 2) & 0xff;
if (vec > 0x40)
vec -= 0x40;
- else
- return;
if (irq_vecs[vec].handler != NULL) {
irq_vecs[vec].handler (irq_vecs[vec].arg);
printf ("\nBogus External Interrupt Vector %d\n", vec);
}
}
-#endif /* CONFIG_MCFINTC */
\ No newline at end of file