]> git.sur5r.net Git - u-boot/commitdiff
console: Squelch pre-console output in console functions
authorGraeme Russ <graeme.russ@gmail.com>
Mon, 29 Aug 2011 02:14:05 +0000 (02:14 +0000)
committerWolfgang Denk <wd@denx.de>
Sat, 1 Oct 2011 19:54:49 +0000 (21:54 +0200)
There are some locations in the code which anticipate printf() being called
before the console is ready by squelching printf() on gd->have_console.
Move this squelching into printf(), vprintf(), puts() and putc(). Also
make tstc() and getc() return 0 if console is not yet initialised

Signed-off-by: Graeme Russ <graeme.russ@gmail.com>
Tested-by: Simon Glass <sjg@chromium.org>
arch/powerpc/cpu/mpc5xxx/i2c.c
arch/powerpc/cpu/mpc8xx/i2c.c
common/console.c
drivers/i2c/ppc4xx_i2c.c
drivers/i2c/soft_i2c.c

index 9fb330f82fcc39397c2c8e35da1d1488d8379b13..f9d293b7ce7d96ffaff1357e5d84195c582ad6e7 100644 (file)
@@ -332,8 +332,7 @@ static int mpc_get_fdr(int speed)
                if (gd->flags & GD_FLG_RELOC) {
                        fdr = divider;
                } else {
-                       if (gd->have_console)
-                               printf("%ld kHz, ", best_speed / 1000);
+                       printf("%ld kHz, ", best_speed / 1000);
                        return divider;
                }
        }
@@ -374,34 +373,29 @@ int i2c_read(uchar chip, uint addr, int alen, uchar *buf, int len)
        xaddr[3] =  addr        & 0xFF;
 
        if (wait_for_bb()) {
-               if (gd->have_console)
-                       printf("i2c_read: bus is busy\n");
+               printf("i2c_read: bus is busy\n");
                goto Done;
        }
 
        mpc_reg_out(&regs->mcr, I2C_STA, I2C_STA);
        if (do_address(chip, 0)) {
-               if (gd->have_console)
-                       printf("i2c_read: failed to address chip\n");
+               printf("i2c_read: failed to address chip\n");
                goto Done;
        }
 
        if (send_bytes(chip, &xaddr[4-alen], alen)) {
-               if (gd->have_console)
-                       printf("i2c_read: send_bytes failed\n");
+               printf("i2c_read: send_bytes failed\n");
                goto Done;
        }
 
        mpc_reg_out(&regs->mcr, I2C_RSTA, I2C_RSTA);
        if (do_address(chip, 1)) {
-               if (gd->have_console)
-                       printf("i2c_read: failed to address chip\n");
+               printf("i2c_read: failed to address chip\n");
                goto Done;
        }
 
        if (receive_bytes(chip, (char *)buf, len)) {
-               if (gd->have_console)
-                       printf("i2c_read: receive_bytes failed\n");
+               printf("i2c_read: receive_bytes failed\n");
                goto Done;
        }
 
@@ -423,27 +417,23 @@ int i2c_write(uchar chip, uint addr, int alen, uchar *buf, int len)
        xaddr[3] =  addr        & 0xFF;
 
        if (wait_for_bb()) {
-               if (gd->have_console)
-                       printf("i2c_write: bus is busy\n");
+               printf("i2c_write: bus is busy\n");
                goto Done;
        }
 
        mpc_reg_out(&regs->mcr, I2C_STA, I2C_STA);
        if (do_address(chip, 0)) {
-               if (gd->have_console)
-                       printf("i2c_write: failed to address chip\n");
+               printf("i2c_write: failed to address chip\n");
                goto Done;
        }
 
        if (send_bytes(chip, &xaddr[4-alen], alen)) {
-               if (gd->have_console)
-                       printf("i2c_write: send_bytes failed\n");
+               printf("i2c_write: send_bytes failed\n");
                goto Done;
        }
 
        if (send_bytes(chip, (char *)buf, len)) {
-               if (gd->have_console)
-                       printf("i2c_write: send_bytes failed\n");
+               printf("i2c_write: send_bytes failed\n");
                goto Done;
        }
 
index 338cababe89a368623e92241f00e53979a513a0c..1ca51fddef83379aea49454a324f073695f48315 100644 (file)
@@ -633,22 +633,19 @@ int i2c_read(uchar chip, uint addr, int alen, uchar *buffer, int len)
 
        rc = i2c_send(&state, chip, 0, I2CF_START_COND, alen, &xaddr[4-alen]);
        if (rc != 0) {
-               if (gd->have_console)
-                       printf("i2c_read: i2c_send failed (%d)\n", rc);
+               printf("i2c_read: i2c_send failed (%d)\n", rc);
                return 1;
        }
 
        rc = i2c_receive(&state, chip, 0, I2CF_STOP_COND, len, buffer);
        if (rc != 0) {
-               if (gd->have_console)
-                       printf("i2c_read: i2c_receive failed (%d)\n", rc);
+               printf("i2c_read: i2c_receive failed (%d)\n", rc);
                return 1;
        }
 
        rc = i2c_doio(&state);
        if (rc != 0) {
-               if (gd->have_console)
-                       printf("i2c_read: i2c_doio failed (%d)\n", rc);
+               printf("i2c_read: i2c_doio failed (%d)\n", rc);
                return 1;
        }
        return 0;
@@ -683,22 +680,19 @@ int i2c_write(uchar chip, uint addr, int alen, uchar *buffer, int len)
 
        rc = i2c_send(&state, chip, 0, I2CF_START_COND, alen, &xaddr[4-alen]);
        if (rc != 0) {
-               if (gd->have_console)
-                       printf("i2c_write: first i2c_send failed (%d)\n", rc);
+               printf("i2c_write: first i2c_send failed (%d)\n", rc);
                return 1;
        }
 
        rc = i2c_send(&state, 0, 0, I2CF_STOP_COND, len, buffer);
        if (rc != 0) {
-               if (gd->have_console)
-                       printf("i2c_write: second i2c_send failed (%d)\n", rc);
+               printf("i2c_write: second i2c_send failed (%d)\n", rc);
                return 1;
        }
 
        rc = i2c_doio(&state);
        if (rc != 0) {
-               if (gd->have_console)
-                       printf("i2c_write: i2c_doio failed (%d)\n", rc);
+               printf("i2c_write: i2c_doio failed (%d)\n", rc);
                return 1;
        }
        return 0;
index 8c650e05e1c352ff5406b576387cb25dd2f5dd35..b23d933d2c35742521c34aad25852b2f553ac4c6 100644 (file)
@@ -298,6 +298,9 @@ int getc(void)
                return 0;
 #endif
 
+       if (!gd->have_console)
+               return 0;
+
        if (gd->flags & GD_FLG_DEVINIT) {
                /* Get from the standard input */
                return fgetc(stdin);
@@ -314,6 +317,9 @@ int tstc(void)
                return 0;
 #endif
 
+       if (!gd->have_console)
+               return 0;
+
        if (gd->flags & GD_FLG_DEVINIT) {
                /* Test the standard input */
                return ftstc(stdin);
@@ -335,6 +341,9 @@ void putc(const char c)
                return;
 #endif
 
+       if (!gd->have_console)
+               return;
+
        if (gd->flags & GD_FLG_DEVINIT) {
                /* Send to the standard output */
                fputc(stdout, c);
@@ -356,6 +365,9 @@ void puts(const char *s)
                return;
 #endif
 
+       if (!gd->have_console)
+               return;
+
        if (gd->flags & GD_FLG_DEVINIT) {
                /* Send to the standard output */
                fputs(stdout, s);
@@ -371,6 +383,9 @@ int printf(const char *fmt, ...)
        uint i;
        char printbuffer[CONFIG_SYS_PBSIZE];
 
+       if (!gd->have_console)
+               return 0;
+
        va_start(args, fmt);
 
        /* For this to work, printbuffer must be larger than
@@ -389,6 +404,9 @@ int vprintf(const char *fmt, va_list args)
        uint i;
        char printbuffer[CONFIG_SYS_PBSIZE];
 
+       if (!gd->have_console)
+               return 0;
+
        /* For this to work, printbuffer must be larger than
         * anything we ever want to print.
         */
index c1cbe55bb923a204c76131f590365416612a5bdb..53fedd594cbcb26c2613ea59559d86f3faecc4ec 100644 (file)
@@ -396,10 +396,7 @@ static int ppc4xx_i2c_transfer(uchar chip, uint addr, int alen, uchar *buffer,
 #endif
        if ((ret = i2c_transfer(read, chip << 1, &xaddr[4 - alen], alen,
                                buffer, len)) != 0) {
-               if (gd->have_console) {
-                       printf("I2C %s: failed %d\n",
-                              read ? "read" : "write", ret);
-               }
+               printf("I2C %s: failed %d\n", read ? "read" : "write", ret);
 
                return 1;
        }
index 9b02e89e0392c975bf71879ad4a056d4dddd1d10..36c6114e3cc9e307174883e920352503d04d1948 100644 (file)
@@ -119,7 +119,6 @@ DECLARE_GLOBAL_DATA_PTR;
 
 #ifdef DEBUG_I2C
 #define PRINTD(fmt,args...)    do {    \
-       if (gd->have_console)           \
                printf (fmt ,##args);   \
        } while (0)
 #else