[zaptel-commits] mattf: branch 1.2 r2857 - in /branches/1.2: wctdm24xxp/base.c wcte12xp.c
SVN commits to the Zaptel project
zaptel-commits at lists.digium.com
Thu Aug 16 15:02:59 CDT 2007
Author: mattf
Date: Thu Aug 16 15:02:58 2007
New Revision: 2857
URL: http://svn.digium.com/view/zaptel?view=rev&rev=2857
Log:
Fix for when voicebus based cards stop taking interrupts on some systems
Modified:
branches/1.2/wctdm24xxp/base.c
branches/1.2/wcte12xp.c
Modified: branches/1.2/wctdm24xxp/base.c
URL: http://svn.digium.com/view/zaptel/branches/1.2/wctdm24xxp/base.c?view=diff&rev=2857&r1=2856&r2=2857
==============================================================================
--- branches/1.2/wctdm24xxp/base.c (original)
+++ branches/1.2/wctdm24xxp/base.c Thu Aug 16 15:02:58 2007
@@ -1554,6 +1554,15 @@
wctdm_setctl(wc, 0x0008, 0x00000000);
#endif
}
+
+ if (ints & 0x0000a3ae) {
+ /* This will allow us to recover if interrupts are held for a long period of time */
+ if (debug & DEBUG_CARD)
+ printk("Abnormal interrupt %08x detected\n", ints);
+ wctdm_setctl(wc, 0x0008, 0x00000000);
+ wctdm_setctl(wc, 0x0010, 0x00000000);
+ }
+
#ifdef LINUX26
return IRQ_RETVAL(1);
#endif
@@ -3201,8 +3210,8 @@
for (x=0;x<10;x++)
schluffen(&wc->regq);
printk("After resetting the modules...\n");
- /* Switch to caring only about receive interrupts */
- wctdm_setintmask(wc, 0x00010040);
+
+ wctdm_setintmask(wc, 0x0001f7fe);
/* Make sure all units go into daisy chain mode */
spin_lock_irqsave(&wc->reglock, flags);
Modified: branches/1.2/wcte12xp.c
URL: http://svn.digium.com/view/zaptel/branches/1.2/wcte12xp.c?view=diff&rev=2857&r1=2856&r2=2857
==============================================================================
--- branches/1.2/wcte12xp.c (original)
+++ branches/1.2/wcte12xp.c Thu Aug 16 15:02:58 2007
@@ -728,7 +728,7 @@
for (x = 0; x < 10; x++)
schluffen(&wc->regq);
/* Switch to caring only about receive interrupts */
- t1_setintmask(wc, 0x00010040);
+ t1_setintmask(wc, 0x0001f7fe);
}
static void t1_stop_dma(struct t1 *wc)
@@ -1861,6 +1861,13 @@
} 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);
+ }
+
#ifdef LINUX26
return IRQ_RETVAL(1);
#endif
More information about the zaptel-commits
mailing list