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:
Paul Sokolovsky 2017-05-11 17:57:29 +03:00 committed by Anas Nashif
commit 0fdc9b5b12
11 changed files with 62 additions and 33 deletions

View file

@ -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,