From 9a8bf95b3b485d48efafb345fb16b0b21a5fee67 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Thu, 13 Mar 2014 16:45:40 +0100 Subject: libchip: Check interrupt extension availability --- c/src/libchip/network/dwmac.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'c/src/libchip/network/dwmac.c') diff --git a/c/src/libchip/network/dwmac.c b/c/src/libchip/network/dwmac.c index a4373d2388..3acf63194c 100644 --- a/c/src/libchip/network/dwmac.c +++ b/c/src/libchip/network/dwmac.c @@ -30,7 +30,10 @@ #include #include "dwmac-common.h" #include "dwmac-core.h" + +#ifdef BSP_FEATURE_IRQ_EXTENSION #include +#endif /* PHY events which can be combined to an event set. * The PHY can create an event for a corresponding status change */ @@ -1789,6 +1792,7 @@ static int dwmac_if_up_or_down( /* Set up mmc counters */ dwmac_mmc_setup( self ); +#ifdef BSP_FEATURE_IRQ_EXTENSION /* Install interrupt handler */ sc = rtems_interrupt_handler_install( self->CFG->IRQ_EMAC, @@ -1797,6 +1801,9 @@ static int dwmac_if_up_or_down( dwmac_core_dma_interrupt, self ); +#else + sc = RTEMS_NOT_IMPLEMENTED; +#endif eno = rtems_status_code_to_errno( sc ); } @@ -1828,11 +1835,13 @@ static int dwmac_if_up_or_down( self, self->task_id_tx, DWMAC_COMMON_EVENT_TASK_STOP ); (void) dwmac_control_request( self, self->task_id_rx, DWMAC_COMMON_EVENT_TASK_STOP ); +#ifdef BSP_FEATURE_IRQ_EXTENSION (void) rtems_interrupt_handler_remove( self->CFG->IRQ_EMAC, dwmac_core_dma_interrupt, self ); +#endif (void) ( CALLBACK->phy_stop )( self->arg ); (void) ( CALLBACK->phy_disable )( self->arg ); @@ -1855,11 +1864,15 @@ static int dwmac_if_up_or_down( } if ( eno == 0 ) { +#ifdef BSP_FEATURE_IRQ_EXTENSION sc = rtems_interrupt_handler_remove( self->CFG->IRQ_EMAC, dwmac_core_dma_interrupt, self ); +#else + sc = RTEMS_NOT_IMPLEMENTED; +#endif eno = rtems_status_code_to_errno( sc ); } -- cgit v1.2.3