mirror of
https://git.codelinaro.org/clo/qsdk/oss/boot/u-boot-2016.git
synced 2026-03-07 17:57:38 +01:00
Small refactor to remove duplicate serial code
This tidies up duplicate code, and checks that default_serial_console() does in fact produce a device. Signed-off-by: Simon Glass <sjg@chromium.org> Acked-by: Mike Frysinger <vapier@gentoo.org>
This commit is contained in:
parent
025421eab4
commit
857c283e9b
1 changed files with 19 additions and 43 deletions
|
|
@ -158,73 +158,49 @@ void serial_reinit_all (void)
|
|||
}
|
||||
}
|
||||
|
||||
int serial_init (void)
|
||||
static struct serial_device *get_current(void)
|
||||
{
|
||||
struct serial_device *dev;
|
||||
|
||||
if (!(gd->flags & GD_FLG_RELOC) || !serial_current) {
|
||||
struct serial_device *dev = default_serial_console ();
|
||||
dev = default_serial_console();
|
||||
|
||||
return dev->init ();
|
||||
}
|
||||
/* We must have a console device */
|
||||
if (!dev)
|
||||
panic("Cannot find console");
|
||||
} else
|
||||
dev = serial_current;
|
||||
return dev;
|
||||
}
|
||||
|
||||
return serial_current->init ();
|
||||
int serial_init(void)
|
||||
{
|
||||
return get_current()->init();
|
||||
}
|
||||
|
||||
void serial_setbrg (void)
|
||||
{
|
||||
if (!(gd->flags & GD_FLG_RELOC) || !serial_current) {
|
||||
struct serial_device *dev = default_serial_console ();
|
||||
|
||||
dev->setbrg ();
|
||||
return;
|
||||
}
|
||||
|
||||
serial_current->setbrg ();
|
||||
get_current()->setbrg();
|
||||
}
|
||||
|
||||
int serial_getc (void)
|
||||
{
|
||||
if (!(gd->flags & GD_FLG_RELOC) || !serial_current) {
|
||||
struct serial_device *dev = default_serial_console ();
|
||||
|
||||
return dev->getc ();
|
||||
}
|
||||
|
||||
return serial_current->getc ();
|
||||
return get_current()->getc();
|
||||
}
|
||||
|
||||
int serial_tstc (void)
|
||||
{
|
||||
if (!(gd->flags & GD_FLG_RELOC) || !serial_current) {
|
||||
struct serial_device *dev = default_serial_console ();
|
||||
|
||||
return dev->tstc ();
|
||||
}
|
||||
|
||||
return serial_current->tstc ();
|
||||
return get_current()->tstc();
|
||||
}
|
||||
|
||||
void serial_putc (const char c)
|
||||
{
|
||||
if (!(gd->flags & GD_FLG_RELOC) || !serial_current) {
|
||||
struct serial_device *dev = default_serial_console ();
|
||||
|
||||
dev->putc (c);
|
||||
return;
|
||||
}
|
||||
|
||||
serial_current->putc (c);
|
||||
get_current()->putc(c);
|
||||
}
|
||||
|
||||
void serial_puts (const char *s)
|
||||
{
|
||||
if (!(gd->flags & GD_FLG_RELOC) || !serial_current) {
|
||||
struct serial_device *dev = default_serial_console ();
|
||||
|
||||
dev->puts (s);
|
||||
return;
|
||||
}
|
||||
|
||||
serial_current->puts (s);
|
||||
get_current()->puts(s);
|
||||
}
|
||||
|
||||
#if CONFIG_POST & CONFIG_SYS_POST_UART
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue