> +static void mvebu_uart_set_termios(struct uart_port *port, > + struct ktermios *termios, > + struct ktermios *old) > +{ > + unsigned long flags; > + unsigned int baud; > + > + spin_lock_irqsave(&port->lock, flags); > + > + port->read_status_mask = STAT_RX_RDY | STAT_OVR_ERR | > + STAT_TX_RDY | STAT_TX_FIFO_FUL; > + > + if (termios->c_iflag & INPCK) > + port->read_status_mask |= STAT_FRM_ERR | STAT_PAR_ERR; > + > + port->ignore_status_mask = 0; > + if (termios->c_iflag & IGNPAR) > + port->ignore_status_mask |= > + STAT_FRM_ERR | STAT_PAR_ERR | STAT_OVR_ERR; > + > + if ((termios->c_cflag & CREAD) == 0) > + port->ignore_status_mask |= STAT_RX_RDY | STAT_BRK_ERR; If you don't support parity or charactive size then you should be forcing those bits in the tty->termios so that the caller sees what settings they get. tty_termios_copy_hw is close to what you need except that you can support IGNPAR. You also want to provide the actual baud rate chosen (see how 8250.c does it using tty_termios_encode_baud_rate(). > +static struct uart_driver mvebu_uart_driver = { > + .owner = THIS_MODULE, > + .driver_name = "serial", > + .dev_name = "ttyS", > + .major = TTY_MAJOR, > + .minor = 64, NAK TTY_MAJOR 64+ is the 8250 driver and ttyS is the 8250 driver name. You should be using a dynamic major (0) for all new drivers and you need to pick a different and unused ttyXXX format name. Alan -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html