From 87ee3f2fc701c4a834bd934f2cb5b4b961244a24 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 30 Oct 2014 12:23:15 -0600 Subject: [PATCH] SAM3/4: Fix error serial TERMIOS ioctl handling --- arch/arm/src/sam34/sam_serial.c | 6 +++--- libc/termios/lib_tcsetattr.c | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) 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; }