summaryrefslogtreecommitdiff
path: root/drivers/dahdi/voicebus
AgeCommit message (Collapse)Author
2009-11-07voicebus: Add function to lock the latency.Shaun Ruffell
Now that increases in the latency produce less undefined behavior on the SPI busses, provide an interface for client drivers to inform the voicebus library to not increase the latency if underruns are detected. This can speed up loads of the driver since latency bumps do not trigger a restart of the driver initialization. DAHDI-278. git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@7518 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2009-11-07voicebus: Send 'idle' buffers when the transmit descriptor underruns.Shaun Ruffell
Previously, when the host system fails to service the interrupt in a timely fashion, the transmit descriptor ring for the voicebus card would "go empty" since the interface wouldn't have another descriptor to read in. The driver only knows that it went empty, not how far behind it actually was. Therefore, the driver could just increase the latency by a millisecond and keep going waiting for another bump. Additionally, when the transmit descriptor actually goes empty, there are some cases where an in process SPI transaction to one of the modules is interrupted, which may result in corrupted module register writes on rare occassions. This now makes it possible for the voicebus drivers to coexist with some devices that periodically lock interrupts for longer than 25ms. Before this patch, the latency would constantly increase until either the modules received a corrupted frame. This patch preconfigures all the receive descriptors to send an "idle" packet that will be transmitted to the onboard modules when the host doesn't service the interrupt within (latency - 2)ms. There are now two kinds of underruns, softunderuns where the driver can detect that these idlebuffers have made it to the TX FIFO, and the normal hard underrun where the part signals a transmit descriptor unavailable interrupt. DAHDI-278. git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@7517 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2009-11-07voicebus: Use DAHDI_IRQ_SHARED instead of defining our own.Shaun Ruffell
git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@7516 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2009-11-07voicebus: Set the DMA_BIT_MASKShaun Ruffell
git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@7515 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2009-11-07voicebus: Remove sdi member from 'struct voicebus'Shaun Ruffell
This is only used during startup so we don't need to carry it around in the structure at all times. git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@7514 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2009-11-07voicebus: Remove the VB_PRINTK macro.Shaun Ruffell
Unnecessarily duplicates the dev_xxx macros. Also removes the need for the board_name member from struct voicebus. git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@7513 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2009-11-04voicebus: Increase the NLP converged threshold to 18.Shaun Ruffell
Brings in the change from r7065 that was on the team/sruffell/dahdi-linux-vpm119 branch. git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@7480 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2009-10-02Implement API update to do per-channel companding selection for VPMADT032Matthew Fredrickson
git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@7309 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2009-09-30Update echocan API so it only uses channel offset in free routineMatthew Fredrickson
git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@7284 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2009-06-26voicebus: Limit the string length of the vpm workqueue name.Shaun Ruffell
On older kernels, it is possible to cause a kernel panic if the lenght of the workqueue name is greater than 10. DAHDI-276. git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@6776 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2009-05-15voicebus: Use '&' not '|' when checking for a bit.Shaun Ruffell
git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@6628 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2009-05-15voicebus: Make the enable/disable echocan messages debug again.Shaun Ruffell
I accidentally changed to print everytime. They should only be printed if DEBUG_ECHOCAN is specified in the debug module parameter. git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@6625 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2009-05-11voicebus: Update the default vpmadt032 parameters.Shaun Ruffell
Move the echo can channel parameters into a common location for both the wcte12xp and wctdm24xxp drivers that use the voicebus module. This is intended to make it clearer which differences are required between the clients. Additionally, update the default parameters to the new recommended values. VPMADT032-37 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@6589 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2009-05-07voicebus: Create workqueue for each vpmadt032 instance.Shaun Ruffell
Depending on the system latency, the deferred work for the vpmadt032 can take up to 200ms. This change allows each vpmadt032 to use its own workqueue, and not the global system workqueue. This prevents vpm operations from blocking the main system workqueue for extended periods. This restores the behavior to the way it was before the common vpmadt032 code was moved out of the wctdm24xxp and wcte12xp drivers. DAHDI-260 voicebus-squash: Adding the wq name. git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@6572 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2009-05-07voicebus: Changing default NLP type to 'suppression'.Shaun Ruffell
The 'suppression' default for the NLP provides better echo canceling performance. Also ensures that the wctdm24xxp and wcte12xp driver use the same default values. git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@6568 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2009-05-05voicebus: Use the companding type on the span when enabling echocan.Shaun Ruffell
git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@6564 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2009-05-04Insure that vpmnlptype, vpmnlpmaxsupp, and vpmnlpthresh are set back to moduleDoug Bailey
level defaults when echo can is freed. (Previously they were zero'd out) DAHDI-257 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@6562 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2009-05-01voicebus: Need Makefile to build on 2.6.9Shaun Ruffell
DAHDI-253 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@6553 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2009-04-29echocan: Improve interface for echo cancelers.Shaun Ruffell
Echo cancelers are now able to report if they are able to automatically disable their NLP portions in the presence of tones in the audio stream. Also, the interface is changed to allow user space to just disable the NLP portion of the echo canceler. These changes improve fax and modem handling in DAHDI. This commit merges in the changes on http://svn.digium.com/svn/dahdi/linux/team/kpfleming/echocan_work Patch by: kpfleming Also contains improvements to CED tone detection. (closes issue #13286) Reported by: viniciusfontes git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@6529 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2009-04-29voicebus: Move common vpmadt032 interface into voicebus module.Shaun Ruffell
The voicebus library was previously linked into both the wcte12xp and wctdm24xxp drivers. It is now broken out into it's own module and the common parts of the vpmadt032 interface are now located in that module to reduce duplication between the wcte12xp and wctdm24xxp drivers. git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@6527 a0bf4364-ded3-4de4-8d8a-66a801d63aff