aboutsummaryrefslogtreecommitdiffstats
path: root/usb
diff options
authorGreg Kroah-Hartman <gregkh@suse.de>2009-10-08 11:04:13 -0700
committerGreg Kroah-Hartman <gregkh@suse.de>2009-10-08 11:04:13 -0700
commitd45b8296a27902697867a18f638e846c84985cb0 (patch)
tree6137eaa4cfbf78d6de99716ccabb9fe919dbe60e /usb
parent5ac84e99a60c34d072b93427ce362057e7f6c518 (diff)
downloadpatches-d45b8296a27902697867a18f638e846c84985cb0.tar.gz
staging patches and other fixes
Diffstat (limited to 'usb')
-rw-r--r--usb/usb-serial-ftdi_sio-add-space-mark-parity.patch50
1 files changed, 50 insertions, 0 deletions
diff --git a/usb/usb-serial-ftdi_sio-add-space-mark-parity.patch b/usb/usb-serial-ftdi_sio-add-space-mark-parity.patch
new file mode 100644
index 00000000000000..f130496e572de9
--- /dev/null
+++ b/usb/usb-serial-ftdi_sio-add-space-mark-parity.patch
@@ -0,0 +1,50 @@
+From r.koebler@yahoo.de Thu Oct 8 10:04:25 2009
+From: Roland Koebler <r.koebler@yahoo.de>
+Date: Mon, 5 Oct 2009 19:58:56 +0200
+Subject: USB: serial: ftdi_sio: add space/mark parity
+To: linux-usb@vger.kernel.org
+Message-ID: <20091005175856.GA20249@localhost>
+Content-Disposition: inline
+
+
+From: Roland Koebler <r.koebler@yahoo.de>
+
+Add mark and space parity, since the device supports it.
+
+Signed-off-by: Roland Koebler <r.koebler@yahoo.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/serial/ftdi_sio.c | 18 ++++++++++++------
+ 1 file changed, 12 insertions(+), 6 deletions(-)
+
+--- a/drivers/usb/serial/ftdi_sio.c
++++ b/drivers/usb/serial/ftdi_sio.c
+@@ -2196,15 +2196,21 @@ static void ftdi_set_termios(struct tty_
+
+ /* Set number of data bits, parity, stop bits */
+
+- termios->c_cflag &= ~CMSPAR;
+-
+ urb_value = 0;
+ urb_value |= (cflag & CSTOPB ? FTDI_SIO_SET_DATA_STOP_BITS_2 :
+ FTDI_SIO_SET_DATA_STOP_BITS_1);
+- urb_value |= (cflag & PARENB ?
+- (cflag & PARODD ? FTDI_SIO_SET_DATA_PARITY_ODD :
+- FTDI_SIO_SET_DATA_PARITY_EVEN) :
+- FTDI_SIO_SET_DATA_PARITY_NONE);
++ if (cflag & PARENB) {
++ if (cflag & CMSPAR)
++ urb_value |= cflag & PARODD ?
++ FTDI_SIO_SET_DATA_PARITY_MARK :
++ FTDI_SIO_SET_DATA_PARITY_SPACE;
++ else
++ urb_value |= cflag & PARODD ?
++ FTDI_SIO_SET_DATA_PARITY_ODD :
++ FTDI_SIO_SET_DATA_PARITY_EVEN;
++ } else {
++ urb_value |= FTDI_SIO_SET_DATA_PARITY_NONE;
++ }
+ if (cflag & CSIZE) {
+ switch (cflag & CSIZE) {
+ case CS5: urb_value |= 5; dbg("Setting CS5"); break;