[PATCH] mpc52xx: fix early text output

Sylvain Munaut tnt at 246tNt.com
Thu Sep 16 05:41:28 EST 2004


Hi Roger,

roger blofeld wrote:

>This patch fixes early serial text output
>-rb
>  
>
Thanks for pointing that out. The output is nicer ;)

However, I would leave the test to add a \r in front of a \n.
Even if it doesn't happen in current code, someone may use it (I know I 
did at somepoint in the debug ... )

Applied to my public tree. I'll post it as [PATCH 10/9] in the group of 
updates I'm trying to push upstream.


    Sylvain


# This is a BitKeeper generated diff -Nru style patch.
#
# ChangeSet
#   2004/09/15 21:23:46+02:00 tnt at 246tNt.com
#   ppc: Fix output of low-level serial debug on Freescale MPC52xx
#  
#   Thanks to Roger Blofeld for pointing that out.
#  
#   Signed-off-by: Sylvain Munaut <tnt at 246tNt.com>
#
# arch/ppc/syslib/mpc52xx_setup.c
#   2004/09/15 21:23:06+02:00 tnt at 246tNt.com +14 -10
#   ppc: Fix output of low-level serial debug on Freescale MPC52xx
#
diff -Nru a/arch/ppc/syslib/mpc52xx_setup.c 
b/arch/ppc/syslib/mpc52xx_setup.c
--- a/arch/ppc/syslib/mpc52xx_setup.c   2004-09-15 21:24:24 +02:00
+++ b/arch/ppc/syslib/mpc52xx_setup.c   2004-09-15 21:24:24 +02:00
@@ -100,24 +100,28 @@
 #error "mpc52xx PSC for console not selected"
 #endif
 
+static void
+mpc52xx_psc_putc(struct mpc52xx_psc * psc, unsigned char c)
+{
+       while (!(in_be16(&psc->mpc52xx_psc_status) &
+                MPC52xx_PSC_SR_TXRDY));
+       out_8(&psc->mpc52xx_psc_buffer_8, c);
+}
+
 void
 mpc52xx_progress(char *s, unsigned short hex)
 {
        struct mpc52xx_psc *psc = (struct mpc52xx_psc *)MPC52xx_CONSOLE;
        char c;
 
-               /* Don't we need to disable serial interrupts ? */
-      
        while ((c = *s++) != 0) {
-               if (c == '\n') {
-                       while (!(in_be16(&psc->mpc52xx_psc_status) &
-                                MPC52xx_PSC_SR_TXRDY)) ;
-                       out_8(&psc->mpc52xx_psc_buffer_8, '\r');
-               }
-               while (!(in_be16(&psc->mpc52xx_psc_status) &
-                        MPC52xx_PSC_SR_TXRDY)) ;
-               out_8(&psc->mpc52xx_psc_buffer_8, c);
+               if (c == '\n')
+                       mpc52xx_psc_putc(psc, '\r');
+               mpc52xx_psc_putc(psc, c);
        }
+      
+       mpc52xx_psc_putc(psc, '\r');
+       mpc52xx_psc_putc(psc, '\n');
 }
 
 #endif  /* CONFIG_SERIAL_TEXT_DEBUG */



More information about the Linuxppc-dev mailing list