drivers: serial: uart_nrfx_uarte2: Prevent TX in suspend mode
Do not transmit if the device is in suspend mode. Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
This commit is contained in:
parent
d27842c953
commit
5a41aa2614
1 changed files with 18 additions and 0 deletions
|
@ -385,6 +385,15 @@ static int api_tx(const struct device *dev, const uint8_t *buf, size_t len, int3
|
||||||
nrfx_err_t err;
|
nrfx_err_t err;
|
||||||
bool hwfc;
|
bool hwfc;
|
||||||
|
|
||||||
|
#if CONFIG_PM_DEVICE
|
||||||
|
enum pm_device_state state;
|
||||||
|
|
||||||
|
(void)pm_device_state_get(dev, &state);
|
||||||
|
if (state != PM_DEVICE_STATE_ACTIVE) {
|
||||||
|
return -ECANCELED;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#if CONFIG_UART_USE_RUNTIME_CONFIGURE
|
#if CONFIG_UART_USE_RUNTIME_CONFIGURE
|
||||||
hwfc = data->uart_config.flow_ctrl == UART_CFG_FLOW_CTRL_RTS_CTS;
|
hwfc = data->uart_config.flow_ctrl == UART_CFG_FLOW_CTRL_RTS_CTS;
|
||||||
#else
|
#else
|
||||||
|
@ -575,6 +584,15 @@ static void api_poll_out(const struct device *dev, unsigned char out_char)
|
||||||
const nrfx_uarte_t *nrfx_dev = get_nrfx_dev(dev);
|
const nrfx_uarte_t *nrfx_dev = get_nrfx_dev(dev);
|
||||||
nrfx_err_t err;
|
nrfx_err_t err;
|
||||||
|
|
||||||
|
#if CONFIG_PM_DEVICE
|
||||||
|
enum pm_device_state state;
|
||||||
|
|
||||||
|
(void)pm_device_state_get(dev, &state);
|
||||||
|
if (state != PM_DEVICE_STATE_ACTIVE) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
do {
|
do {
|
||||||
/* When runtime PM is used we cannot use early return because then
|
/* When runtime PM is used we cannot use early return because then
|
||||||
* we have no information when UART is actually done with the
|
* we have no information when UART is actually done with the
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue