Message ID | 1372466081.3675.3.camel@phoenix |
---|---|
State | Accepted, archived |
Delegated to: | Sonic Zhang |
Headers | show |
Dear Axel Lin, > Current code uses gd->baudrate before setting its value. > Besides, I got below build warning which is introduced by > commit ddb5c5be "blackfin: add baudrate to bdinfo". > > board.c:235:3: warning: passing argument 1 of 'simple_strtoul' makes > pointer from integer without a cast [enabled by default] > include/vsprintf.h:27:7: note: expected 'const char *' but argument is of > type 'unsigned int' > > This patch moves the code using gd->baudrate to be after init_baudrate() > call, this ensures we get the baudrate setting before using it. > > Signed-off-by: Axel Lin <axel.lin@ingics.com> > --- > I forgot to CC u-boot mail list. here is a resend. > > Hi, > I don't have this hardware to test. > I'd appreciate if someone can test it. > > Thanks, > Axel > arch/blackfin/lib/board.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/arch/blackfin/lib/board.c b/arch/blackfin/lib/board.c > index f1d5547..9e2e9de 100644 > --- a/arch/blackfin/lib/board.c > +++ b/arch/blackfin/lib/board.c > @@ -231,8 +231,6 @@ static int global_board_data_init(void) > bd->bi_sclk = get_sclk(); > bd->bi_memstart = CONFIG_SYS_SDRAM_BASE; > bd->bi_memsize = CONFIG_SYS_MAX_RAM_SIZE; > - bd->bi_baudrate = (gd->baudrate > 0) > - ? simple_strtoul(gd->baudrate, NULL, 10) : CONFIG_BAUDRATE; I'd rather say the fix here is to use (gd->baudrate > 0) ? gd->baudrate ? CONFIG_BAUDRATE ; Otherwise you're changing the logic of the code and for that, you'd need Mikes' ack. > return 0; > } > @@ -299,6 +297,7 @@ void board_init_f(ulong bootflag) > env_init(); > serial_early_puts("Baudrate init\n"); > init_baudrate(); > + gd->bd->bi_baudrate = gd->baudrate; > serial_early_puts("Serial init\n"); > serial_init(); > serial_initialize(); Best regards, Marek Vasut
2013/6/29 Marek Vasut <marex@denx.de>: > Dear Axel Lin, > >> Current code uses gd->baudrate before setting its value. >> Besides, I got below build warning which is introduced by >> commit ddb5c5be "blackfin: add baudrate to bdinfo". >> >> board.c:235:3: warning: passing argument 1 of 'simple_strtoul' makes >> pointer from integer without a cast [enabled by default] >> include/vsprintf.h:27:7: note: expected 'const char *' but argument is of >> type 'unsigned int' >> >> This patch moves the code using gd->baudrate to be after init_baudrate() >> call, this ensures we get the baudrate setting before using it. >> >> Signed-off-by: Axel Lin <axel.lin@ingics.com> >> --- >> I forgot to CC u-boot mail list. here is a resend. >> >> Hi, >> I don't have this hardware to test. >> I'd appreciate if someone can test it. >> >> Thanks, >> Axel >> arch/blackfin/lib/board.c | 3 +-- >> 1 file changed, 1 insertion(+), 2 deletions(-) >> >> diff --git a/arch/blackfin/lib/board.c b/arch/blackfin/lib/board.c >> index f1d5547..9e2e9de 100644 >> --- a/arch/blackfin/lib/board.c >> +++ b/arch/blackfin/lib/board.c >> @@ -231,8 +231,6 @@ static int global_board_data_init(void) >> bd->bi_sclk = get_sclk(); >> bd->bi_memstart = CONFIG_SYS_SDRAM_BASE; >> bd->bi_memsize = CONFIG_SYS_MAX_RAM_SIZE; >> - bd->bi_baudrate = (gd->baudrate > 0) >> - ? simple_strtoul(gd->baudrate, NULL, 10) : CONFIG_BAUDRATE; > > > I'd rather say the fix here is to use (gd->baudrate > 0) ? gd->baudrate ? > CONFIG_BAUDRATE ; > > Otherwise you're changing the logic of the code and for that, you'd need Mikes' > ack. Hi Marek, It's because gd->baudrate is set in init_baudrate(). And if it is not found in an environment variable, the default is CONFIG_BAUDRATE. It's unlikely gd->baudrate is 0. So if we have below code: init_baudrate(); gd->bd->bi_baudrate = (gd->baudrate > 0) ? gd->baudrate : CONFIG_BAUDRATE; In an unlikely case where baudrate environment variable is set to 0, then we have inconsistency setting: gd->baudrate = 0; gd->bd->bi_baudrate = CONFIG_BAUDRATE; Comments? Regards, Axel
Hi Axel, On Sat, Jun 29, 2013 at 8:34 AM, Axel Lin <axel.lin@ingics.com> wrote: > Current code uses gd->baudrate before setting its value. > Besides, I got below build warning which is introduced by > commit ddb5c5be "blackfin: add baudrate to bdinfo". > > board.c:235:3: warning: passing argument 1 of 'simple_strtoul' makes pointer from integer without a cast [enabled by default] > include/vsprintf.h:27:7: note: expected 'const char *' but argument is of type 'unsigned int' > > This patch moves the code using gd->baudrate to be after init_baudrate() call, > this ensures we get the baudrate setting before using it. > > Signed-off-by: Axel Lin <axel.lin@ingics.com> > --- > I forgot to CC u-boot mail list. here is a resend. > > Hi, > I don't have this hardware to test. > I'd appreciate if someone can test it. > > Thanks, > Axel > arch/blackfin/lib/board.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/arch/blackfin/lib/board.c b/arch/blackfin/lib/board.c > index f1d5547..9e2e9de 100644 > --- a/arch/blackfin/lib/board.c > +++ b/arch/blackfin/lib/board.c > @@ -231,8 +231,6 @@ static int global_board_data_init(void) > bd->bi_sclk = get_sclk(); > bd->bi_memstart = CONFIG_SYS_SDRAM_BASE; > bd->bi_memsize = CONFIG_SYS_MAX_RAM_SIZE; > - bd->bi_baudrate = (gd->baudrate > 0) > - ? simple_strtoul(gd->baudrate, NULL, 10) : CONFIG_BAUDRATE; > > return 0; > } > @@ -299,6 +297,7 @@ void board_init_f(ulong bootflag) > env_init(); > serial_early_puts("Baudrate init\n"); > init_baudrate(); > + gd->bd->bi_baudrate = gd->baudrate; I prefer to move this line into init_baudrate(). Regards, Sonic
2013/7/1 Sonic Zhang <sonic.adi@gmail.com>: > Hi Axel, > > On Sat, Jun 29, 2013 at 8:34 AM, Axel Lin <axel.lin@ingics.com> wrote: >> Current code uses gd->baudrate before setting its value. >> Besides, I got below build warning which is introduced by >> commit ddb5c5be "blackfin: add baudrate to bdinfo". >> >> board.c:235:3: warning: passing argument 1 of 'simple_strtoul' makes pointer from integer without a cast [enabled by default] >> include/vsprintf.h:27:7: note: expected 'const char *' but argument is of type 'unsigned int' >> >> This patch moves the code using gd->baudrate to be after init_baudrate() call, >> this ensures we get the baudrate setting before using it. >> >> Signed-off-by: Axel Lin <axel.lin@ingics.com> >> --- >> I forgot to CC u-boot mail list. here is a resend. >> >> Hi, >> I don't have this hardware to test. >> I'd appreciate if someone can test it. >> >> Thanks, >> Axel >> arch/blackfin/lib/board.c | 3 +-- >> 1 file changed, 1 insertion(+), 2 deletions(-) >> >> diff --git a/arch/blackfin/lib/board.c b/arch/blackfin/lib/board.c >> index f1d5547..9e2e9de 100644 >> --- a/arch/blackfin/lib/board.c >> +++ b/arch/blackfin/lib/board.c >> @@ -231,8 +231,6 @@ static int global_board_data_init(void) >> bd->bi_sclk = get_sclk(); >> bd->bi_memstart = CONFIG_SYS_SDRAM_BASE; >> bd->bi_memsize = CONFIG_SYS_MAX_RAM_SIZE; >> - bd->bi_baudrate = (gd->baudrate > 0) >> - ? simple_strtoul(gd->baudrate, NULL, 10) : CONFIG_BAUDRATE; >> >> return 0; >> } >> @@ -299,6 +297,7 @@ void board_init_f(ulong bootflag) >> env_init(); >> serial_early_puts("Baudrate init\n"); >> init_baudrate(); >> + gd->bd->bi_baudrate = gd->baudrate; > > I prefer to move this line into init_baudrate(). hi Sonic, $ grep -r "int init_baudrate" -A 4 arch It shows we have the same implementation for all supported architectures. So I think init_baudrate() may be moved to a common place in the future. I pernsonal prefer keep the code as is in this patch. But if you insist on moving this line into init_baudrate(), I have no problem to send a v2. Just let me know how do you think. Thanks for the review, Axel
Hi Axel, On Mon, Jul 1, 2013 at 12:11 PM, Axel Lin <axel.lin@ingics.com> wrote: > 2013/7/1 Sonic Zhang <sonic.adi@gmail.com>: >> Hi Axel, >> >> On Sat, Jun 29, 2013 at 8:34 AM, Axel Lin <axel.lin@ingics.com> wrote: >>> Current code uses gd->baudrate before setting its value. >>> Besides, I got below build warning which is introduced by >>> commit ddb5c5be "blackfin: add baudrate to bdinfo". >>> >>> board.c:235:3: warning: passing argument 1 of 'simple_strtoul' makes pointer from integer without a cast [enabled by default] >>> include/vsprintf.h:27:7: note: expected 'const char *' but argument is of type 'unsigned int' >>> >>> This patch moves the code using gd->baudrate to be after init_baudrate() call, >>> this ensures we get the baudrate setting before using it. >>> >>> Signed-off-by: Axel Lin <axel.lin@ingics.com> >>> --- >>> I forgot to CC u-boot mail list. here is a resend. >>> >>> Hi, >>> I don't have this hardware to test. >>> I'd appreciate if someone can test it. >>> >>> Thanks, >>> Axel >>> arch/blackfin/lib/board.c | 3 +-- >>> 1 file changed, 1 insertion(+), 2 deletions(-) >>> >>> diff --git a/arch/blackfin/lib/board.c b/arch/blackfin/lib/board.c >>> index f1d5547..9e2e9de 100644 >>> --- a/arch/blackfin/lib/board.c >>> +++ b/arch/blackfin/lib/board.c >>> @@ -231,8 +231,6 @@ static int global_board_data_init(void) >>> bd->bi_sclk = get_sclk(); >>> bd->bi_memstart = CONFIG_SYS_SDRAM_BASE; >>> bd->bi_memsize = CONFIG_SYS_MAX_RAM_SIZE; >>> - bd->bi_baudrate = (gd->baudrate > 0) >>> - ? simple_strtoul(gd->baudrate, NULL, 10) : CONFIG_BAUDRATE; >>> >>> return 0; >>> } >>> @@ -299,6 +297,7 @@ void board_init_f(ulong bootflag) >>> env_init(); >>> serial_early_puts("Baudrate init\n"); >>> init_baudrate(); >>> + gd->bd->bi_baudrate = gd->baudrate; >> >> I prefer to move this line into init_baudrate(). > hi Sonic, > > $ grep -r "int init_baudrate" -A 4 arch > It shows we have the same implementation for all supported architectures. > > So I think init_baudrate() may be moved to a common place in the future. > I pernsonal prefer keep the code as is in this patch. > But if you insist on moving this line into init_baudrate(), I have no problem > to send a v2. Just let me know how do you think. Yes, please. Regards, Sonic
diff --git a/arch/blackfin/lib/board.c b/arch/blackfin/lib/board.c index f1d5547..9e2e9de 100644 --- a/arch/blackfin/lib/board.c +++ b/arch/blackfin/lib/board.c @@ -231,8 +231,6 @@ static int global_board_data_init(void) bd->bi_sclk = get_sclk(); bd->bi_memstart = CONFIG_SYS_SDRAM_BASE; bd->bi_memsize = CONFIG_SYS_MAX_RAM_SIZE; - bd->bi_baudrate = (gd->baudrate > 0) - ? simple_strtoul(gd->baudrate, NULL, 10) : CONFIG_BAUDRATE; return 0; } @@ -299,6 +297,7 @@ void board_init_f(ulong bootflag) env_init(); serial_early_puts("Baudrate init\n"); init_baudrate(); + gd->bd->bi_baudrate = gd->baudrate; serial_early_puts("Serial init\n"); serial_init(); serial_initialize();
Current code uses gd->baudrate before setting its value. Besides, I got below build warning which is introduced by commit ddb5c5be "blackfin: add baudrate to bdinfo". board.c:235:3: warning: passing argument 1 of 'simple_strtoul' makes pointer from integer without a cast [enabled by default] include/vsprintf.h:27:7: note: expected 'const char *' but argument is of type 'unsigned int' This patch moves the code using gd->baudrate to be after init_baudrate() call, this ensures we get the baudrate setting before using it. Signed-off-by: Axel Lin <axel.lin@ingics.com> --- I forgot to CC u-boot mail list. here is a resend. Hi, I don't have this hardware to test. I'd appreciate if someone can test it. Thanks, Axel arch/blackfin/lib/board.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)