[patch] synclinkmp.c fix async internal loopback
From: Paul Fulghum <[email protected]>
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 <[email protected]>
--- linux-2.6.13/drivers/char/synclinkmp.c 2005-08-28 18:41:01.000000000 -0500
+++ linux-2.6.13-mg/drivers/char/synclinkmp.c 2005-09-07 12:28:21.000000000 -0500
@@ -4489,11 +4489,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
@@ -4574,9 +4576,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.