[PATCH] mpc52xx: fix early text output

STALE8072d

2 messages, 2 authors, 2004-09-15 · open the first message on its own page

[PATCH] mpc52xx: fix early text output

From: roger blofeld <hidden>
Date: 2004-09-15 14:42:01

This patch fixes early serial text output
-rb

===== arch/ppc/syslib/mpc52xx_setup.c 1.4 vs edited =====
--- 1.4/arch/ppc/syslib/mpc52xx_setup.c 2004-09-14 09:29:40 -05:00
+++ edited/arch/ppc/syslib/mpc52xx_setup.c      2004-09-15 09:13:10
-05:00
@@ -100,6 +100,14 @@
 #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)
 {
@@ -109,15 +117,10 @@
                /* 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);
+               mpc52xx_psc_putc(psc, c);
        }
+       mpc52xx_psc_putc(psc, '\r');
+       mpc52xx_psc_putc(psc, '\n');
 }
 
 #endif  /* CONFIG_SERIAL_TEXT_DEBUG */


	
		
__________________________________
Do you Yahoo!?
New and Improved Yahoo! Mail - 100MB free storage!
http://promotions.yahoo.com/new_mail 

Re: [PATCH] mpc52xx: fix early text output

From: Sylvain Munaut <hidden>
Date: 2004-09-15 19:40:29

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@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 [off-list ref]
#
# arch/ppc/syslib/mpc52xx_setup.c
#   2004/09/15 21:23:06+02:00 tnt@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 */
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help