
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD plagnioj@jcrosoft.com --- common/serial.c | 62 +++++++++++++++++------------------------------------- 1 files changed, 20 insertions(+), 42 deletions(-)
diff --git a/common/serial.c b/common/serial.c index a4171be..7d764f2 100644 --- a/common/serial.c +++ b/common/serial.c @@ -179,77 +179,55 @@ void serial_reinit_all (void) } }
-int serial_init (void) +struct stdio_dev * serial_get_current_device(void) { - if (!(gd->flags & GD_FLG_RELOC) || !serial_current) { - struct stdio_dev *dev = default_serial_console (); + if (!(gd->flags & GD_FLG_RELOC) || !serial_current) + return default_serial_console ();
- if (dev->start) - return dev->start (dev); + return serial_current; +}
- return 0; - } +int serial_init (void) +{ + struct stdio_dev *dev = serial_get_current_device();
- if (serial_current->start) - return serial_current->start (serial_current); + if (dev->start) + return dev->start (dev);
return 0; }
void serial_setbrg (void) { - if (!(gd->flags & GD_FLG_RELOC) || !serial_current) { - struct stdio_dev *dev = default_serial_console (); - - dev->setbrg (dev); - return; - } + struct stdio_dev *dev = serial_get_current_device();
- serial_current->setbrg (serial_current); + dev->setbrg (dev); }
int serial_getc (void) { - if (!(gd->flags & GD_FLG_RELOC) || !serial_current) { - struct stdio_dev *dev = default_serial_console (); + struct stdio_dev *dev = serial_get_current_device();
- return dev->getc (dev); - } - - return serial_current->getc (serial_current); + return dev->getc (dev); }
int serial_tstc (void) { - if (!(gd->flags & GD_FLG_RELOC) || !serial_current) { - struct stdio_dev *dev = default_serial_console (); - - return dev->tstc (dev); - } + struct stdio_dev *dev = serial_get_current_device();
- return serial_current->tstc (serial_current); + return dev->tstc (dev); }
void serial_putc (const char c) { - if (!(gd->flags & GD_FLG_RELOC) || !serial_current) { - struct stdio_dev *dev = default_serial_console (); + struct stdio_dev *dev = serial_get_current_device();
- dev->putc (dev, c); - return; - } - - serial_current->putc (serial_current, c); + dev->putc (dev, c); }
void serial_puts (const char *s) { - if (!(gd->flags & GD_FLG_RELOC) || !serial_current) { - struct stdio_dev *dev = default_serial_console (); - - dev->puts (dev, s); - return; - } + struct stdio_dev *dev = serial_get_current_device();
- serial_current->puts (serial_current, s); + dev->puts (dev, s); }