[zaptel-commits] sruffell: branch 1.4 r3805 - in /branches: 1.2/wcte12xp/ 1.4/kernel/wcte12xp/
SVN commits to the Zaptel project
zaptel-commits at lists.digium.com
Tue Feb 5 17:48:25 CST 2008
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: http://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 detected\n", 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/wcte12xp/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 detected\n", 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");
More information about the zaptel-commits
mailing list