diff --git a/drivers/rpmsg/rpmsg_port_uart.c b/drivers/rpmsg/rpmsg_port_uart.c index 50c0fb9d247..49a152c1148 100644 --- a/drivers/rpmsg/rpmsg_port_uart.c +++ b/drivers/rpmsg/rpmsg_port_uart.c @@ -375,12 +375,14 @@ static int rpmsg_port_uart_rx_thread(int argc, FAR char *argv[]) else if (buf[i] == RPMSG_PORT_UART_SUSPEND) { rpmsgdbg("Received suspend command\n"); + atomic_fetch_and(&rpuart->port.signals, ~RPMSG_SIGNAL_RUNNING); nxsem_wait(&rpuart->wake); continue; } else if (buf[i] == RPMSG_PORT_UART_RESUME) { rpmsgdbg("Received resume command\n"); + atomic_fetch_or(&rpuart->port.signals, RPMSG_SIGNAL_RUNNING); nxsem_post(&rpuart->wake); continue; }