bsp/rtl22xx: Use IRQ extensions API

This commit is contained in:
Vipul Nayyar
2013-07-15 15:04:45 +05:30
committed by Sebastian Huber
parent 818d4b090f
commit 583eb4588f

View File

@@ -3,24 +3,18 @@
#include <sys/mbuf.h>
#include <bsp/irq.h>
#include <libchip/cs8900.h>
#include <assert.h>
#define CS8900_BASE 0x20000300
unsigned int bsp_cs8900_io_base = 0;
unsigned int bsp_cs8900_memory_base = 0;
cs8900_device *g_cs;
void cs8900_isr(rtems_irq_hdl_param unused);
rtems_irq_connect_data cs8900_isr_data = {LPC22xx_INTERRUPT_EINT2,
cs8900_isr,
NULL,
NULL,
NULL,
NULL};
static void cs8900_isr(void *);
char g_enetbuf[1520];
void cs8900_isr(rtems_irq_hdl_param unused)
static void cs8900_isr(void *arg)
{
cs8900_interrupt(LPC22xx_INTERRUPT_EINT2, g_cs);
cs8900_interrupt(LPC22xx_INTERRUPT_EINT2, arg);
}
/* cs8900_io_set_reg - set one of the I/O addressed registers */
@@ -69,13 +63,26 @@ unsigned short cs8900_mem_get_reg (cs8900_device *cs, unsigned long reg)
void cs8900_attach_interrupt (cs8900_device *cs)
{
g_cs = cs;
BSP_install_rtems_irq_handler(&cs8900_isr_data);
rtems_status_code status = RTEMS_SUCCESSFUL;
status = rtems_interrupt_handler_install(
LPC22xx_INTERRUPT_EINT2,
"Network",
RTEMS_INTERRUPT_UNIQUE,
cs8900_isr,
cs
);
assert(status == RTEMS_SUCCESSFUL);
}
void cs8900_detach_interrupt (cs8900_device *cs)
{
BSP_remove_rtems_irq_handler(&cs8900_isr_data);
rtems_status_code status = RTEMS_SUCCESSFUL;
status = rtems_interrupt_handler_remove(
LPC22xx_INTERRUPT_EINT2,
cs8900_isr,
cs
);
assert(status == RTEMS_SUCCESSFUL);
}
unsigned short cs8900_get_data_block (cs8900_device *cs, unsigned char *data)