[PATCH] serial/efm32: add new driver
Alan Cox
alan at linux.intel.com
Thu Dec 22 07:28:47 EST 2011
On Wed, 21 Dec 2011 16:05:59 +0100
Uwe Kleine-König <u.kleine-koenig at pengutronix.de> wrote:
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig at pengutronix.de>
> ---
> Hello,
>
> note that ARCH_EFM32 isn't in mainline yet, so to be actually usable
> some arch patches are needed.
Start by running it through the CodingStyle scripts as I see a //
comment in there 8)
> +static void efm32_usart_rx_chars(struct efm32_usart_port *efm_port)
> +{
> + struct uart_port *port = &efm_port->port;
> + struct tty_struct *tty = port->state->port.tty;
Needs to be using krefs and checking the tty is not NULL
(tty_port_tty_get)
> +static void efm32_usart_set_termios(struct uart_port *port,
> + struct ktermios *new, struct ktermios *old)
> +{
> + struct efm32_usart_port *efm_port = to_efm_port(port);
> + unsigned long flags;
> + unsigned baud;
> + u32 clkdiv;
> +
> + /* no modem control lines */
> + new->c_cflag &= ~(HUPCL | CRTSCTS | CMSPAR);
Minor item - HUPCL shouldn't get cleared - its a request for hangup
behaviour not a port feature.
> + /* currently only some features are implemented */
> + new->c_cflag &= ~CSIZE;
> + new->c_cflag |= CS8;
> + new->c_cflag |= CSTOPB;
> + new->c_cflag &= ~PARENB;
If you can do CS8 without parity you can do CS7 with parity.
> + new->c_iflag = 0;
This seems broken. Lots of the iflgs are user requests and stack
properties not port features. For example you can do xon/xoff as its
pure software. As far as I can see you should leave c_iflag alone.
Alan
More information about the devicetree-discuss
mailing list