Re: Wrong GIT author ? also bugs: serial: Add uart driver fori.MX23/28

From: Alan Cox
Date: Tue Mar 29 2011 - 05:33:35 EST


> I don't understand how to do this and didn't find something like that in
> other drivers. (I checked amba-pl011.c and imx.c.) Also
> Documentation/serial/driver doesn't describe this. (It is also silent
> about CMSPAR and doesn't even advise to clear unsupported bits.)
> Can you be a bit more verbose here?

8250.c is the best place to look.

Basically on return from your routine the _hardware_ bits of the termios
struct should be the ones set.

So eg if you only supported 8bit characters you'd wipe the CSx bits and
set CS8.

For the speed there is a helper so you probably want

/* Don't rewrite B0 */
if (tty_termios_baud_rate(termios))
tty_termios_encode_baud_rate(termios, baud, baud);

> @@ -286,6 +283,9 @@ static void mxs_auart_settermios(struct uart_port *u,
> {
> u32 bm, ctrl, ctrl2, div;
> unsigned int cflag, baud;
> + unsigned long flags;
> +
> + spin_lock_irqsave(&u->lock, flags);

Termios you don't need the lock - just the IRQ handler and you still
really want the tty_port_tty_get()/tty_kref_put() if that wasn't already
dealt with.

(You may not need it but its easier to put in than prove with the serial
layer at the moment)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/