mirror of
https://github.com/apache/nuttx.git
synced 2026-06-02 17:48:54 +08:00
serial/pl011: fix can't up_putc() after setup
Signed-off-by: ligd <liguiding1@xiaomi.com>
This commit is contained in:
@@ -666,6 +666,16 @@ static void pl011_send(FAR struct uart_dev_s *dev, int ch)
|
|||||||
config->uart->dr = 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
|
* Name: pl011_rxavailable
|
||||||
*
|
*
|
||||||
@@ -986,6 +996,7 @@ static int pl011_setup(FAR struct uart_dev_s *dev)
|
|||||||
}
|
}
|
||||||
|
|
||||||
up_irq_restore(i_flags);
|
up_irq_restore(i_flags);
|
||||||
|
pl011_enable(sport);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -1060,10 +1071,10 @@ int up_putc(int ch)
|
|||||||
{
|
{
|
||||||
/* Add CR */
|
/* Add CR */
|
||||||
|
|
||||||
pl011_send(dev, '\r');
|
pl011_putc(dev, '\r');
|
||||||
}
|
}
|
||||||
|
|
||||||
pl011_send(dev, ch);
|
pl011_putc(dev, ch);
|
||||||
|
|
||||||
return ch;
|
return ch;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user