From: Greg KH <greg@kroah.com>
To: linux-usb-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] More USB fixes for 2.5.68
Date: Thu, 24 Apr 2003 16:47:33 -0700 [thread overview]
Message-ID: <10512280532458@kroah.com> (raw)
In-Reply-To: <10512280533305@kroah.com>
ChangeSet 1.1165.2.14, 2003/04/23 17:47:50-07:00, greg@kroah.com
[PATCH] USB: kl5kusb105: add support for new tty tiocmget and tiocmset functions.
drivers/usb/serial/kl5kusb105.c | 112 +++++++++++++++++++++-------------------
1 files changed, 59 insertions(+), 53 deletions(-)
diff -Nru a/drivers/usb/serial/kl5kusb105.c b/drivers/usb/serial/kl5kusb105.c
--- a/drivers/usb/serial/kl5kusb105.c Thu Apr 24 16:22:03 2003
+++ b/drivers/usb/serial/kl5kusb105.c Thu Apr 24 16:22:04 2003
@@ -105,6 +105,11 @@
static void klsi_105_break_ctl (struct usb_serial_port *port,
int break_state );
*/
+static int klsi_105_tiocmget (struct usb_serial_port *port,
+ struct file *file);
+static int klsi_105_tiocmset (struct usb_serial_port *port,
+ struct file *file, unsigned int set,
+ unsigned int clear);
/*
* All of the device info needed for the KLSI converters.
@@ -143,6 +148,8 @@
.ioctl = klsi_105_ioctl,
.set_termios = klsi_105_set_termios,
/*.break_ctl = klsi_105_break_ctl,*/
+ .tiocmget = klsi_105_tiocmget,
+ .tiocmset = klsi_105_tiocmset,
.attach = klsi_105_startup,
.shutdown = klsi_105_shutdown,
.throttle = klsi_105_throttle,
@@ -879,68 +886,67 @@
} /* mct_u232_break_ctl */
#endif
-static int klsi_105_ioctl (struct usb_serial_port *port, struct file * file,
- unsigned int cmd, unsigned long arg)
+static int klsi_105_tiocmget (struct usb_serial_port *port, struct file *file)
{
struct usb_serial *serial = port->serial;
struct klsi_105_private *priv = usb_get_serial_port_data(port);
- int mask;
unsigned long flags;
+ int rc;
+ unsigned long line_state;
+ dbg("%s - request, just guessing", __FUNCTION__);
+
+ rc = klsi_105_get_line_state(serial, &line_state);
+ if (rc < 0) {
+ err("Reading line control failed (error = %d)", rc);
+ /* better return value? EAGAIN? */
+ return rc;
+ }
+
+ spin_lock_irqsave (&priv->lock, flags);
+ priv->line_state = line_state;
+ spin_unlock_irqrestore (&priv->lock, flags);
+ dbg("%s - read line state 0x%lx", __FUNCTION__, line_state);
+ return (int)line_state;
+}
+
+static int klsi_105_tiocmset (struct usb_serial_port *port, struct file *file,
+ unsigned int set, unsigned int clear)
+{
+ int retval = -EINVAL;
+
+ dbg("%s", __FUNCTION__);
+
+/* if this ever gets implemented, it should be done something like this:
+ struct usb_serial *serial = port->serial;
+ struct klsi_105_private *priv = usb_get_serial_port_data(port);
+ unsigned long flags;
+ int control;
+
+ spin_lock_irqsave (&priv->lock, flags);
+ if (set & TIOCM_RTS)
+ priv->control_state |= TIOCM_RTS;
+ if (set & TIOCM_DTR)
+ priv->control_state |= TIOCM_DTR;
+ if (clear & TIOCM_RTS)
+ priv->control_state &= ~TIOCM_RTS;
+ if (clear & TIOCM_DTR)
+ priv->control_state &= ~TIOCM_DTR;
+ control = priv->control_state;
+ spin_unlock_irqrestore (&priv->lock, flags);
+ retval = mct_u232_set_modem_ctrl(serial, control);
+*/
+ return retval;
+}
+
+static int klsi_105_ioctl (struct usb_serial_port *port, struct file * file,
+ unsigned int cmd, unsigned long arg)
+{
+ struct klsi_105_private *priv = usb_get_serial_port_data(port);
dbg("%scmd=0x%x", __FUNCTION__, cmd);
/* Based on code from acm.c and others */
switch (cmd) {
- case TIOCMGET: {
- int rc;
- unsigned long line_state;
- dbg("%s - TIOCMGET request, just guessing", __FUNCTION__);
-
- rc = klsi_105_get_line_state(serial, &line_state);
- if (rc < 0) {
- err("Reading line control failed (error = %d)", rc);
- /* better return value? EAGAIN? */
- return -ENOIOCTLCMD;
- }
- spin_lock_irqsave (&priv->lock, flags);
- priv->line_state = line_state;
- spin_unlock_irqrestore (&priv->lock, flags);
- dbg("%s - read line state 0x%lx", __FUNCTION__, line_state);
- return put_user(line_state, (unsigned long *) arg);
- };
-
- case TIOCMSET: /* Turns on and off the lines as specified by the mask */
- case TIOCMBIS: /* turns on (Sets) the lines as specified by the mask */
- case TIOCMBIC: /* turns off (Clears) the lines as specified by the mask */
- if (get_user(mask, (unsigned long *) arg))
- return -EFAULT;
-
- if ((cmd == TIOCMSET) || (mask & TIOCM_RTS)) {
- /* RTS needs set */
- if( ((cmd == TIOCMSET) && (mask & TIOCM_RTS)) ||
- (cmd == TIOCMBIS) )
- dbg("%s - set RTS not handled", __FUNCTION__);
- /* priv->control_state |= TIOCM_RTS; */
- else
- dbg("%s - clear RTS not handled", __FUNCTION__);
- /* priv->control_state &= ~TIOCM_RTS; */
- }
-
- if ((cmd == TIOCMSET) || (mask & TIOCM_DTR)) {
- /* DTR needs set */
- if( ((cmd == TIOCMSET) && (mask & TIOCM_DTR)) ||
- (cmd == TIOCMBIS) )
- dbg("%s - set DTR not handled", __FUNCTION__);
- /* priv->control_state |= TIOCM_DTR; */
- else
- dbg("%s - clear DTR not handled", __FUNCTION__);
- /* priv->control_state &= ~TIOCM_DTR; */
- }
- /*
- mct_u232_set_modem_ctrl(serial, priv->control_state);
- */
- break;
-
case TIOCMIWAIT:
/* wait for any of the 4 modem inputs (DCD,RI,DSR,CTS)*/
/* TODO */
next prev parent reply other threads:[~2003-04-25 0:22 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-04-24 23:46 [BK PATCH] USB changes for 2.5.68 Greg KH
2003-04-24 23:47 ` [PATCH] More USB fixes " Greg KH
2003-04-24 23:47 ` Greg KH
2003-04-24 23:47 ` Greg KH
2003-04-24 23:47 ` Greg KH
2003-04-24 23:47 ` Greg KH
2003-04-24 23:47 ` Greg KH
2003-04-24 23:47 ` Greg KH
2003-04-24 23:47 ` Greg KH
2003-04-24 23:47 ` Greg KH
2003-04-24 23:47 ` Greg KH
2003-04-24 23:47 ` Greg KH
2003-04-24 23:47 ` Greg KH
2003-04-24 23:47 ` Greg KH
2003-04-24 23:47 ` Greg KH [this message]
2003-04-24 23:47 ` Greg KH
2003-04-24 23:47 ` Greg KH
2003-04-24 23:47 ` Greg KH
2003-04-24 23:47 ` Greg KH
2003-04-24 23:47 ` Greg KH
2003-04-24 23:47 ` Greg KH
2003-04-25 4:14 ` [BK PATCH] USB changes " Greg KH
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=10512280532458@kroah.com \
--to=greg@kroah.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb-devel@lists.sourceforge.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.