[svn-commits] tzafrir: linux/trunk r4518 - /linux/trunk/drivers/dahdi/xpp/card_pri.c

SVN commits to the Digium repositories svn-commits at lists.digium.com
Wed Jul 2 10:48:37 CDT 2008


Author: tzafrir
Date: Wed Jul  2 10:48:37 2008
New Revision: 4518

URL: http://svn.digium.com/view/dahdi?view=rev&rev=4518
Log:
Only set the XSP registers from a single place.

Modified:
    linux/trunk/drivers/dahdi/xpp/card_pri.c

Modified: linux/trunk/drivers/dahdi/xpp/card_pri.c
URL: http://svn.digium.com/view/dahdi/linux/trunk/drivers/dahdi/xpp/card_pri.c?view=diff&rev=4518&r1=4517&r2=4518
==============================================================================
--- linux/trunk/drivers/dahdi/xpp/card_pri.c (original)
+++ linux/trunk/drivers/dahdi/xpp/card_pri.c Wed Jul  2 10:48:37 2008
@@ -560,6 +560,8 @@
  * Normally set by the timing parameter in /etc/dahdi/system.conf
  * If this is called by dahdi_cfg, than it's too late to change
  * dahdi sync priority (we are already registered)
+ *
+ * Also called from set_localloop()
  */
 static int set_master_mode(const char *msg, xpd_t *xpd)
 {
@@ -590,36 +592,20 @@
 	return 0;
 }
 
-static int set_localloop(const char *msg, xpd_t *xpd, bool localloop)
-{
-	struct PRI_priv_data	*priv;
-	byte			lim0 = 0;
-	byte			xsp  = 0;
+static int set_localloop(xpd_t *xpd, bool localloop)
+{
+	struct PRI_priv_data	*priv;
 
 	BUG_ON(!xpd);
 	priv = xpd->priv;
 	if(SPAN_REGISTERED(xpd)) {
-		XPD_NOTICE(xpd, "Registered as span %d. Cannot do %s(%s)\n",
-			xpd->span.spanno, __FUNCTION__, msg);
+		XPD_NOTICE(xpd, "Registered as span %d. Cannot do %s\n",
+			xpd->span.spanno, __FUNCTION__);
 		return -EBUSY;
 	}
-	lim0 |= (localloop) ? REG_LIM0_LL : 0;
-	if(priv->clock_source)
-		lim0 |=  REG_LIM0_MAS;
-	else
-		lim0 &= ~REG_LIM0_MAS;
-	if(priv->pri_protocol == PRI_PROTO_E1)
-	{
-		lim0 |= REG_LIM0_RTRS; /*  Receive termination: Integrated resistor is switched on (100 Ohm || 300 Ohm = 75 Ohm) */
-		xsp  |= REG_XSP_E_EBP | REG_XSP_E_AXS | REG_XSP_E_XSIF;
-	} else if(priv->pri_protocol == PRI_PROTO_T1) { 
-		lim0 &= ~REG_LIM0_RTRS ; /*  Receive termination: Integrated resistor is switched off (100 Ohm, no internal 300 Ohm)  */;
-		xsp  |=  REG_FMR5_T_XTM;
-	}
 	priv->local_loopback = localloop;
-	XPD_DBG(SIGNAL, xpd, "%s(%s): %s\n", __FUNCTION__, msg, (localloop) ? "LOCALLOOP" : "NO");
-	write_subunit(xpd, REG_LIM0 , lim0);
-	write_subunit(xpd, REG_XSP_E, xsp);
+	XPD_DBG(SIGNAL, xpd, "%s: %s\n", __FUNCTION__, (localloop) ? "LOCALLOOP" : "NO");
+	set_master_mode(__FUNCTION__, xpd);
 	return 0;
 }
 
@@ -1439,7 +1425,6 @@
 	char			buf[MAX_PROC_WRITE];
 	char			*p;
 	char			*tok;
-	static const char	*msg = "PROC";	/* for logs */
 	int			ret = 0;
 	bool			got_localloop = 0;
 	bool			got_nolocalloop = 0;
@@ -1495,9 +1480,9 @@
 		return -EINVAL;
 	}
 	if(got_localloop)
-		ret = set_localloop(msg, xpd, 1);
+		ret = set_localloop(xpd, 1);
 	if(got_nolocalloop)
-		ret = set_localloop(msg, xpd, 0);
+		ret = set_localloop(xpd, 0);
 	return (ret) ? ret : count;
 }
 




More information about the svn-commits mailing list