drivers: serial: Clarify usage of TX/RX IRQ predicates.
uart_irq_tx_empty() function proved to be problematic: its semantics was not documented properly, and many hardware uses terminology like "TX register empty" to signify condition of TX register being ready to accept another character (what in Zephyr is tested with uart_irq_tx_ready()). To avoid confusion, uart_irq_tx_empty() was renamed to uart_irq_tx_complete(), propagating to drivers/serial device methods. The semantics and usage model of all of uart_irq_rx_ready(), uart_irq_tx_ready(), uart_irq_tx_complete() is now described in detail. Signed-off-by: Paul Sokolovsky <paul.sokolovsky@linaro.org>
This commit is contained in:
parent
a891415d97
commit
0fdc9b5b12
11 changed files with 62 additions and 33 deletions
|
@ -127,7 +127,7 @@ static void mcux_lpuart_irq_tx_disable(struct device *dev)
|
|||
LPUART_DisableInterrupts(config->base, mask);
|
||||
}
|
||||
|
||||
static int mcux_lpuart_irq_tx_empty(struct device *dev)
|
||||
static int mcux_lpuart_irq_tx_complete(struct device *dev)
|
||||
{
|
||||
const struct mcux_lpuart_config *config = dev->config->config_info;
|
||||
u32_t flags = LPUART_GetStatusFlags(config->base);
|
||||
|
@ -141,7 +141,7 @@ static int mcux_lpuart_irq_tx_ready(struct device *dev)
|
|||
u32_t mask = kLPUART_TxDataRegEmptyInterruptEnable;
|
||||
|
||||
return (LPUART_GetEnabledInterrupts(config->base) & mask)
|
||||
&& mcux_lpuart_irq_tx_empty(dev);
|
||||
&& mcux_lpuart_irq_tx_complete(dev);
|
||||
}
|
||||
|
||||
static void mcux_lpuart_irq_rx_enable(struct device *dev)
|
||||
|
@ -258,7 +258,7 @@ static const struct uart_driver_api mcux_lpuart_driver_api = {
|
|||
.fifo_read = mcux_lpuart_fifo_read,
|
||||
.irq_tx_enable = mcux_lpuart_irq_tx_enable,
|
||||
.irq_tx_disable = mcux_lpuart_irq_tx_disable,
|
||||
.irq_tx_empty = mcux_lpuart_irq_tx_empty,
|
||||
.irq_tx_complete = mcux_lpuart_irq_tx_complete,
|
||||
.irq_tx_ready = mcux_lpuart_irq_tx_ready,
|
||||
.irq_rx_enable = mcux_lpuart_irq_rx_enable,
|
||||
.irq_rx_disable = mcux_lpuart_irq_rx_disable,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue