drivers: serial: Don't condition uart_irq_rx_ready on irq enabled
The function uart_irq_rx_ready() should return true if there is data in the receive buffer, regardless of whether the irq is enabled. Fix the mcux and rv32m1 shim drivers to implement this behavior correctly. Prior to this change: - irq_rx_full() checks if RX data is available - irq_rx_ready() checks if RX data is available and interrupts are enabled After this change: - irq_rx_full() checks if RX data is available - irq_rx_ready() renamed to irq_rx_pending() to avoid confusion with the API ready() function - API ready() implementation switched to use irq_rx_full() Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
This commit is contained in:
parent
67f43119be
commit
53b08ecbfd
6 changed files with 18 additions and 18 deletions
|
@ -174,7 +174,7 @@ static int mcux_lpuart_irq_rx_full(const struct device *dev)
|
|||
return (flags & kLPUART_RxDataRegFullFlag) != 0U;
|
||||
}
|
||||
|
||||
static int mcux_lpuart_irq_rx_ready(const struct device *dev)
|
||||
static int mcux_lpuart_irq_rx_pending(const struct device *dev)
|
||||
{
|
||||
const struct mcux_lpuart_config *config = dev->config;
|
||||
uint32_t mask = kLPUART_RxDataRegFullInterruptEnable;
|
||||
|
@ -206,7 +206,7 @@ static void mcux_lpuart_irq_err_disable(const struct device *dev)
|
|||
static int mcux_lpuart_irq_is_pending(const struct device *dev)
|
||||
{
|
||||
return (mcux_lpuart_irq_tx_ready(dev)
|
||||
|| mcux_lpuart_irq_rx_ready(dev));
|
||||
|| mcux_lpuart_irq_rx_pending(dev));
|
||||
}
|
||||
|
||||
static int mcux_lpuart_irq_update(const struct device *dev)
|
||||
|
@ -388,7 +388,7 @@ static const struct uart_driver_api mcux_lpuart_driver_api = {
|
|||
.irq_tx_ready = mcux_lpuart_irq_tx_ready,
|
||||
.irq_rx_enable = mcux_lpuart_irq_rx_enable,
|
||||
.irq_rx_disable = mcux_lpuart_irq_rx_disable,
|
||||
.irq_rx_ready = mcux_lpuart_irq_rx_ready,
|
||||
.irq_rx_ready = mcux_lpuart_irq_rx_full,
|
||||
.irq_err_enable = mcux_lpuart_irq_err_enable,
|
||||
.irq_err_disable = mcux_lpuart_irq_err_disable,
|
||||
.irq_is_pending = mcux_lpuart_irq_is_pending,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue