diff options
author | Shaun Ruffell <sruffell@digium.com> | 2010-07-26 00:30:37 +0000 |
---|---|---|
committer | Shaun Ruffell <sruffell@digium.com> | 2010-07-26 00:30:37 +0000 |
commit | c3a505d8eae4e5da94e8c5ac671a1815f7770859 (patch) | |
tree | 4dadd3fcb1b4bfddcddbd77e4cccedef9f0e4ee7 /drivers/dahdi/voicebus/voicebus.h | |
parent | 4b380bbcbb33017a3c343d4ded0e5eff2fe497a7 (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.h | 8 |
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 |