Dear Brian Cavagnolo, On 30 June 2010 01:58, Brian Cavagnolo <br...@cozybit.com> wrote: > Specifically, don't dereference the URXH0 register twice; calculate the BRD > based on the formula in the databook instead of using a messy switch > statement; > and migrate the BRD calculation to the hardware hardware header because it's
hardware hardware..? is it typo? > board specific. > > Signed-off-by: Brian Cavagnolo <br...@cozybit.com> > --- > arch/arm/include/asm/arch-s3c44b0/hardware.h | 3 +- > drivers/serial/serial_s3c44b0.c | 65 > +------------------------- > 2 files changed, 4 insertions(+), 64 deletions(-) > > diff --git a/arch/arm/include/asm/arch-s3c44b0/hardware.h > b/arch/arm/include/asm/arch-s3c44b0/hardware.h > index 146e265..38ff32c 100644 > --- a/arch/arm/include/asm/arch-s3c44b0/hardware.h > +++ b/arch/arm/include/asm/arch-s3c44b0/hardware.h > @@ -11,7 +11,8 @@ > #define REGL(addr) (*(volatile unsigned int *)(REGBASE+addr)) > #define REGW(addr) (*(volatile unsigned short *)(REGBASE+addr)) > #define REGB(addr) (*(volatile unsigned char *)(REGBASE+addr)) > - > +#define BRD(bps) (DIV_ROUND(CONFIG_S3C44B0_CLOCK_SPEED * 1000000, \ > + (bps)*16) - 1) no need brace and please add the space around the operator. bps * 16) - 1) > > /*****************************/ > /* CPU Wrapper Registers */ > diff --git a/drivers/serial/serial_s3c44b0.c b/drivers/serial/serial_s3c44b0.c > index 95d0266..e6c535c 100644 > --- a/drivers/serial/serial_s3c44b0.c > +++ b/drivers/serial/serial_s3c44b0.c > @@ -48,7 +48,7 @@ static int serial_flush_input(void) > > /* keep on reading as long as the receiver is not empty */ > while(UTRSTAT0&0x01) { Space required before the open parenthesis '('. Could you please run checkpatch and make clean-up patch for this file? > - tmp = REGB(URXH0); > + tmp = URXH0; > } > > return 0; > @@ -70,68 +70,7 @@ static int serial_flush_output(void) > > void serial_setbrg (void) > { > - u32 divisor = 0; > - > - /* get correct divisor */ > - switch(gd->baudrate) { > - > - case 1200: > -#if CONFIG_S3C44B0_CLOCK_SPEED==66 > - divisor = 3124; > -#elif CONFIG_S3C44B0_CLOCK_SPEED==75 > - divisor = 3905; > -#else > -# error CONFIG_S3C44B0_CLOCK_SPEED undefined > -#endif > - break; > - > - case 9600: > -#if CONFIG_S3C44B0_CLOCK_SPEED==66 > - divisor = 390; > -#elif CONFIG_S3C44B0_CLOCK_SPEED==75 > - divisor = 487; > -#else > -# error CONFIG_S3C44B0_CLOCK_SPEED undefined > -#endif > - break; > - > - case 19200: > -#if CONFIG_S3C44B0_CLOCK_SPEED==66 > - divisor = 194; > -#elif CONFIG_S3C44B0_CLOCK_SPEED==75 > - divisor = 243; > -#else > -# error CONFIG_S3C44B0_CLOCK_SPEED undefined > -#endif > - break; > - > - case 38400: > -#if CONFIG_S3C44B0_CLOCK_SPEED==66 > - divisor = 97; > -#elif CONFIG_S3C44B0_CLOCK_SPEED==75 > - divisor = 121; > -#else > -# error CONFIG_S3C44B0_CLOCK_SPEED undefined > -#endif /* break; */ > - > - case 57600: > -#if CONFIG_S3C44B0_CLOCK_SPEED==66 > - divisor = 64; > -#elif CONFIG_S3C44B0_CLOCK_SPEED==75 > - divisor = 80; > -#else > -# error CONFIG_S3C44B0_CLOCK_SPEED undefined > -#endif /* break; */ > - > - case 115200: > -#if CONFIG_S3C44B0_CLOCK_SPEED==66 > - divisor = 32; > -#elif CONFIG_S3C44B0_CLOCK_SPEED==75 > - divisor = 40; > -#else > -# error CONFIG_S3C44B0_CLOCK_SPEED undefined > -#endif /* break; */ > - } > + u32 divisor = BRD(gd->baudrate); > > serial_flush_output(); > serial_flush_input(); > -- > 1.6.0.4 > > _______________________________________________ > U-Boot mailing list > U-Boot@lists.denx.de > http://lists.denx.de/mailman/listinfo/u-boot > Thanks Minkyu Kang. -- from. prom. www.promsoft.net _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot