--- linux-2.6.32.8-original/drivers/usb/serial/pl2303.c	2010-02-09 12:57:19.000000000 +0000
+++ linux-2.6.32.8/drivers/usb/serial/pl2303.c	2010-02-18 21:01:50.000000000 +0000
@@ -895,10 +895,23 @@
 static int pl2303_ioctl(struct tty_struct *tty, struct file *file,
 			unsigned int cmd, unsigned long arg)
 {
+	struct serial_struct ser;
 	struct usb_serial_port *port = tty->driver_data;
 	dbg("%s (%d) cmd = 0x%04x", __func__, port->number, cmd);
 
 	switch (cmd) {
+	case TIOCGSERIAL:
+		memset(&ser, 0, sizeof ser);
+		ser.type = PORT_16654;	/* ? */
+		ser.line = port->serial->minor;
+		ser.port = port->number;
+		ser.baud_base = 460800;
+
+		if(copy_to_user((void __user*)arg, &ser, sizeof ser)) {
+			return -EFAULT;
+		}
+		return 0;
+
 	case TIOCMIWAIT:
 		dbg("%s (%d) TIOCMIWAIT", __func__,  port->number);
 		return wait_modem_info(port, arg);
