diff --git a/device/serial.c b/device/serial.c index f2a363b..fcb15af 100644 --- a/device/serial.c +++ b/device/serial.c @@ -41,6 +41,10 @@ static mr_err_t mr_serial_open(mr_device_t device) { mr_serial_t serial = (mr_serial_t)device; + /* Reset fifo */ + mr_rb_reset(&serial->rx_fifo); + mr_rb_reset(&serial->tx_fifo); + return serial->ops->configure(serial, &serial->config); } @@ -49,10 +53,6 @@ static mr_err_t mr_serial_close(mr_device_t device) mr_serial_t serial = (mr_serial_t)device; struct mr_serial_config config = {0}; - /* Reset fifo */ - mr_rb_reset(&serial->rx_fifo); - mr_rb_reset(&serial->tx_fifo); - return serial->ops->configure(serial, &config); } diff --git a/device/spi.c b/device/spi.c index a47d9ce..5f2c6bb 100644 --- a/device/spi.c +++ b/device/spi.c @@ -349,6 +349,10 @@ static mr_err_t mr_spi_device_open(mr_device_t device) { mr_spi_device_t spi_device = (mr_spi_device_t)device; + /* Reset fifo */ + mr_rb_reset(&spi_device->rx_fifo); + mr_rb_reset(&spi_device->tx_fifo); + return mr_spi_device_configure_cs(spi_device, MR_ENABLE); } @@ -356,10 +360,6 @@ static mr_err_t mr_spi_device_close(mr_device_t device) { mr_spi_device_t spi_device = (mr_spi_device_t)device; - /* Reset fifo */ - mr_rb_reset(&spi_device->rx_fifo); - mr_rb_reset(&spi_device->tx_fifo); - return mr_spi_device_configure_cs(spi_device, MR_DISABLE); }