diff --git a/arch/arm/src/sam34/sam_serial.c b/arch/arm/src/sam34/sam_serial.c index b558ae7f94..01970b7377 100644 --- a/arch/arm/src/sam34/sam_serial.c +++ b/arch/arm/src/sam34/sam_serial.c @@ -1118,7 +1118,7 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg) /* Decode number of bits */ - switch (priv->bits) + switch (termiosp->c_cflag & CSIZE) { case CS5: nbits = 5; @@ -1147,7 +1147,7 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg) /* Decode parity */ - if (termiosp->c_cflag & PARENB) + if ((termiosp->c_cflag & PARENB) != 0) { parity = (termiosp->c_cflag & PARODD) ? 1 : 2; } @@ -1183,7 +1183,7 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg) * implement TCSADRAIN / TCSAFLUSH */ - up_setup(dev); + ret = up_setup(dev); } } break; diff --git a/libc/termios/lib_tcsetattr.c b/libc/termios/lib_tcsetattr.c index ec38ec845f..8d7b5ccb07 100644 --- a/libc/termios/lib_tcsetattr.c +++ b/libc/termios/lib_tcsetattr.c @@ -118,5 +118,6 @@ int tcsetattr(int fd, int options, FAR const struct termios *termiosp) { return ioctl(fd, TCSETS, (unsigned long)termiosp); } + return -ENOSYS; }