[svn-commits] sruffell: linux/trunk r7519 - /linux/trunk/drivers/dahdi/wcte12xp/base.c

SVN commits to the Digium repositories svn-commits at lists.digium.com
Fri Nov 6 18:35:48 CST 2009


Author: sruffell
Date: Fri Nov  6 18:35:42 2009
New Revision: 7519

URL: http://svnview.digium.com/svn/dahdi?view=rev&rev=7519
Log:
wcte12xp: Lock latency when loading

No longer need to restart board initialization if the latency would have
increased during initialization. DAHDI-278.

Modified:
    linux/trunk/drivers/dahdi/wcte12xp/base.c

Modified: linux/trunk/drivers/dahdi/wcte12xp/base.c
URL: http://svnview.digium.com/svn/dahdi/linux/trunk/drivers/dahdi/wcte12xp/base.c?view=diff&rev=7519&r1=7518&r2=7519
==============================================================================
--- linux/trunk/drivers/dahdi/wcte12xp/base.c (original)
+++ linux/trunk/drivers/dahdi/wcte12xp/base.c Fri Nov  6 18:35:42 2009
@@ -1733,7 +1733,6 @@
 	struct t1_desc *d = (struct t1_desc *) ent->driver_data;
 	unsigned int x;
 	int res;
-	int startinglatency;
 	unsigned int index = -1;
 
 	for (x = 0; x < sizeof(ifaces) / sizeof(ifaces[0]); x++) {
@@ -1748,7 +1747,6 @@
 		return -EIO;
 	}
 	
-retry:
 	if (!(wc = kmalloc(sizeof(*wc), GFP_KERNEL))) {
 		return -ENOMEM;
 	}
@@ -1793,8 +1791,9 @@
 	if (VOICEBUS_DEFAULT_LATENCY != latency) {
 		voicebus_set_minlatency(wc->vb, latency);
 	}
+
+	voicebus_lock_latency(wc->vb);
 	voicebus_start(wc->vb);
-	startinglatency = voicebus_current_latency(wc->vb);
 	t1_hardware_post_init(wc);
 
 	for (x = 0; x < (wc->spantype == TYPE_E1 ? 31 : 24); x++) {
@@ -1814,25 +1813,8 @@
 
 	mod_timer(&wc->timer, jiffies + HZ/5);
 	t1_software_init(wc);
-	if (voicebus_current_latency(wc->vb) > startinglatency) {
-		/* The voicebus library increased the latency during
-		 * initialization because the host wasn't able to service the
-		 * interrupts from the adapter quickly enough.  In this case,
-		 * we'll increase our latency and restart the initialization.
-		 */
-		printk(KERN_NOTICE "%s: Restarting board initialization " \
-		 "after increasing latency.\n", wc->name);
-		latency = voicebus_current_latency(wc->vb);
-		dahdi_unregister(&wc->span);
-		voicebus_release(wc->vb);
-		wc->vb = NULL;
-		free_wc(wc);
-		wc = NULL;
-		goto retry;
-	}
-
 	module_printk("Found a %s\n", wc->variety);
-
+	voicebus_unlock_latency(wc->vb);
 	return 0;
 }
 




More information about the svn-commits mailing list