From: Paul Fulghum <paulkf@microgate.com>

Fix async internal loopback by not using enable_loopback function which
reprograms clocking and should only be used for hdlc mode.

Signed-off-by: Paul Fulghum <paulkf@microgate.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 drivers/char/synclinkmp.c |    7 +++----
 1 files changed, 3 insertions(+), 4 deletions(-)

diff -puN drivers/char/synclinkmp.c~synclinkmpc-fix-async-internal-loopback drivers/char/synclinkmp.c
--- 25/drivers/char/synclinkmp.c~synclinkmpc-fix-async-internal-loopback	Wed Sep  7 15:52:14 2005
+++ 25-akpm/drivers/char/synclinkmp.c	Wed Sep  7 15:52:14 2005
@@ -4480,11 +4480,13 @@ void async_mode(SLMP_INFO *info)
 	/* MD2, Mode Register 2
 	 *
 	 * 07..02  Reserved, must be 0
-	 * 01..00  CNCT<1..0> Channel connection, 0=normal
+	 * 01..00  CNCT<1..0> Channel connection, 00=normal 11=local loopback
 	 *
 	 * 0000 0000
 	 */
 	RegValue = 0x00;
+	if (info->params.loopback)
+		RegValue |= (BIT1 + BIT0);
 	write_reg(info, MD2, RegValue);
 
 	/* RXS, Receive clock source
@@ -4565,9 +4567,6 @@ void async_mode(SLMP_INFO *info)
 	write_reg(info, IE2, info->ie2_value);
 
 	set_rate( info, info->params.data_rate * 16 );
-
-	if (info->params.loopback)
-		enable_loopback(info,1);
 }
 
 /* Program the SCA for HDLC communications.
_