summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/arm/gumstix
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2010-05-03 14:49:57 +0000
committerSebastian Huber <sebastian.huber@embedded-brains.de>2010-05-03 14:49:57 +0000
commit021bc6669ac3add112c366822c5e9a194a892446 (patch)
tree49e2d363525538c338195cc67b0a19b29f49af81 /c/src/lib/libbsp/arm/gumstix
parent2010-05-03 Sebastian Huber <Sebastian.Huber@embedded-brains.de> (diff)
downloadrtems-021bc6669ac3add112c366822c5e9a194a892446.tar.bz2
2010-05-03 Sebastian Huber <sebastian.huber@embedded-brains.de>
* rtl8019/rtl8019.c: Fixed interrupt handler.
Diffstat (limited to 'c/src/lib/libbsp/arm/gumstix')
-rw-r--r--c/src/lib/libbsp/arm/gumstix/ChangeLog4
-rw-r--r--c/src/lib/libbsp/arm/gumstix/rtl8019/rtl8019.c33
2 files changed, 10 insertions, 27 deletions
diff --git a/c/src/lib/libbsp/arm/gumstix/ChangeLog b/c/src/lib/libbsp/arm/gumstix/ChangeLog
index 7f2c45c196..b15bcbacf3 100644
--- a/c/src/lib/libbsp/arm/gumstix/ChangeLog
+++ b/c/src/lib/libbsp/arm/gumstix/ChangeLog
@@ -1,3 +1,7 @@
+2010-05-03 Sebastian Huber <sebastian.huber@embedded-brains.de>
+
+ * rtl8019/rtl8019.c: Fixed interrupt handler.
+
2010-04-30 Sebastian Huber <sebastian.huber@embedded-brains.de>
* Makefile.am, preinstall.am: Added generic interrupt support modules.
diff --git a/c/src/lib/libbsp/arm/gumstix/rtl8019/rtl8019.c b/c/src/lib/libbsp/arm/gumstix/rtl8019/rtl8019.c
index 177bd0f658..1103b6a414 100644
--- a/c/src/lib/libbsp/arm/gumstix/rtl8019/rtl8019.c
+++ b/c/src/lib/libbsp/arm/gumstix/rtl8019/rtl8019.c
@@ -191,7 +191,7 @@ struct ne_ring
/* Forward declarations to avoid warnings */
-static void ne_init_irq_handler (int irno);
+static void ne_init_irq_handler (struct ne_softc *sc);
static void ne_stop (struct ne_softc *sc);
static void ne_stop_hardware (struct ne_softc *sc);
static void ne_init (void *arg);
@@ -202,24 +202,6 @@ static void ne_reset(struct ne_softc *sc);
static void ne_dump(struct ne_softc *sc);
#endif
-/* Find the NE2000 device which is attached at a particular interrupt
- vector. */
-
-static struct ne_softc *
-ne_device_for_irno (int irno)
-{
- int i;
-
- for (i = 0; i < NNEDRIVER; ++i)
- {
- if (ne_softc[i].irno == irno
- && ne_softc[i].arpcom.ac_if.if_softc != NULL)
- return &ne_softc[i];
- }
-
- return NULL;
-}
-
/* Read data from an NE2000 device. Read LEN bytes at ADDR, storing
them into P. */
@@ -372,12 +354,11 @@ ne_interrupt_handler (rtems_irq_hdl_param handle)
static void
ne_interrupt_on (const rtems_irq_connect_data *irq)
{
- struct ne_softc *sc;
+ struct ne_softc *sc = irq->handle;
#ifdef DEBUG_NE
printk ("ne_interrupt_on()\n");
#endif
- sc = ne_device_for_irno (irq->name);
if (sc != NULL)
outport_byte (sc->port + IMR, NE_INTERRUPTS);
}
@@ -387,12 +368,11 @@ ne_interrupt_on (const rtems_irq_connect_data *irq)
static void
ne_interrupt_off (const rtems_irq_connect_data *irq)
{
- struct ne_softc *sc;
+ struct ne_softc *sc = irq->handle;
#ifdef DEBUG_NE
printk ("ne_interrupt_off()\n");
#endif
- sc = ne_device_for_irno (irq->name);
if (sc != NULL)
outport_byte (sc->port + IMR, 0);
}
@@ -404,12 +384,11 @@ ne_interrupt_off (const rtems_irq_connect_data *irq)
static int
ne_interrupt_is_on (const rtems_irq_connect_data *irq)
{
- struct ne_softc *sc;
+ struct ne_softc *sc = irq->handle;
unsigned char imr;
#ifdef DEBUG_NE
printk("ne_interrupt_is_on()\n");
#endif
- sc = ne_device_for_irno(irq->name);
if(sc != NULL){
/*Read IMR in Page2*/
outport_byte (sc->port + CMDR, MSK_PG2 | MSK_RD2 | MSK_STP);
@@ -500,12 +479,12 @@ ne_init_hardware (struct ne_softc *sc)
/* Set up interrupts.
*/
static void
-ne_init_irq_handler(ne_softc *sc)
+ne_init_irq_handler(struct ne_softc *sc)
{
rtems_irq_connect_data irq;
#ifdef DEBUG_NE
- printk("ne_init_irq_handler(%d)\n", irno);
+ printk("ne_init_irq_handler(%d)\n", sc->irno);
#endif
irq.name = sc->irno;
irq.hdl = ne_interrupt_handler;