List Info

Thread: sruffell: branch 1.4 r3805 - in /branches: 1.2/wcte12xp/ 1.4/kernel/wcte12xp/




sruffell: branch 1.4 r3805 - in /branches: 1.2/wcte12xp/ 1.4/kernel/wcte12xp/
user name
2008-02-05 17:48:25
Author: sruffell
Date: Tue Feb  5 17:48:24 2008
New Revision: 3805

URL: http://svn.digium.com/view/zaptel?view=rev&rev=3805
Log:
Changes to the wcte12xp driver.
- replace change to allow driver to recover from descriptor
  unavailable.
- module echo cancellation parameters now valid under 2.6
kernels.

Modified:
    branches/1.2/wcte12xp/base.c
    branches/1.4/kernel/wcte12xp/base.c

Modified: branches/1.2/wcte12xp/base.c
URL: htt
p://svn.digium.com/view/zaptel/branches/1.2/wcte12xp/base.c?
view=diff&rev=3805&r1=3804&r2=3805
============================================================
==================
--- branches/1.2/wcte12xp/base.c (original)
+++ branches/1.2/wcte12xp/base.c Tue Feb  5 17:48:24 2008
 -1875,6
+1875,7 
 	/* Read interrupts */
 	spin_lock(&wc->reglock);
 	ints = __t1_getctl(wc, 0x0028);
+	ints &= 0x3fef; /* Just look at the interrupt
conditions */
 
 	if (!ints) {
 		spin_unlock(&wc->reglock);
 -1887,13
+1888,18 
 
 	/* clear interrupts interrupts (we only get here if
interrupt is for us) */
 	__t1_setctl(wc, 0x0028, ints);
-	ints &= wc->intmask;
 
 	if (ints & 0x00000041) { 
 		do {
 			res = t1_check_descriptor(wc, 0);
 			res |= t1_check_descriptor(wc, 1);
 		} while(res);
+	}
+	if (ints & 0x0000a3ae) {
+		/* This will allow us to recover if interrupts are held
for a long period of time */
+		debug_printk(1, "Abnormal interrupt %08x
detectedn", ints);
+		__t1_setctl(wc, 0x0008, 0x00000000);
+		__t1_setctl(wc, 0x0010, 0x00000000);
 	}
 	spin_unlock(&wc->reglock);
 
 -2093,6
+2099,9 
 module_param(vpmsupport, int, S_IRUGO | S_IWUSR);
 module_param(vpmdtmfsupport, int, S_IRUGO | S_IWUSR);
 module_param(vpmtsisupport, int, S_IRUGO | S_IWUSR);
+module_param(vpmnlptype, int, S_IRUGO | S_IWUSR);
+module_param(vpmnlpthresh, int, S_IRUGO | S_IWUSR);
+module_param(vpmnlpmaxsupp, int, S_IRUGO | S_IWUSR);
 #endif
 #else
 MODULE_PARM(debug, "i");

Modified: branches/1.4/kernel/wcte12xp/base.c
URL: http://svn.digium.com/view/zaptel/branches/1.4/kernel/wc
te12xp/base.c?view=diff&rev=3805&r1=3804&r2=3805

============================================================
==================
--- branches/1.4/kernel/wcte12xp/base.c (original)
+++ branches/1.4/kernel/wcte12xp/base.c Tue Feb  5 17:48:24
2008
 -1898,6
+1898,7 
 	/* Read interrupts */
 	spin_lock(&wc->reglock);
 	ints = __t1_getctl(wc, 0x0028);
+	ints &= 0x3fef; /* Just look at the interrupt
conditions */
 
 	if (!ints) {
 		spin_unlock(&wc->reglock);
 -1910,13
+1911,19 
 
 	/* clear interrupts interrupts (we only get here if
interrupt is for us) */
 	__t1_setctl(wc, 0x0028, ints);
-	ints &= wc->intmask;
 
 	if (ints & 0x00000041) { 
 		do {
 			res = t1_check_descriptor(wc, 0);
 			res |= t1_check_descriptor(wc, 1);
 		} while(res);
+	}
+
+	if (ints & 0x0000a3ae) {
+		/* This will allow us to recover if interrupts are held
for a long period of time */
+		debug_printk(1, "Abnormal interrupt %08x
detectedn", ints);
+		__t1_setctl(wc, 0x0008, 0x00000000);
+		__t1_setctl(wc, 0x0010, 0x00000000);
 	}
 	spin_unlock(&wc->reglock);
 
 -2114,6
+2121,9 
 module_param(vpmsupport, int, S_IRUGO | S_IWUSR);
 module_param(vpmdtmfsupport, int, S_IRUGO | S_IWUSR);
 module_param(vpmtsisupport, int, S_IRUGO | S_IWUSR);
+module_param(vpmnlptype, int, S_IRUGO | S_IWUSR);
+module_param(vpmnlpthresh, int, S_IRUGO | S_IWUSR);
+module_param(vpmnlpmaxsupp, int, S_IRUGO | S_IWUSR);
 #endif
 #else
 MODULE_PARM(debug, "i");


_______________________________________________
--Bandwidth and Colocation Provided by http://www.api-digital.c
om--

zaptel-commits mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/zaptel-commits

[1]

about | contact  Other archives ( Real Estate discussion Medical topics )