goto exit;
        }
 
-       if (tty) {
-               old_term.c_cflag = ~tty->termios->c_cflag;
-               old_term.c_iflag = ~tty->termios->c_iflag;
-               whiteheat_set_termios(tty, port, &old_term);
-       }
+       if (tty)
+               firm_setup_port(tty);
 
        /* Work around HCD bugs */
        usb_clear_halt(port->serial->dev, port->read_urb->pipe);
 static void whiteheat_set_termios(struct tty_struct *tty,
        struct usb_serial_port *port, struct ktermios *old_termios)
 {
-       /* FIXME */
        firm_setup_port(tty);
 }
 
 
        dtr_command.port = port->number - port->serial->minor + 1;
        dtr_command.state = onoff;
-       return firm_send_command(port, WHITEHEAT_SET_RTS,
+       return firm_send_command(port, WHITEHEAT_SET_DTR,
                        (__u8 *)&dtr_command, sizeof(dtr_command));
 }
 
 
        break_command.port = port->number - port->serial->minor + 1;
        break_command.state = onoff;
-       return firm_send_command(port, WHITEHEAT_SET_RTS,
+       return firm_send_command(port, WHITEHEAT_SET_BREAK,
                        (__u8 *)&break_command, sizeof(break_command));
 }