summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--components/drivers/include/drivers/serial_v2.h2
-rw-r--r--components/drivers/serial/serial_v2.c11
2 files changed, 7 insertions, 6 deletions
diff --git a/components/drivers/include/drivers/serial_v2.h b/components/drivers/include/drivers/serial_v2.h
index 4b3e2cba06..76c44333bd 100644
--- a/components/drivers/include/drivers/serial_v2.h
+++ b/components/drivers/include/drivers/serial_v2.h
@@ -178,7 +178,7 @@ struct rt_uart_ops
int (*putc)(struct rt_serial_device *serial, char c);
int (*getc)(struct rt_serial_device *serial);
- rt_size_t (*transmit)(struct rt_serial_device *serial,
+ rt_ssize_t (*transmit)(struct rt_serial_device *serial,
rt_uint8_t *buf,
rt_size_t size,
rt_uint32_t tx_flag);
diff --git a/components/drivers/serial/serial_v2.c b/components/drivers/serial/serial_v2.c
index df16557cee..e7a9ffe14c 100644
--- a/components/drivers/serial/serial_v2.c
+++ b/components/drivers/serial/serial_v2.c
@@ -455,6 +455,7 @@ static rt_ssize_t _serial_fifo_tx_blocking_nbuf(struct rt_device *dev,
{
struct rt_serial_device *serial;
struct rt_serial_tx_fifo *tx_fifo = RT_NULL;
+ rt_ssize_t rst;
RT_ASSERT(dev != RT_NULL);
if (size == 0) return 0;
@@ -476,14 +477,14 @@ static rt_ssize_t _serial_fifo_tx_blocking_nbuf(struct rt_device *dev,
tx_fifo->activated = RT_TRUE;
/* Call the transmit interface for transmission */
- serial->ops->transmit(serial,
- (rt_uint8_t *)buffer,
- size,
- RT_SERIAL_TX_BLOCKING);
+ rst = serial->ops->transmit(serial,
+ (rt_uint8_t *)buffer,
+ size,
+ RT_SERIAL_TX_BLOCKING);
/* Waiting for the transmission to complete */
rt_completion_wait(&(tx_fifo->tx_cpt), RT_WAITING_FOREVER);
- return size;
+ return rst;
}
/**