aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/serial
diff options
context:
space:
mode:
authorSonic Zhang <sonic.zhang@analog.com>2009-06-11 08:50:20 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2009-06-11 11:51:04 -0400
commit84507794a9d5d4decd6bc9c111480076dba0d301 (patch)
treebb27aec4bfe27c691ae2bf7740e2ed93ac41bdc6 /drivers/serial
parent0efa4f2c944fabffc81918cc86d4d17dba39a021 (diff)
Blackfin Serial Driver: handle anomaly 05000231
05000231 - UART STB Bit Incorrectly Affects Receiver Setting For processors affected by this, we cannot safely allow CSTOPB to be set as the UART will then be unable to properly clock in bytes. Signed-off-by: Sonic Zhang <sonic.zhang@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Alan Cox <alan@linux.intel.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/serial')
-rw-r--r--drivers/serial/bfin_5xx.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/serial/bfin_5xx.c b/drivers/serial/bfin_5xx.c
index ab583ef3a305..64603f5bb703 100644
--- a/drivers/serial/bfin_5xx.c
+++ b/drivers/serial/bfin_5xx.c
@@ -828,8 +828,16 @@ bfin_serial_set_termios(struct uart_port *port, struct ktermios *termios,
828 __func__); 828 __func__);
829 } 829 }
830 830
831 if (termios->c_cflag & CSTOPB) 831 /* Anomaly notes:
832 lcr |= STB; 832 * 05000231 - STOP bit is always set to 1 whatever the user is set.
833 */
834 if (termios->c_cflag & CSTOPB) {
835 if (ANOMALY_05000231)
836 printk(KERN_WARNING "STOP bits other than 1 is not "
837 "supported in case of anomaly 05000231.\n");
838 else
839 lcr |= STB;
840 }
833 if (termios->c_cflag & PARENB) 841 if (termios->c_cflag & PARENB)
834 lcr |= PEN; 842 lcr |= PEN;
835 if (!(termios->c_cflag & PARODD)) 843 if (!(termios->c_cflag & PARODD))