Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <[email protected]>
---
 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);
 }
-- 
1.6.3.1

_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to