summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/powerpc/mpc8260ads/irq/irq.c
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libbsp/powerpc/mpc8260ads/irq/irq.c')
-rw-r--r--c/src/lib/libbsp/powerpc/mpc8260ads/irq/irq.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/c/src/lib/libbsp/powerpc/mpc8260ads/irq/irq.c b/c/src/lib/libbsp/powerpc/mpc8260ads/irq/irq.c
index 3c3166c825..87c8477ee0 100644
--- a/c/src/lib/libbsp/powerpc/mpc8260ads/irq/irq.c
+++ b/c/src/lib/libbsp/powerpc/mpc8260ads/irq/irq.c
@@ -289,7 +289,8 @@ int BSP_install_rtems_irq_handler (const rtems_irq_connect_data* irq)
/*
* Enable interrupt on device
*/
- irq->on(irq);
+ if (irq->on)
+ irq->on(irq);
rtems_interrupt_enable(level);
@@ -343,7 +344,8 @@ int BSP_remove_rtems_irq_handler (const rtems_irq_connect_data* irq)
/*
* Disable interrupt on device
*/
- irq->off(irq);
+ if (irq->off)
+ irq->off(irq);
/*
* restore the default irq value
@@ -381,9 +383,11 @@ int BSP_rtems_irq_mngt_set(rtems_irq_global_settings* config)
for (i=BSP_CPM_IRQ_LOWEST_OFFSET; i < BSP_CPM_IRQ_LOWEST_OFFSET + BSP_CPM_IRQ_NUMBER ; i++) {
if (rtems_hdl_tbl[i].hdl != default_rtems_entry.hdl) {
BSP_irq_enable_at_cpm (i);
- rtems_hdl_tbl[i].on(&rtems_hdl_tbl[i]);
+ if (rtems_hdl_tbl[i].on)
+ rtems_hdl_tbl[i].on(&rtems_hdl_tbl[i]);
} else {
- rtems_hdl_tbl[i].off(&rtems_hdl_tbl[i]);
+ if (rtems_hdl_tbl[i].off)
+ rtems_hdl_tbl[i].off(&rtems_hdl_tbl[i]);
BSP_irq_disable_at_cpm (i);
}
}
@@ -393,9 +397,11 @@ int BSP_rtems_irq_mngt_set(rtems_irq_global_settings* config)
*/
for (i=BSP_PROCESSOR_IRQ_LOWEST_OFFSET; i < BSP_PROCESSOR_IRQ_LOWEST_OFFSET + BSP_PROCESSOR_IRQ_NUMBER; i++) {
if (rtems_hdl_tbl[i].hdl != default_rtems_entry.hdl) {
- rtems_hdl_tbl[i].on(&rtems_hdl_tbl[i]);
+ if (rtems_hdl_tbl[i].on)
+ rtems_hdl_tbl[i].on(&rtems_hdl_tbl[i]);
} else {
- rtems_hdl_tbl[i].off(&rtems_hdl_tbl[i]);
+ if (rtems_hdl_tbl[i].off)
+ rtems_hdl_tbl[i].off(&rtems_hdl_tbl[i]);
}
}