+static int iuu_uart_baud(struct usb_serial_port *port, u32 baud_base, u32 *actual, u8 parity) { int status; + u32 baud; u8 *dataout; u8 DataCount = 0; u8 T1Frekvens = 0; @@ -865,6 +872,8 @@ if (!dataout) return -ENOMEM; + /*baud = (((priv->clk / 35) * baud_base) / 100000); */ + baud = baud_base; I'm a bit confused why you create an extra variable here ? + /* Just use the ospeed. ispeed should be the same. */ + baud = tty->termios->c_ospeed; ispeed and ospeed may be different. Prefering the ospeed if you can't set them separately is expected so just fine and they will get written back correctly by the encode_baud_rate call int result; + int baud = 9600; /* Fixed for the moment */ u32 actual; struct iuu_private *priv = usb_get_serial_port_data(port); The expected behaviour on open is to use the termios baud rate so now you've allowed it to be set this should be using tty->termios as well (and if need be forcing a default when the port is registered) +static int iuu_ioctl(struct tty_struct *tty, struct file *file, + unsigned int cmd, unsigned long arg) +{ + dbg("%s cmd 0x%04x", __func__, cmd); + + /* Old interface. Returning -ENOIOCTLCMD for proper termios use. */ + return -ENOIOCTLCMD; +} This should not be needed - its the default behaviour Alan -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html