]> git.dujemihanovic.xyz Git - u-boot.git/commit
serial: introduce CONFIG_CONSOLE_FLUSH_ON_NEWLINE
authorRasmus Villemoes <rasmus.villemoes@prevas.dk>
Mon, 16 Oct 2023 08:35:22 +0000 (10:35 +0200)
committerTom Rini <trini@konsulko.com>
Tue, 24 Oct 2023 21:05:24 +0000 (17:05 -0400)
commit35dc728a3cd14338b5fa0b6f231aa555077c98a1
tree59ad3b6c3df52508641f485591d5af5029b02d9a
parent1000e2f96b582a69366f61a71d747c8ee9eb1cab
serial: introduce CONFIG_CONSOLE_FLUSH_ON_NEWLINE

When debugging, one sometimes only gets partial output lines or
nothing at all from the last printf, because the uart has a largish
buffer, and the code after the printf() may cause the CPU to hang
before the uart IP has time to actually emit all the characters. That
can be very confusing, because one doesn't then know exactly where the
hang happens.

Introduce a config knob allowing one to wait for the uart fifo to
drain whenever a newline character is printed, roughly corresponding
to the effect of setvbuf(..., _IOLBF, ...) in ordinary C programs.

Since this uses IS_ENABLED() instead of cpp ifdef, we can remove the
ifdef around the _serial_flush() definition - if neither
CONSOLE_FLUSH_SUPPORT or CONSOLE_FLUSH_ON_NEWLINE are enabled, the
compiler elides _serial_flush(), but it won't warn about it being
unused.

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Reviewed-by: Simon Glass <sjg@chromium.org>
common/Kconfig
drivers/serial/serial-uclass.c