diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2011-01-17 10:31:18 +0000 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2011-01-17 10:31:18 +0000 |
commit | 29badca6c11a3743e14c23b361ce886d3236979b (patch) | |
tree | db5dd1417452768396fa94b013294eeff61e1aa1 /c/src/libchip/serial/ns16550.c | |
parent | 2011-01-14 Sebastian Huber <sebastian.huber@embedded-brains.de> (diff) | |
download | rtems-29badca6c11a3743e14c23b361ce886d3236979b.tar.bz2 |
2011-01-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
* libchip/serial/ns16550.c: Install interrupt handler after TTY
pointer is valid.
Diffstat (limited to '')
-rw-r--r-- | c/src/libchip/serial/ns16550.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/c/src/libchip/serial/ns16550.c b/c/src/libchip/serial/ns16550.c index 11e33f8915..e6552a908a 100644 --- a/c/src/libchip/serial/ns16550.c +++ b/c/src/libchip/serial/ns16550.c @@ -68,10 +68,10 @@ console_flow ns16550_flow_DTRCTS = { console_fns ns16550_fns = { libchip_serial_default_probe, /* deviceProbe */ ns16550_open, /* deviceFirstOpen */ - NULL, /* deviceLastClose */ + ns16550_close, /* deviceLastClose */ NULL, /* deviceRead */ ns16550_write_support_int, /* deviceWrite */ - ns16550_initialize_interrupts, /* deviceInitialize */ + ns16550_init, /* deviceInitialize */ ns16550_write_polled, /* deviceWritePolled */ ns16550_set_attributes, /* deviceSetAttributes */ true /* deviceOutputUsesInterrupts */ @@ -186,6 +186,7 @@ NS16550_STATIC int ns16550_open( rtems_termios_set_initial_baud( tty, (intptr_t) c->pDeviceParams); if (c->pDeviceFns->deviceOutputUsesInterrupts) { + ns16550_initialize_interrupts( minor); ns16550_enable_interrupts( minor, NS16550_ENABLE_ALL_INTR_EXCEPT_TX); } @@ -598,8 +599,6 @@ NS16550_STATIC void ns16550_initialize_interrupts( int minor) #endif console_data *d = &Console_Port_Data [minor]; - ns16550_init( minor); - d->bActive = false; #ifdef BSP_FEATURE_IRQ_EXTENSION |