Changeset 516ff92 in mainline for kernel/arch/mips32/src/drivers/serial.c
- Timestamp:
- 2009-01-31T21:27:18Z (16 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 4863e50b
- Parents:
- 96a2e45
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/mips32/src/drivers/serial.c
r96a2e45 r516ff92 27 27 */ 28 28 29 /** @addtogroup mips32 29 /** @addtogroup mips32 30 30 * @{ 31 31 */ … … 47 47 static bool kb_enabled; 48 48 49 static void serial_write(chardev_t *d, const char ch )49 static void serial_write(chardev_t *d, const char ch, bool silent) 50 50 { 51 serial_t *sd = (serial_t *)d->data; 52 53 if (ch == '\n') 54 serial_write(d, '\r'); 55 /* Wait until transmit buffer empty */ 56 while (! (SERIAL_READ_LSR(sd->port) & (1<<TRANSMIT_EMPTY_BIT))) 57 ; 58 SERIAL_WRITE(sd->port, ch); 51 if (!silent) { 52 serial_t *sd = (serial_t *)d->data; 53 54 if (ch == '\n') 55 serial_write(d, '\r'); 56 57 /* Wait until transmit buffer empty */ 58 while (!(SERIAL_READ_LSR(sd->port) & (1 << TRANSMIT_EMPTY_BIT))); 59 SERIAL_WRITE(sd->port, ch); 60 } 59 61 } 60 62 … … 134 136 { 135 137 serial_t *sd = &sconf[0]; 136 137 138 138 139 chardev_initialize("serial_console", &console, &serial_ops); 139 140 console.data = sd; … … 146 147 serial_irq.handler = serial_irq_handler; 147 148 irq_register(&serial_irq); 148 149 149 150 /* I don't know why, but the serial interrupts simply 150 * don't work on simics 151 */ 151 don't work on simics */ 152 152 virtual_timer_fnc = &serial_handler; 153 153
Note:
See TracChangeset
for help on using the changeset viewer.