[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20111222085706.GD24496@pengutronix.de>
Date: Thu, 22 Dec 2011 09:57:06 +0100
From: Uwe Kleine-König
<u.kleine-koenig@...gutronix.de>
To: Alan Cox <alan@...ux.intel.com>
Cc: linux-kernel@...r.kernel.org, devicetree-discuss@...ts.ozlabs.org,
Greg Kroah-Hartman <gregkh@...e.de>,
linux-serial@...r.kernel.org, kernel@...gutronix.de
Subject: Re: [PATCH] serial/efm32: add new driver
Hello,
On Wed, Dec 21, 2011 at 08:28:47PM +0000, Alan Cox wrote:
> On Wed, 21 Dec 2011 16:05:59 +0100
> Uwe Kleine-König <u.kleine-koenig@...gutronix.de> wrote:
>
> > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@...gutronix.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)
oops
> > +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)
ah, I copied from mxs-auart. Will try to find a better example.
> > +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.
ah, I copied that from imx (in an if(0) though).
> > + /* 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.
I sticked to the things I use and tested. According to the manual the
hardware can do 4 up to 16 data bits with and without 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.
ok.
I will send an update and fix the drivers I copied from.
Best regards
Uwe
--
Pengutronix e.K. | Uwe Kleine-König |
Industrial Linux Solutions | http://www.pengutronix.de/ |
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists