--- /dev/null
+--- 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
DESCRIPTION = "Unslung kernel for the Linksys NSLU2 device"
MAINTAINER = "NSLU2 Linux <www.nlsu2-linux.org>"
-PR = "r12"
+PR = "r13"
KERNEL_SUFFIX = "unslung"
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}"