Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1391567
| Path | csiph.com!aioe.org!bofh.it!news.nic.it!robomod |
|---|---|
| From | Konstantin Shkolnyy <konstantin.shkolnyy@gmail.com> |
| Newsgroups | linux.kernel |
| Subject | [PATCH v2 3/3] USB: serial: cp210x: Cleaned up CRTSCTS flag code. |
| Date | Sat, 30 Apr 2016 04:30:02 +0200 |
| Message-ID | <rtsPo-eM-13@gated-at.bofh.it> (permalink) |
| Dkim-Signature | v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id; bh=UvYX1jXRYD9hyrSJGIALqDBrEC2Eh7cyO22GSbaPmXY=; b=mfSU7wm8avrtJzcFNW8IWOGYCtDJ8tu+a4i+9SUc81aPBgM8FeN4RLEJ/Q7ZY/cBA3 jVRnGM1nZemj8NAkxfVL5oxnFQh4/vp5i6ODKeXeZPMrgMflRxv2k6z5kjLUay8AG31g a3OeX402IboRhcfCjuDPD4rfWzTpVcvpkR4ZtmMbVwg21MmqcAKwaIffpN/JLCFqQgYu aro6mXHBdXAHYFnU2xxO/6SE+65whs/Oz/A1AsbxakcRVQ8fY9shD5CvwNoBL9RF0yeI B2gL7WTFMYZCZe/kJZ594FCuGfwOp5d9lIdQ9yrAMAXmBONKhj8HZBXopHvcOmD5NbtS UFqw== |
| 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=UvYX1jXRYD9hyrSJGIALqDBrEC2Eh7cyO22GSbaPmXY=; b=XSCvbJnUgRgysnt4p2zahipKytdop5mScfU2C5pYY8mjrt47RmQh62yOxbA8xgH1mi LHaZ/aSgXgJZEpGIHVu5CONEpZ9Q19JJc+UWGzPVYXdoe0rM+eudSRFcFJBd303e8DPV J1rFntXypyELinvCWeTii/r3YWVgOe4tanMOPEc2+iATV4BeItqkKsKMxCeJdMgXuBjc THFcSQvaUnUHgYzi/1xTfpQyBVjOg/f0h6WBk8E8VLDOJgfXtWh+igkVH9Ra9ssSkeeC nDODbzHLzkvE+P5VjPoZotVJC4V7jSxGmoB0p1y92v1x1PmMt7oKT5EsBvQKBhH579xZ 9LBw== |
| X-Gm-Message-State | AOPr4FUWPf/9wySxA5eTmIEaYf/3XKbnk4C/X7ulrvde/hbxVAiiZiShRDZVpc/N7uV3Sw== |
| X-Received | by 10.202.212.196 with SMTP id l187mr10794709oig.191.1461982957819; Fri, 29 Apr 2016 19:22:37 -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 | 52 |
| 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 | Fri, 29 Apr 2016 21:22:35 -0500 |
| X-Original-Message-ID | <1461982955-19699-1-git-send-email-konstantin.shkolnyy@gmail.com> |
| X-Original-Sender | linux-kernel-owner@vger.kernel.org |
| Xref | csiph.com linux.kernel:1391567 |
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>
---
Changes in v2:
Improved CRTSCTS fix based on feedback. Dropped get_termios error handling.
drivers/usb/serial/cp210x.c | 23 ++++++++++-------------
1 file changed, 10 insertions(+), 13 deletions(-)
diff --git a/drivers/usb/serial/cp210x.c b/drivers/usb/serial/cp210x.c
index da0567c..d3e1dd2 100644
--- a/drivers/usb/serial/cp210x.c
+++ b/drivers/usb/serial/cp210x.c
@@ -988,24 +988,21 @@ static void cp210x_set_termios(struct tty_struct *tty,
dev_dbg(dev, "%s - read ulControlHandshake=%08x ulFlowReplace=%08x\n",
__func__, ControlHandshake, FlowReplace);
+ ControlHandshake &= ~SERIAL_DSR_HANDSHAKE;
+ ControlHandshake &= ~SERIAL_DCD_HANDSHAKE;
+ ControlHandshake &= ~SERIAL_DSR_SENSITIVITY;
+ ControlHandshake &= ~SERIAL_DTR_MASK;
+ ControlHandshake |= SERIAL_DTR_ACTIVE;
if (cflag & CRTSCTS) {
- ControlHandshake &= ~(SERIAL_DTR_MASK |
- SERIAL_CTS_HANDSHAKE | SERIAL_DSR_HANDSHAKE |
- SERIAL_DCD_HANDSHAKE | SERIAL_DSR_SENSITIVITY);
- ControlHandshake |= SERIAL_DTR_ACTIVE;
ControlHandshake |= SERIAL_CTS_HANDSHAKE;
- /* FIXME why clear bits unrelated to flow control */
- /* FIXME why clear _XOFF_CONTINUE which is never set */
- FlowReplace &= ~0xffffffff;
+
+ FlowReplace &= ~SERIAL_RTS_MASK;
FlowReplace |= SERIAL_RTS_FLOW_CTL;
dev_dbg(dev, "%s - flow control = CRTSCTS\n", __func__);
} else {
- ControlHandshake &= ~(SERIAL_DTR_MASK |
- SERIAL_CTS_HANDSHAKE | SERIAL_DSR_HANDSHAKE |
- SERIAL_DCD_HANDSHAKE | SERIAL_DSR_SENSITIVITY);
- ControlHandshake |= SERIAL_DTR_ACTIVE;
- /* FIXME - why clear bits unrelated to flow control */
- FlowReplace &= ~0xff;
+ ControlHandshake &= ~SERIAL_CTS_HANDSHAKE;
+
+ FlowReplace &= ~SERIAL_RTS_MASK;
FlowReplace |= 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 v2 3/3] USB: serial: cp210x: Cleaned up CRTSCTS flag code. Konstantin Shkolnyy <konstantin.shkolnyy@gmail.com> - 2016-04-30 04:30 +0200
csiph-web