summaryrefslogtreecommitdiff
path: root/drivers/serial/serial_arc.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/serial/serial_arc.c')
-rw-r--r--drivers/serial/serial_arc.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/serial/serial_arc.c b/drivers/serial/serial_arc.c
index b2d95bdbe18..c2fc8a901e2 100644
--- a/drivers/serial/serial_arc.c
+++ b/drivers/serial/serial_arc.c
@@ -53,8 +53,8 @@ static int arc_serial_putc(struct udevice *dev, const char c)
struct arc_serial_plat *plat = dev_get_plat(dev);
struct arc_serial_regs *const regs = plat->reg;
- while (!(readb(&regs->status) & UART_TXEMPTY))
- ;
+ if (!(readb(&regs->status) & UART_TXEMPTY))
+ return -EAGAIN;
writeb(c, &regs->data);
@@ -83,8 +83,8 @@ static int arc_serial_getc(struct udevice *dev)
struct arc_serial_plat *plat = dev_get_plat(dev);
struct arc_serial_regs *const regs = plat->reg;
- while (!arc_serial_tstc(regs))
- ;
+ if (!arc_serial_tstc(regs))
+ return -EAGAIN;
/* Check for overflow errors */
if (readb(&regs->status) & UART_OVERFLOW_ERR)