[U-Boot] [PATCH] 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 --- common/serial.c | 64 +++++++++++++++++------------------------------------- 1 files changed, 20 insertions(+), 44 deletions(-)
diff --git a/common/serial.c b/common/serial.c index 995d268..7bfc861 100644 --- a/common/serial.c +++ b/common/serial.c @@ -158,73 +158,49 @@ void serial_reinit_all (void) } }
-int serial_init (void) +static struct serial_device *get_current(void) { - if (!(gd->flags & GD_FLG_RELOC) || !serial_current) { - struct serial_device *dev = default_serial_console (); + struct serial_device *dev;
- return dev->init (); - } + if (!(gd->flags & GD_FLG_RELOC) || !serial_current) { + dev = default_serial_console(); + + /* 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

On Friday, August 19, 2011 17:09:43 Simon Glass wrote:
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 -mike

Hi,
On Fri, Aug 19, 2011 at 2:34 PM, Mike Frysinger vapier@gentoo.org wrote:
On Friday, August 19, 2011 17:09:43 Simon Glass wrote:
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 -mike
This doesn't seem to apply any more, so I will resend v2.
Regards, Simon
U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot

Dear Simon Glass,
In message 1313788183-15245-1-git-send-email-sjg@chromium.org you wrote:
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
common/serial.c | 64 +++++++++++++++++------------------------------------- 1 files changed, 20 insertions(+), 44 deletions(-)
Applied, thanks.
Best regards,
Wolfgang Denk
participants (3)
-
Mike Frysinger
-
Simon Glass
-
Wolfgang Denk