On Mon, 4 Aug 2008, Jean-Christophe PLAGNIOL-VILLARD wrote:

> On 14:45 Mon 04 Aug     , Guennadi Liakhovetski wrote:
> > Ported from u-boot-1.1.6 driver by Samsung.
> > 
> > Signed-off-by: Guennadi Liakhovetski <[EMAIL PROTECTED]>
> > ---
> > 
> > Also added my copyright to the driver.
> > 
> >  drivers/serial/Makefile  |    1 +
> >  drivers/serial/s3c64xx.c |  189 
> > ++++++++++++++++++++++++++++++++++++++++++++++
> >  2 files changed, 190 insertions(+), 0 deletions(-)
> >  create mode 100644 drivers/serial/s3c64xx.c
> > 
> > diff --git a/drivers/serial/Makefile b/drivers/serial/Makefile
> > index c9e797e..2a11ae5 100644
> > --- a/drivers/serial/Makefile
> > +++ b/drivers/serial/Makefile
> > @@ -30,6 +30,7 @@ COBJS-y += mcfuart.o
> >  COBJS-y += ns9750_serial.o
> >  COBJS-y += ns16550.o
> >  COBJS-y += s3c4510b_uart.o
> > +COBJS-$(CONFIG_S3C64XX) += s3c64xx.o
> >  COBJS-y += serial.o
> >  COBJS-y += serial_max3100.o
> >  COBJS-y += serial_pl010.o
> I've send a patch that break it.
> 
> Could you rebase it on the current Wolfgang tree HEAD?

Ok, will have a look.

> > +/* See table in 31.6.11 */
> > +static const int udivslot[] = {
> > +   0,
> > +   0x0080,
> > +   0x0808,
> > +   0x0888,
> > +   0x2222,
> > +   0x4924,
> > +   0x4a52,
> > +   0x54aa,
> > +   0x5555,
> > +   0xd555,
> > +   0xd5d5,
> > +   0xddd5,
> > +   0xdddd,
> > +   0xdfdd,
> > +   0xdfdf,
> > +   0xffdf,
> > +};
> Can we have something more readable?

No. This are "recommended values" as mentioned in the comment to the table 
referenced above.

> > +void serial_setbrg(void)
> > +{
> > +   DECLARE_GLOBAL_DATA_PTR;
> > +   s3c64xx_uart *const uart = s3c64xx_get_base_uart(UART_NR);
> > +   u32 reg, pclk_ratio = get_PCLK() / gd->baudrate;
> why not
>       u32 reg;
>       u32 pclk_ratio = get_PCLK() / gd->baudrate;

There is more than one way to do it.

> > +   int i;
> > +
> > +   /* PCLK / (16 * baudrate) - 1 */
> > +   reg = pclk_ratio / 16 - 1;
> > +   i = pclk_ratio - (reg + 1) * 16;
> =>
>       i = pclk_ratio - (pclk_ratio / 16 - 1 + 1) * 16;
> =>
>       i = pclk_ratio - (pclk_ratio / 16 ) * 16;
> =>
>       i = pclk_ratio - pclk_ratio;
> =>
>       i = 0;

Please, think again. This is integer arithmetics, not analysis.

> > +
> > +   uart->UBRDIV = reg;
> > +   uart->UDIVSLOT = udivslot[i];
> base on the cose
>       uart->UDIVSLOT = udivslot[0];

See above.

> > +static int hwflow;         /* turned off by default */
> why not?
> static int hwflow = 0;                /* turned off by default */

Because static are always initialised to 0, and, in fact, checkpatch.pl 
produces warnings on these, and rightfully so.

> > +static int be_quiet;
> why not?
> static int be_quiet = 0;

See above.

Thanks for your comments
Guennadi
---
Guennadi Liakhovetski, Ph.D.

DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80  Email: [EMAIL PROTECTED]

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
U-Boot-Users mailing list
U-Boot-Users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/u-boot-users

Reply via email to