Unslung: unslung-kernel pl2303.c add patch for modem control signals
authorMike Westerhof <mwester@dls.net>
Sat, 13 May 2006 04:41:24 +0000 (04:41 +0000)
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>
Sat, 13 May 2006 04:41:24 +0000 (04:41 +0000)
packages/linux/unslung-kernel/pl2303_mdmctl.patch [new file with mode: 0644]
packages/linux/unslung-kernel_2.4.22.l2.3r63.bb

diff --git a/packages/linux/unslung-kernel/pl2303_mdmctl.patch b/packages/linux/unslung-kernel/pl2303_mdmctl.patch
new file mode 100644 (file)
index 0000000..aeebb9e
--- /dev/null
@@ -0,0 +1,59 @@
+--- linux-2.4.22/drivers/usb/serial/pl2303.c   2006-05-12 16:05:17.000000000 -0400\r
++++ linux-2.4.22-fred/drivers/usb/serial/pl2303.c      2006-05-12 18:00:39.000000000 -0400\r
+@@ -642,14 +642,56 @@ static int wait_modem_info(struct usb_se\r
+       return 0;\r
+ }\r
\r
++\r
+ static int pl2303_ioctl (struct usb_serial_port *port, struct file *file, unsigned int cmd, unsigned long arg)\r
+ {\r
++      struct pl2303_private *priv = port->private;\r
++      unsigned int value;\r
++\r
+       dbg("%s (%d) cmd = 0x%04x", __FUNCTION__, port->number, cmd);\r
\r
+       switch (cmd) {\r
+               case TIOCMIWAIT:\r
+                       dbg("%s (%d) TIOCMIWAIT", __FUNCTION__,  port->number);\r
+                       return wait_modem_info(port, arg);\r
++      \r
++              case TIOCMGET:\r
++                      value = ((priv->line_control & CONTROL_DTR)             ? TIOCM_DTR : 0)\r
++                        | ((priv->line_control & CONTROL_RTS) ? TIOCM_RTS : 0)\r
++                        | ((priv->line_status & UART_CTS)     ? TIOCM_CTS : 0)\r
++                        | ((priv->line_status & UART_DSR)     ? TIOCM_DSR : 0)\r
++                        | ((priv->line_status & UART_RING)    ? TIOCM_RI  : 0)\r
++                        | ((priv->line_status & UART_DCD)     ? TIOCM_CD  : 0); \r
++\r
++                      if (put_user(value, (unsigned int *) arg))\r
++                              return -EFAULT;\r
++                      return 0;\r
++      \r
++              case TIOCMSET:\r
++                      if (get_user(value, (unsigned int *) arg))\r
++                              return -EFAULT;\r
++                      priv->line_control &= ~(CONTROL_RTS | CONTROL_DTR);\r
++                      priv->line_control |= ((arg & TIOCM_RTS) ? CONTROL_RTS : 0);\r
++                      priv->line_control |= ((arg & TIOCM_DTR) ? CONTROL_DTR : 0);\r
++                      return set_control_lines (port->serial->dev, priv->line_control);\r
++    \r
++              case TIOCMBIS:\r
++                      if (get_user(value, (unsigned int *) arg))\r
++                              return -EFAULT;\r
++                      if (value & TIOCM_RTS)\r
++                              priv->line_control |= CONTROL_RTS;\r
++                      if (value & TIOCM_DTR)\r
++                              priv->line_control |= CONTROL_DTR;\r
++                      return set_control_lines (port->serial->dev, priv->line_control);\r
++        \r
++              case TIOCMBIC:\r
++                      if (get_user(value, (unsigned int *) arg))\r
++                              return -EFAULT;\r
++                      if (value & TIOCM_RTS)\r
++                              priv->line_control &= ~CONTROL_RTS;\r
++                      if (value & TIOCM_DTR)\r
++                              priv->line_control &= ~CONTROL_DTR;\r
++                      return set_control_lines (port->serial->dev, priv->line_control);\r
\r
+               default:\r
+                       dbg("%s not supported = 0x%04x", __FUNCTION__, cmd);\r
index c397a90..64868d2 100644 (file)
@@ -4,7 +4,7 @@ include nslu2-linksys-kernel_2.4.22.bb
 
 DESCRIPTION = "Unslung kernel for the Linksys NSLU2 device"
 MAINTAINER = "NSLU2 Linux <www.nlsu2-linux.org>"
-PR = "r12"
+PR = "r13"
 
 KERNEL_SUFFIX = "unslung"
 
@@ -22,6 +22,7 @@ SRC_URI += "file://linux-kernel-R25_to_R29.patch;patch=1 \
            file://ppp_mppe.patch;patch=1 \
            file://nfs-blocksize.patch;patch=1 \
            file://pl2303.patch;patch=1 \
+           file://pl2303_mdmctl.patch;patch=1 \
            file://netconsole.patch;patch=1 \
            file://ppp_mppe_no_fp_in_kernel.patch;patch=1 \
            ${UNSLUNG_KERNEL_EXTRA_SRC_URI}"