From 36b4f0072fd8f20a7b3f46f917b7d5af86fceb7b Mon Sep 17 00:00:00 2001 From: Shaun Ruffell Date: Thu, 25 Feb 2010 17:33:58 +0000 Subject: wctdm24xxp, wcte12xp: Buffer handling improvements. This patch moves the majority of the buffer processing for the voicebus based cards out of the interrupt handler and into a tasklet. When multiple cards are running on the same CPU, and there was a latency condition that would cause them to get behind, this now allows the tasklet to limit how many buffers are processed on each card before giving the other card a chance to start working on it's backlog. Additionally, when the card detects a hard under run, instead of trying to fix it up in the handling routine, it will now reschedule a work item that will completely reset the descriptor rings. git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@8095 a0bf4364-ded3-4de4-8d8a-66a801d63aff --- drivers/dahdi/voicebus/GpakCust.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'drivers/dahdi/voicebus/GpakCust.c') diff --git a/drivers/dahdi/voicebus/GpakCust.c b/drivers/dahdi/voicebus/GpakCust.c index 7a06e55..0609f19 100644 --- a/drivers/dahdi/voicebus/GpakCust.c +++ b/drivers/dahdi/voicebus/GpakCust.c @@ -751,7 +751,8 @@ void gpakReadDspMemory( vpmadt032_io_wait(vpm); if ( NumWords < VPM150M_MAX_COMMANDS ) { - struct vpmadt032_cmd *cmds[VPM150M_MAX_COMMANDS] = {NULL}; + struct vpmadt032_cmd *cmds[VPM150M_MAX_COMMANDS]; + memset(cmds, 0, sizeof(cmds)); vpmadt032_setpage(vpm, DspAddress >> 16); DspAddress &= 0xffff; for (i=0; i < NumWords; ++i) { -- cgit v1.2.3