Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1393879
| Path | csiph.com!aioe.org!bofh.it!news.nic.it!robomod |
|---|---|
| From | Konstantin Shkolnyy <konstantin.shkolnyy@gmail.com> |
| Newsgroups | linux.kernel |
| Subject | [PATCH v4 3/3] USB: serial: cp210x: Cleaned up CRTSCTS flag code. |
| Date | Wed, 04 May 2016 03:00:02 +0200 |
| Message-ID | <ruTku-1Li-9@gated-at.bofh.it> (permalink) |
| X-Original-To | johan@kernel.org |
| Dkim-Signature | v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id; bh=ib6wWmvu9yoZJHSZYGY+e8nX8Lw6WI4cgle3Z4mQRz8=; b=O34Rx+eIXc5tmF2FykiGExK98gUfbRUiKQio1BHthlSxVl2HYFU3bYkhhW7iBd62kC lNbem3vW2c91zVwhPpKi96hXOum9Zml1sITAUD0BH3gL3zBgcH3+G2tMYMXw/mLdRVGC DJBuEHzyYc+P29DnIKcOa5jdjfSWWXczu8efdQ3mEXlvKiMEgWFnXmHSAvFSIdIrvQ7g 6EqARTWQi0O9ps/4y00yM3emp34KchLHdbMX7DEVKL6KBKtgi9vE2elnGyS0V052F9jg Vg2OVl356LIoDNQ3ROLmODzpOkiHMWWYmCEU14aDOIwAliGjNCwc4l2cWg84duevXx2Z Mn9Q== |
| X-Google-Dkim-Signature | v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=ib6wWmvu9yoZJHSZYGY+e8nX8Lw6WI4cgle3Z4mQRz8=; b=gILEOn9UbHl0N4VOmVffRrLbHVTjHxeSKv1fHC3pzm2qwHR9Ceja6+ksdwu8PPV1eC 6IylnZeNbAL8mk1Ahwr/NMWNzxwH1lzBSvXY+VdKGMSIj5Zu9LyAJFjL/uExp37FtdbM G5zxzTMNujpAoDUJPYuNUrmrYGEE6vukC0UwCdOe0nH5oSb+oeE9zyutfpe9q9jMoola yuhelJIifojXdkvP7k/AeXf5Q0rRFWfM5hIbjnLE5EtNM3+Thwt3BfKHZhe9RUyFYpv5 4dCYr2oe6ZWPNgQip0tZdcKzVN9y0wCyE6/Ce8CwlBf5Bk7N0dP2jmP7nE6r/0Bo8IzY tfWg== |
| X-Gm-Message-State | AOPr4FUuW1vZY1Yuhwt28kyZgTKHfg+YTQvZhrnjHRACt3vZZnaTmn7X/MfYyOuLifGptA== |
| X-Received | by 10.157.9.247 with SMTP id 52mr2917231otz.126.1462323155476; Tue, 03 May 2016 17:52:35 -0700 (PDT) |
| X-Mailer | git-send-email 1.8.4.5 |
| Sender | robomod@news.nic.it |
| List-ID | <linux-kernel.vger.kernel.org> |
| X-Mailing-List | linux-kernel@vger.kernel.org |
| Approved | robomod@news.nic.it |
| Lines | 66 |
| Organization | linux.* mail to news gateway |
| X-Original-Cc | linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, Konstantin Shkolnyy <konstantin.shkolnyy@gmail.com> |
| X-Original-Date | Tue, 3 May 2016 19:52:35 -0500 |
| X-Original-Message-ID | <1462323155-27549-1-git-send-email-konstantin.shkolnyy@gmail.com> |
| X-Original-Sender | linux-kernel-owner@vger.kernel.org |
| Xref | csiph.com linux.kernel:1393879 |
Show key headers only | View raw
The CRTSCTS flag code cleared (and inconsistently) bits unrelated to
CRTSCTS functionality. It was also harder than necessary to read.
Signed-off-by: Konstantin Shkolnyy <konstantin.shkolnyy@gmail.com>
---
v4:
Same series of patches, fixed names and defines by feedback.
v3:
Regenerated the patches correctly against the latest usb-next branch.
v2
Improved CRTSCTS fix by feedback. Dropped get_termios error handling fix.
drivers/usb/serial/cp210x.c | 32 ++++++++++----------------------
1 file changed, 10 insertions(+), 22 deletions(-)
diff --git a/drivers/usb/serial/cp210x.c b/drivers/usb/serial/cp210x.c
index 9857d0c..2d43716 100644
--- a/drivers/usb/serial/cp210x.c
+++ b/drivers/usb/serial/cp210x.c
@@ -995,34 +995,22 @@ static void cp210x_set_termios(struct tty_struct *tty,
dev_dbg(dev, "%s - read ulControlHandshake=0x%08x, ulFlowReplace=0x%08x\n",
__func__, ctl_hs, flow_repl);
+ ctl_hs &= ~CP210X_SERIAL_DSR_HANDSHAKE;
+ ctl_hs &= ~CP210X_SERIAL_DCD_HANDSHAKE;
+ ctl_hs &= ~CP210X_SERIAL_DSR_SENSITIVITY;
+ ctl_hs &= ~CP210X_SERIAL_DTR_MASK;
+ ctl_hs |= CP210X_SERIAL_DTR_SHIFT(CP210X_SERIAL_DTR_ACTIVE);
if (cflag & CRTSCTS) {
- ctl_hs &= ~(CP210X_SERIAL_DTR_MASK |
- CP210X_SERIAL_CTS_HANDSHAKE |
- CP210X_SERIAL_DSR_HANDSHAKE |
- CP210X_SERIAL_DCD_HANDSHAKE |
- CP210X_SERIAL_DSR_SENSITIVITY);
- ctl_hs |= CP210X_SERIAL_DTR_SHIFT(
- CP210X_SERIAL_DTR_ACTIVE);
ctl_hs |= CP210X_SERIAL_CTS_HANDSHAKE;
- /*
- * FIXME: Why clear bits unrelated to flow control.
- * Why clear CP210X_SERIAL_XOFF_CONTINUE which is
- * never set
- */
- flow_repl = 0;
+
+ flow_repl &= ~CP210X_SERIAL_RTS_MASK;
flow_repl |= CP210X_SERIAL_RTS_SHIFT(
CP210X_SERIAL_RTS_FLOW_CTL);
dev_dbg(dev, "%s - flow control = CRTSCTS\n", __func__);
} else {
- ctl_hs &= ~(CP210X_SERIAL_DTR_MASK |
- CP210X_SERIAL_CTS_HANDSHAKE |
- CP210X_SERIAL_DSR_HANDSHAKE |
- CP210X_SERIAL_DCD_HANDSHAKE |
- CP210X_SERIAL_DSR_SENSITIVITY);
- ctl_hs |= CP210X_SERIAL_DTR_SHIFT(
- CP210X_SERIAL_DTR_ACTIVE;
- /* FIXME: Why clear bits unrelated to flow control */
- ((u8)flow_repl) = 0;
+ ctl_hs &= ~CP210X_SERIAL_CTS_HANDSHAKE;
+
+ flow_repl &= ~CP210X_SERIAL_RTS_MASK;
flow_repl |= CP210X_SERIAL_RTS_SHIFT(
CP210X_SERIAL_RTS_ACTIVE);
dev_dbg(dev, "%s - flow control = NONE\n", __func__);
--
1.8.4.5
Back to linux.kernel | Previous | Next | Find similar | Unroll thread
[PATCH v4 3/3] USB: serial: cp210x: Cleaned up CRTSCTS flag code. Konstantin Shkolnyy <konstantin.shkolnyy@gmail.com> - 2016-05-04 03:00 +0200
csiph-web