dm: serial: fix console putc
authorMasahiro Yamada <yamada.m@jp.panasonic.com>
Thu, 23 Oct 2014 13:26:06 +0000 (22:26 +0900)
committerSimon Glass <sjg@chromium.org>
Fri, 24 Oct 2014 03:43:08 +0000 (21:43 -0600)
Commit b8893327e9d2 (dm: serial: Put common code into separate functions)
consolidated getc() correctly, but introduced another bug to putc();
serial_stub_putc() passes sdev->priv to serial_putc_dev(), but
serial_putc_dev() uses cur_dev instead of the given argument.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Acked-by: Simon Glass <sjg@chromium.org>
drivers/serial/serial-uclass.c

index c9383dcd00c13e41fbaccc0d07a86ba898edfbc5..6b41e0b7b009d17d0d9d9b3208064746fb9143ff 100644 (file)
@@ -85,14 +85,14 @@ void serial_initialize(void)
 
 static void serial_putc_dev(struct udevice *dev, char ch)
 {
-       struct dm_serial_ops *ops = serial_get_ops(cur_dev);
+       struct dm_serial_ops *ops = serial_get_ops(dev);
        int err;
 
        do {
-               err = ops->putc(cur_dev, ch);
+               err = ops->putc(dev, ch);
        } while (err == -EAGAIN);
        if (ch == '\n')
-               serial_putc('\r');
+               serial_putc_dev(dev, '\r');
 }
 
 void serial_putc(char ch)