This function has incorrect implementation of prepending CR prior LF.
Without this patch it prepended CR prior whole string which is going to be
written and let LF without leading CR. Fix this issue by inserting CR at
correct place to make output on usbtty serial console more readable.

Signed-off-by: Pali Rohár <[email protected]>
Reviewed-by: Lukasz Majewski <[email protected]>
Acked-by: Pavel Machek <[email protected]>
---
 drivers/serial/usbtty.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/serial/usbtty.c b/drivers/serial/usbtty.c
index f1c1a260da..02f8edf200 100644
--- a/drivers/serial/usbtty.c
+++ b/drivers/serial/usbtty.c
@@ -500,8 +500,8 @@ void usbtty_puts(struct stdio_dev *dev, const char *str)
                n = next_nl_pos (str);
 
                if (str[n] == '\n') {
-                       __usbtty_puts("\r", 1);
-                       __usbtty_puts(str, n + 1);
+                       __usbtty_puts(str, n);
+                       __usbtty_puts("\r\n", 2);
                        str += (n + 1);
                        len -= (n + 1);
                } else {
-- 
2.20.1

Reply via email to