[rtems commit] bsps: Fix baud settings
Sebastian Huber
sebh at rtems.org
Mon Apr 3 12:08:41 UTC 2017
Module: rtems
Branch: master
Commit: 1301468b5a6e1080ba94ab4ca763c7e8e5c223e4
Changeset: http://git.rtems.org/rtems/commit/?id=1301468b5a6e1080ba94ab4ca763c7e8e5c223e4
Author: Sebastian Huber <sebastian.huber at embedded-brains.de>
Date: Mon Apr 3 12:51:51 2017 +0200
bsps: Fix baud settings
Update #2897.
---
c/src/lib/libbsp/arm/atsam/console/console.c | 4 ++--
c/src/lib/libbsp/powerpc/mpc55xxevb/console/console-esci.c | 2 +-
c/src/lib/libbsp/powerpc/mpc55xxevb/console/console-linflex.c | 2 +-
c/src/lib/libbsp/sparc/shared/uart/apbuart_termios.c | 2 +-
c/src/libchip/serial/ns16550-context.c | 2 +-
c/src/libchip/serial/ns16550.c | 2 +-
cpukit/dev/serial/sc16is752.c | 2 +-
cpukit/libcsupport/include/rtems/termiostypes.h | 6 ++----
8 files changed, 10 insertions(+), 12 deletions(-)
diff --git a/c/src/lib/libbsp/arm/atsam/console/console.c b/c/src/lib/libbsp/arm/atsam/console/console.c
index 84cfea8..d51d2ac 100644
--- a/c/src/lib/libbsp/arm/atsam/console/console.c
+++ b/c/src/lib/libbsp/arm/atsam/console/console.c
@@ -88,7 +88,7 @@ static bool atsam_usart_set_attributes(
rtems_termios_baud_t baud;
uint32_t mr;
- baud = rtems_termios_baud_to_number(term->c_cflag);
+ baud = rtems_termios_baud_to_number(term->c_ospeed);
regs->US_BRGR = (BOARD_MCK / baud) / 16;
if ((term->c_cflag & CREAD) != 0) {
@@ -327,7 +327,7 @@ static bool atsam_uart_set_attributes(
rtems_termios_baud_t baud;
uint32_t mr;
- baud = rtems_termios_baud_to_number(term->c_cflag);
+ baud = rtems_termios_baud_to_number(term->c_ospeed);
regs->UART_BRGR = (BOARD_MCK / baud) / 16;
if ((term->c_cflag & CREAD) != 0) {
diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/console/console-esci.c b/c/src/lib/libbsp/powerpc/mpc55xxevb/console/console-esci.c
index 8ad7edb..9e6646f 100644
--- a/c/src/lib/libbsp/powerpc/mpc55xxevb/console/console-esci.c
+++ b/c/src/lib/libbsp/powerpc/mpc55xxevb/console/console-esci.c
@@ -190,7 +190,7 @@ static int mpc55xx_esci_set_attributes(int minor, const struct termios *t)
volatile struct ESCI_tag *regs = self->regs;
union ESCI_CR1_tag cr1 = { .R = regs->CR1.R };
union ESCI_CR2_tag cr2 = MPC55XX_ZERO_FLAGS;
- rtems_termios_baud_t br = rtems_termios_baud_to_number(t->c_cflag);
+ rtems_termios_baud_t br = rtems_termios_baud_to_number(t->c_ospeed);
/* Enable module */
cr2.B.MDIS = 0;
diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/console/console-linflex.c b/c/src/lib/libbsp/powerpc/mpc55xxevb/console/console-linflex.c
index 9aed2a6..02978be 100644
--- a/c/src/lib/libbsp/powerpc/mpc55xxevb/console/console-linflex.c
+++ b/c/src/lib/libbsp/powerpc/mpc55xxevb/console/console-linflex.c
@@ -174,7 +174,7 @@ static int mpc55xx_linflex_set_attributes(int minor, const struct termios *t)
LINFLEX_UARTCR_32B_tag uartcr = { .R = 0 };
LINFLEX_GCR_32B_tag gcr = { .R = 0 };
LINFLEX_LINIER_32B_tag ier = { .R = 0 };
- rtems_termios_baud_t br = rtems_termios_baud_to_number(t->c_cflag);
+ rtems_termios_baud_t br = rtems_termios_baud_to_number(t->c_ospeed);
LINFLEX_LINFBRR_32B_tag fbrr = { .R = 0 };
LINFLEX_LINIBRR_32B_tag ibrr = { .R = 0 };
diff --git a/c/src/lib/libbsp/sparc/shared/uart/apbuart_termios.c b/c/src/lib/libbsp/sparc/shared/uart/apbuart_termios.c
index 21f2e83..28ece27 100644
--- a/c/src/lib/libbsp/sparc/shared/uart/apbuart_termios.c
+++ b/c/src/lib/libbsp/sparc/shared/uart/apbuart_termios.c
@@ -148,7 +148,7 @@ static bool apbuart_set_attributes(
rtems_termios_device_lock_release(base, &lock_context);
/* Baud rate */
- baud = rtems_termios_baud_to_number(t->c_cflag);
+ baud = rtems_termios_baud_to_number(t->c_ospeed);
if (baud > 0) {
/* Calculate Baud rate generator "scaler" number */
scaler = (((uart->freq_hz * 10) / (baud * 8)) - 5) / 10;
diff --git a/c/src/libchip/serial/ns16550-context.c b/c/src/libchip/serial/ns16550-context.c
index 087627a..4f0328d 100644
--- a/c/src/libchip/serial/ns16550-context.c
+++ b/c/src/libchip/serial/ns16550-context.c
@@ -596,7 +596,7 @@ static bool ns16550_set_attributes(
* Assert ensures there is no division by 0.
*/
- baud_requested = rtems_termios_baud_to_number(t->c_cflag);
+ baud_requested = rtems_termios_baud_to_number(t->c_ospeed);
_Assert( baud_requested != 0 );
ulBaudDivisor = NS16550_GetBaudDivisor(ctx, baud_requested);
diff --git a/c/src/libchip/serial/ns16550.c b/c/src/libchip/serial/ns16550.c
index 6473028..c8d66de 100644
--- a/c/src/libchip/serial/ns16550.c
+++ b/c/src/libchip/serial/ns16550.c
@@ -535,7 +535,7 @@ int ns16550_set_attributes(
* Assert ensures there is no division by 0.
*/
- baud_requested = rtems_termios_baud_to_number(t->c_cflag);
+ baud_requested = rtems_termios_baud_to_number(t->c_ospeed);
_Assert( baud_requested != 0 );
ulBaudDivisor = NS16550_GetBaudDivisor(c, baud_requested);
diff --git a/cpukit/dev/serial/sc16is752.c b/cpukit/dev/serial/sc16is752.c
index 96fac30..74c3ad3 100644
--- a/cpukit/dev/serial/sc16is752.c
+++ b/cpukit/dev/serial/sc16is752.c
@@ -148,7 +148,7 @@ static bool sc16is752_set_attributes(
ctx->lcr = 0;
- baud = rtems_termios_baud_to_number(term->c_cflag);
+ baud = rtems_termios_baud_to_number(term->c_ospeed);
baud_successful = set_baud(ctx, baud);
if (!baud_successful){
return false;
diff --git a/cpukit/libcsupport/include/rtems/termiostypes.h b/cpukit/libcsupport/include/rtems/termiostypes.h
index f68de0c..1140c61 100644
--- a/cpukit/libcsupport/include/rtems/termiostypes.h
+++ b/cpukit/libcsupport/include/rtems/termiostypes.h
@@ -530,14 +530,12 @@ extern const rtems_assoc_t rtems_termios_baud_table [];
speed_t rtems_termios_number_to_baud(rtems_termios_baud_t baud);
/**
- * @brief Convert Baud Part of Termios control flags to an integral Baud Value
- *
- * There is no need to mask the @a c_cflag with @c CBAUD.
+ * @brief Converts the baud flags to an integral baud value.
*
* @retval 0 Invalid baud value or a baud value of @c B0.
* @retval other Integral baud value.
*/
-rtems_termios_baud_t rtems_termios_baud_to_number(speed_t c_cflag);
+rtems_termios_baud_t rtems_termios_baud_to_number(speed_t baud);
/**
* @brief Convert Bxxx Constant to Index
More information about the vc
mailing list