serial/pl011: fix can't up_putc() after setup

Signed-off-by: ligd <liguiding1@xiaomi.com>
This commit is contained in:
ligd
2024-03-25 12:35:12 +08:00
committed by Xiang Xiao
parent 80079f35e4
commit 0a70235b0c
+13 -2
View File
@@ -666,6 +666,16 @@ static void pl011_send(FAR struct uart_dev_s *dev, int ch)
config->uart->dr = ch;
}
static void pl011_putc(struct uart_dev_s *dev, int ch)
{
irqstate_t flags;
flags = spin_lock_irqsave(NULL);
while (!pl011_txempty(dev));
pl011_send(dev, ch);
spin_unlock_irqrestore(NULL, flags);
}
/***************************************************************************
* Name: pl011_rxavailable
*
@@ -986,6 +996,7 @@ static int pl011_setup(FAR struct uart_dev_s *dev)
}
up_irq_restore(i_flags);
pl011_enable(sport);
return 0;
}
@@ -1060,10 +1071,10 @@ int up_putc(int ch)
{
/* Add CR */
pl011_send(dev, '\r');
pl011_putc(dev, '\r');
}
pl011_send(dev, ch);
pl011_putc(dev, ch);
return ch;
}