summaryrefslogtreecommitdiff
path: root/drivers/dahdi/voicebus/voicebus.h
diff options
context:
space:
mode:
authorShaun Ruffell <sruffell@digium.com>2010-07-26 00:30:37 +0000
committerShaun Ruffell <sruffell@digium.com>2010-07-26 00:30:37 +0000
commitc3a505d8eae4e5da94e8c5ac671a1815f7770859 (patch)
tree4dadd3fcb1b4bfddcddbd77e4cccedef9f0e4ee7 /drivers/dahdi/voicebus/voicebus.h
parent4b380bbcbb33017a3c343d4ded0e5eff2fe497a7 (diff)
wcte12xp, wctdm24xxp: Return buffer processing to interrupt handler.
In revision 8095, I had moved most of the buffer processing out of the interrupt handler and into a tasklet. The intended result was to enable multiple cards to interleave with one another. But once again I was bitten by the fact that there are some systems that for one reason or another do not process their tasklets in a timely enough manner for the real-time nature of TDM processing. This commit moves this processing back into the interrupt handler by default. It also limits the number of frames that the interrupt handler will process at any given time which appears to achieve the same intended result. (closes issue #17289) Tested by: alecdavis git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@8982 a0bf4364-ded3-4de4-8d8a-66a801d63aff
Diffstat (limited to 'drivers/dahdi/voicebus/voicebus.h')
-rw-r--r--drivers/dahdi/voicebus/voicebus.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/dahdi/voicebus/voicebus.h b/drivers/dahdi/voicebus/voicebus.h
index 37b9271..6c67f15 100644
--- a/drivers/dahdi/voicebus/voicebus.h
+++ b/drivers/dahdi/voicebus/voicebus.h
@@ -58,6 +58,10 @@
/* Define this in order to create a debugging network interface. */
#undef VOICEBUS_NET_DEBUG
+/* Define this to only run the processing in an interrupt handler
+ * (and not tasklet). */
+#define CONFIG_VOICEBUS_INTERRUPT
+
struct voicebus;
struct vbb {
@@ -123,6 +127,10 @@ struct voicebus {
struct tasklet_struct tasklet;
enum voicebus_mode mode;
+#if defined(CONFIG_VOICEBUS_INTERRUPT)
+ atomic_t deferred_disabled_count;
+#endif
+
#if defined(CONFIG_VOICEBUS_TIMER)
struct timer_list timer;
#endif