Skip to content

Commit 398672a

Browse files
committed
drv/uart: drop return on pbdrv_uart_set_baud_rate()
This is not an async function and we currently don't have a way to handle any other errors. So removing the return value will reduce code size. Also, the STM32F0 had a weird check for busy that other drivers didn't have, so that is removed.
1 parent 416a29e commit 398672a

File tree

6 files changed

+10
-22
lines changed

6 files changed

+10
-22
lines changed

lib/pbio/drv/uart/uart_stm32f0.c

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -166,16 +166,10 @@ void pbdrv_uart_write_cancel(pbdrv_uart_dev_t *uart_dev) {
166166
uart->tx_result = PBIO_ERROR_CANCELED;
167167
}
168168

169-
pbio_error_t pbdrv_uart_set_baud_rate(pbdrv_uart_dev_t *uart_dev, uint32_t baud) {
169+
void pbdrv_uart_set_baud_rate(pbdrv_uart_dev_t *uart_dev, uint32_t baud) {
170170
pbdrv_uart_t *uart = PBIO_CONTAINER_OF(uart_dev, pbdrv_uart_t, uart_dev);
171171

172-
if (uart->tx_buf || uart->rx_buf) {
173-
return PBIO_ERROR_AGAIN;
174-
}
175-
176172
uart->USART->BRR = PBDRV_CONFIG_SYS_CLOCK_RATE / baud;
177-
178-
return PBIO_SUCCESS;
179173
}
180174

181175
void pbdrv_uart_flush(pbdrv_uart_dev_t *uart_dev) {

lib/pbio/drv/uart/uart_stm32f4_ll_irq.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ void pbdrv_uart_write_cancel(pbdrv_uart_dev_t *uart_dev) {
151151
// TODO
152152
}
153153

154-
pbio_error_t pbdrv_uart_set_baud_rate(pbdrv_uart_dev_t *uart_dev, uint32_t baud) {
154+
void pbdrv_uart_set_baud_rate(pbdrv_uart_dev_t *uart_dev, uint32_t baud) {
155155
pbdrv_uart_t *uart = PBIO_CONTAINER_OF(uart_dev, pbdrv_uart_t, uart_dev);
156156
USART_TypeDef *USARTx = uart->pdata->uart;
157157
uint32_t periphclk = LL_RCC_PERIPH_FREQUENCY_NO;
@@ -175,8 +175,6 @@ pbio_error_t pbdrv_uart_set_baud_rate(pbdrv_uart_dev_t *uart_dev, uint32_t baud)
175175
}
176176

177177
LL_USART_SetBaudRate(USARTx, periphclk, LL_USART_OVERSAMPLING_16, baud);
178-
179-
return PBIO_SUCCESS;
180178
}
181179

182180
void pbdrv_uart_flush(pbdrv_uart_dev_t *uart_dev) {

lib/pbio/drv/uart/uart_stm32l4_ll_dma.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,7 @@ void pbdrv_uart_write_cancel(pbdrv_uart_dev_t *uart_dev) {
284284
// TODO
285285
}
286286

287-
pbio_error_t pbdrv_uart_set_baud_rate(pbdrv_uart_dev_t *uart_dev, uint32_t baud) {
287+
void pbdrv_uart_set_baud_rate(pbdrv_uart_dev_t *uart_dev, uint32_t baud) {
288288
pbdrv_uart_t *uart = PBIO_CONTAINER_OF(uart_dev, pbdrv_uart_t, uart_dev);
289289
USART_TypeDef *USARTx = uart->pdata->uart;
290290
uint32_t periphclk = LL_RCC_PERIPH_FREQUENCY_NO;
@@ -314,13 +314,11 @@ pbio_error_t pbdrv_uart_set_baud_rate(pbdrv_uart_dev_t *uart_dev, uint32_t baud)
314314
}
315315
#endif /* UART5 */
316316
else {
317-
return PBIO_ERROR_FAILED;
317+
return;
318318
}
319319

320320
LL_USART_SetBaudRate(USARTx, periphclk, LL_USART_OVERSAMPLING_16, baud);
321321
}
322-
323-
return PBIO_SUCCESS;
324322
}
325323

326324
void pbdrv_uart_flush(pbdrv_uart_dev_t *uart_dev) {

lib/pbio/include/pbdrv/uart.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ pbio_error_t pbdrv_uart_get(uint8_t id, pbdrv_uart_dev_t **uart_dev);
2929
* @param [in] baud The baud rate
3030
* @return ::PBIO_SUCCESS if the baud rate was set or
3131
*/
32-
pbio_error_t pbdrv_uart_set_baud_rate(pbdrv_uart_dev_t *uart, uint32_t baud);
32+
void pbdrv_uart_set_baud_rate(pbdrv_uart_dev_t *uart, uint32_t baud);
3333
pbio_error_t pbdrv_uart_read_begin(pbdrv_uart_dev_t *uart, uint8_t *msg, uint8_t length, uint32_t timeout);
3434
pbio_error_t pbdrv_uart_read_end(pbdrv_uart_dev_t *uart);
3535
void pbdrv_uart_read_cancel(pbdrv_uart_dev_t *uart);
@@ -44,8 +44,7 @@ static inline pbio_error_t pbdrv_uart_get(uint8_t id, pbdrv_uart_dev_t **uart_de
4444
*uart_dev = NULL;
4545
return PBIO_ERROR_NOT_SUPPORTED;
4646
}
47-
static inline pbio_error_t pbdrv_uart_set_baud_rate(pbdrv_uart_dev_t *uart, uint32_t baud) {
48-
return PBIO_ERROR_NOT_SUPPORTED;
47+
static inline void pbdrv_uart_set_baud_rate(pbdrv_uart_dev_t *uart, uint32_t baud) {
4948
}
5049
static inline pbio_error_t pbdrv_uart_read_begin(pbdrv_uart_dev_t *uart, uint8_t *msg, uint8_t length, uint32_t timeout) {
5150
return PBIO_ERROR_NOT_SUPPORTED;

lib/pbio/src/uartdev.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -759,7 +759,7 @@ static PT_THREAD(pbio_uartdev_update(uartdev_port_data_t * data)) {
759759
pbdrv_uart_flush(data->uart);
760760

761761
// Send SPEED command at 115200 baud
762-
PBIO_PT_WAIT_READY(&data->pt, pbdrv_uart_set_baud_rate(data->uart, EV3_UART_SPEED_LPF2));
762+
pbdrv_uart_set_baud_rate(data->uart, EV3_UART_SPEED_LPF2);
763763
debug_pr("set baud: %d\n", EV3_UART_SPEED_LPF2);
764764
PT_SPAWN(&data->pt, &data->speed_pt, pbio_uartdev_send_speed_msg(data, EV3_UART_SPEED_LPF2));
765765

@@ -773,7 +773,7 @@ static PT_THREAD(pbio_uartdev_update(uartdev_port_data_t * data)) {
773773
PBIO_PT_WAIT_READY(&data->pt, err = pbdrv_uart_read_end(data->uart));
774774
if ((err == PBIO_SUCCESS && data->rx_msg[0] != LUMP_SYS_ACK) || err == PBIO_ERROR_TIMEDOUT) {
775775
// if we did not get ACK within 100ms, then switch to slow baud rate for sync
776-
PBIO_PT_WAIT_READY(&data->pt, pbdrv_uart_set_baud_rate(data->uart, EV3_UART_SPEED_MIN));
776+
pbdrv_uart_set_baud_rate(data->uart, EV3_UART_SPEED_MIN);
777777
debug_pr("set baud: %d\n", EV3_UART_SPEED_MIN);
778778
} else if (err != PBIO_SUCCESS) {
779779
DBG_ERR(data->last_err = "UART Rx error during baud");
@@ -902,7 +902,7 @@ static PT_THREAD(pbio_uartdev_update(uartdev_port_data_t * data)) {
902902
PT_WAIT_UNTIL(&data->pt, etimer_expired(&data->timer));
903903

904904
// change the baud rate
905-
PBIO_PT_WAIT_READY(&data->pt, pbdrv_uart_set_baud_rate(data->uart, data->new_baud_rate));
905+
pbdrv_uart_set_baud_rate(data->uart, data->new_baud_rate);
906906
debug_pr("set baud: %" PRIu32 "\n", data->new_baud_rate);
907907

908908
data->status = PBIO_UARTDEV_STATUS_DATA;

lib/pbio/test/src/test_uartdev.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -993,9 +993,8 @@ pbio_error_t pbdrv_uart_get(uint8_t id, pbdrv_uart_dev_t **uart_dev) {
993993
return PBIO_SUCCESS;
994994
}
995995

996-
pbio_error_t pbdrv_uart_set_baud_rate(pbdrv_uart_dev_t *uart, uint32_t baud) {
996+
void pbdrv_uart_set_baud_rate(pbdrv_uart_dev_t *uart, uint32_t baud) {
997997
test_uart_dev.baud = baud;
998-
return PBIO_SUCCESS;
999998
}
1000999

10011000
void pbdrv_uart_flush(pbdrv_uart_dev_t *uart_dev) {

0 commit comments

Comments
 (0)