On Tue, 25 Mar 2014 00:13:50 +0400 Antony Pavlov <antonynpavlov@xxxxxxxxx> wrote: This patch can be very handy for adding device tree FIFO-less controllers support in the future. E.g.: .compatible = "ns8250" or .compatible = "ns16450" > Signed-off-by: Antony Pavlov <antonynpavlov@xxxxxxxxx> > --- > drivers/serial/serial_ns16550.c | 13 +++++++------ > 1 file changed, 7 insertions(+), 6 deletions(-) > > diff --git a/drivers/serial/serial_ns16550.c b/drivers/serial/serial_ns16550.c > index d217014..0089a04 100644 > --- a/drivers/serial/serial_ns16550.c > +++ b/drivers/serial/serial_ns16550.c > @@ -48,6 +48,7 @@ struct ns16550_priv { > struct NS16550_plat plat; > int access_width; > struct clk *clk; > + uint32_t fcrval; > }; > > static inline struct ns16550_priv *to_ns16550_priv(struct console_device *cdev) > @@ -157,18 +158,13 @@ static int ns16550_setbaudrate(struct console_device *cdev, int baud_rate) > { > unsigned int baud_divisor = ns16550_calc_divisor(cdev, baud_rate); > struct ns16550_priv *priv = to_ns16550_priv(cdev); > - struct NS16550_plat *plat = &priv->plat; > > ns16550_write(cdev, LCR_BKSE, lcr); > ns16550_write(cdev, baud_divisor & 0xff, dll); > ns16550_write(cdev, (baud_divisor >> 8) & 0xff, dlm); > ns16550_write(cdev, LCRVAL, lcr); > ns16550_write(cdev, MCRVAL, mcr); > - > - if (plat->flags & NS16650_FLAG_DISABLE_FIFO) > - ns16550_write(cdev, FCRVAL & ~FCR_FIFO_EN, fcr); > - else > - ns16550_write(cdev, FCRVAL, fcr); > + ns16550_write(cdev, priv->fcrval, fcr); > > return 0; > } > @@ -316,6 +312,11 @@ static int ns16550_probe(struct device_d *dev) > cdev->setbrg = ns16550_setbaudrate; > cdev->linux_console_name = devtype->linux_console_name; > > + if (plat->flags & NS16650_FLAG_DISABLE_FIFO) > + priv->fcrval = FCRVAL & ~FCR_FIFO_EN; > + else > + priv->fcrval = FCRVAL; > + > devtype->init_port(cdev); > > return console_register(cdev); > -- > 1.9.0 > -- -- Best regards, Antony Pavlov _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox