[Concept,02/21] serial: Retry output if it fails

Message ID 20251214175449.3799539-3-sjg@u-boot.org
State New
Headers
Series test: Add support for passing arguments to C unit tests |

Commit Message

Simon Glass Dec. 14, 2025, 5:54 p.m. UTC
  From: Simon Glass <simon.glass@canonical.com>

If something goes wrong when writing to the serial device, take notice
of the error code and try again, if needed.

Signed-off-by: Simon Glass <simon.glass@canonical.com>
---

 drivers/serial/serial-uclass.c | 2 ++
 1 file changed, 2 insertions(+)
  

Patch

diff --git a/drivers/serial/serial-uclass.c b/drivers/serial/serial-uclass.c
index 8644d210770..8d330d687a3 100644
--- a/drivers/serial/serial-uclass.c
+++ b/drivers/serial/serial-uclass.c
@@ -271,6 +271,8 @@  static int __serial_puts(struct udevice *dev, const char *str, size_t len)
 	do {
 		ssize_t written = ops->puts(dev, str, len);
 
+		if (written == -EAGAIN)
+			continue;
 		if (written < 0)
 			return written;
 		str += written;