summaryrefslogtreecommitdiffstats
path: root/c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2011-02-16 08:25:00 +0000
committerSebastian Huber <sebastian.huber@embedded-brains.de>2011-02-16 08:25:00 +0000
commit2e3f4398587e53386440ff90f5f411fc9bd526df (patch)
tree715d300890a89e7c53293f7e96d9bd7556cfdfde /c
parent2011-02-16 Sebastian Huber <sebastian.huber@embedded-brains.de> (diff)
downloadrtems-2e3f4398587e53386440ff90f5f411fc9bd526df.tar.bz2
2011-02-16 Sebastian Huber <sebastian.huber@embedded-brains.de>
* libchip/serial/ns16550.c: Revert previous commit and extend existing mechanic.
Diffstat (limited to 'c')
-rw-r--r--c/src/ChangeLog5
-rw-r--r--c/src/libchip/serial/ns16550.c37
2 files changed, 15 insertions, 27 deletions
diff --git a/c/src/ChangeLog b/c/src/ChangeLog
index 95354bb8e7..5800049150 100644
--- a/c/src/ChangeLog
+++ b/c/src/ChangeLog
@@ -1,3 +1,8 @@
+2011-02-16 Sebastian Huber <sebastian.huber@embedded-brains.de>
+
+ * libchip/serial/ns16550.c: Revert previous commit and extend existing
+ mechanic.
+
2011-02-15 Jennifer Averett
* libchip/serial/ns16550.c, libchip/serial/ns16550_p.h: Support i386
diff --git a/c/src/libchip/serial/ns16550.c b/c/src/libchip/serial/ns16550.c
index 53803f9082..2293e3bdd8 100644
--- a/c/src/libchip/serial/ns16550.c
+++ b/c/src/libchip/serial/ns16550.c
@@ -39,18 +39,16 @@
#include "ns16550_p.h"
-#ifdef BSP_FEATURE_IRQ_EXTENSION
+#if defined(BSP_FEATURE_IRQ_EXTENSION)
#include <bsp/irq.h>
-#elif defined BSP_FEATURE_IRQ_LEGACY
+#elif defined(BSP_FEATURE_IRQ_LEGACY)
#include <bsp/irq.h>
-#elif defined __PPC__
+#elif defined(__PPC__) || defined(__i386__)
#include <bsp/irq.h>
#define BSP_FEATURE_IRQ_LEGACY
#ifdef BSP_SHARED_HANDLER_SUPPORT
#define BSP_FEATURE_IRQ_LEGACY_SHARED_HANDLER_SUPPORT
#endif
-#elif defined(__i386__)
- #include <bsp/irq.h>
#endif
/*
@@ -474,6 +472,7 @@ NS16550_STATIC int ns16550_set_attributes(
return 0;
}
+#if defined(BSP_FEATURE_IRQ_EXTENSION) || defined(BSP_FEATURE_IRQ_LEGACY)
/**
* @brief Process interrupt.
@@ -522,7 +521,6 @@ NS16550_STATIC void ns16550_process( int minor)
}
} while ((get( port, NS16550_INTERRUPT_ID) & SP_IID_0) == 0);
}
-#if defined(BSP_FEATURE_IRQ_EXTENSION) || defined(BSP_FEATURE_IRQ_LEGACY)
#endif
/**
@@ -580,12 +578,14 @@ NS16550_STATIC void ns16550_enable_interrupts(
(*setReg)(pNS16550, NS16550_INTERRUPT_ENABLE, mask);
}
- NS16550_STATIC rtems_isr ns16550_isr(void *arg)
- {
+#if defined(BSP_FEATURE_IRQ_EXTENSION) || defined(BSP_FEATURE_IRQ_LEGACY)
+ NS16550_STATIC rtems_isr ns16550_isr(void *arg)
+ {
int minor = (int) arg;
ns16550_process( minor);
- }
+ }
+#endif
/*
* ns16550_initialize_interrupts
@@ -595,8 +595,8 @@ NS16550_STATIC void ns16550_enable_interrupts(
NS16550_STATIC void ns16550_initialize_interrupts( int minor)
{
#if defined(BSP_FEATURE_IRQ_EXTENSION) || defined(BSP_FEATURE_IRQ_LEGACY)
-#endif
console_tbl *c = &Console_Port_Tbl [minor];
+#endif
console_data *d = &Console_Port_Data [minor];
d->bActive = false;
@@ -648,23 +648,6 @@ NS16550_STATIC void ns16550_initialize_interrupts( int minor)
rtems_fatal_error_occurred( 0xdeadbeef);
}
}
- #elif defined(__i386__)
- {
- int rv = 0;
- rtems_irq_connect_data cd = {
- c->ulIntVector,
- ns16550_isr,
- (void *) minor,
- NULL,
- NULL,
- NULL
- };
- rv = BSP_install_rtems_irq_handler( &cd);
- if (rv == 0) {
- printk( "%s: Error: Install interrupt handler\n", __func__);
- rtems_fatal_error_occurred( 0xdeadbeef);
- }
- }
#endif
}