summaryrefslogtreecommitdiff
path: root/drivers/dahdi/wctdm24xxp
AgeCommit message (Collapse)Author
2010-09-23wcte12xp, wctdm24xxp: Convert vbb cache from kmem_cache to dma_pool.Shaun Ruffell
The voicebus interface constantly uses the same buffers for moving data to/from the card. A fixed pool has less overhead in this case than constantly mapping/unmapping the kmem_cache_alloced buffers. Saves about ~2.608 us for each run of vb_isr on a 2.40 GHz Xeon test machine. Signed-off-by: Shaun Ruffell <sruffell@digium.com> Acked-by: Russ Meyerriecks <rmeyerriecks@digium.com> git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@9402 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-09-21wctdm24xxp: Add optional FXO digital loopback if DEBUG is defined.Shaun Ruffell
This module parameter will allow patgen/pattest to be used only on FXO ports. *ALL* FXO ports will be placed in digital loopback mode when set. The current intent is for this to be removed as an optional module parameter when there is a channel by channel representation in sysfs. Otherwise, a new IOCTL would have to be defined and a tool written in order to support this. DAHDI-696. Signed-off-by: Shaun Ruffell <sruffell@digium.com> git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@9391 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-09-01wctdm24xxp: Minor spacing change on module parameter descriptions.Shaun Ruffell
Primarily to add a space between 'use' and 'the' in the alawoverride description. Signed-off-by: Shaun Ruffell <sruffell@digium.com> git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@9245 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-08-19dahdi: move 'dahdi_is_digital_span' back into wctdm24xp driver.Shaun Ruffell
Older kernels do not like the 'bool' type and I cannot just add it into include/dahdi/kernel.h without compile messages in the xpp driver where bool is defined directly. Since the wctdm24xxp driver is the only place using that function, I just moved it back there for now. This fixes a regression introduced in 9130. git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@9167 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-08-17wcte12xp, wctdm24xxp: Add compile time option CONFIG_VOICEBUS_ECREFERENCE.Shaun Ruffell
Add compile time option to improve the reference signal provided to software echo cancelers. The intent here is for this functionality to become the default behavior but more testing and work on the edge cases is needed. It's being brought in now as a compile time option since there have been reports that it helps in some environments. Instead of using two buffers, which means that at best we're two milliseconds behind, use a circular buffer where audio data is written on the transmit side and read on the receive path. In this way high latency values will not interfere with the operation of software echo cancelers. DAHDI-291. DAHDI-387. This work was originally on: http://svn.asterisk.org/svn/dahdi/linux/team/sruffell/improved_ecreference@9143 and includes a generic kfifo replacement by Matt Fredrickson. git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@9144 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-08-16wctdm24xxp: Set the companding mode on the analog ports in fixup.Russ Meyerriecks
Fixes a regression from 9101 'wctdm24xxp: Added "auto" companding option' where the analog modules were not defaulted to alaw properly when a digital module is on an Hx8. This could result in very poor audio since the modules were providing ulaw data, but dahdi-base believed the audio was in alaw when converting to signed linear. git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@9143 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-08-13wctdm24xxp: Set the 'spantype' for the digital spans.Shaun Ruffell
Defaults to "TE" but can be set by software to "NT" by dahdi_cfg. Signed-off-by: Shaun Ruffell <sruffell@digium.com> git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@9132 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-08-13wctdm24xxp: 'is_span_digital' -> 'dahdi_is_span_digital'Shaun Ruffell
Signed-off-by: Shaun Ruffell <sruffell@digium.com> git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@9131 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-08-06wctdm24xxp: Added "auto" companding optionRuss Meyerriecks
Added the "auto" option for the module parameter "companding". In auto mode its left up to each card to decide what companding mode it should be in. If a BRI module is installed, it set everything to alaw; ulaw is selected if no BRI module is installed. Also fixed a bug where forcing companding one way or the other wasn't affecting the BRI modules. dahdi-673 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@9101 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-08-06wctdm24xp: Replaced alawoverride with compandingRuss Meyerriecks
Added the module parameter "companding" to eventually replace the current alawoverride parameter. Added some deprecated messages so current users will know to move over before we remove it entirely. dahdi-673 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@9100 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-08-04wctdm24xxp: 'struct dahdi_span' is already embedded in the 'struct wctdm_span'.Shaun Ruffell
We cannot also embed it in struct b400m_span structure and expect container_of to work. This fixes a regression introduced in r8984. git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@9087 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-07-30wctdm24xxp: Prevent FXS Proslic staying in "Forward/Reverse OnHookTransfer" ↵Alec L Davis
during call [One-liner summary of changes] Now that the 3 second click after answering the call on an FXS port has been fixed, the side effect is that the Proslic during a call, still has the audio signal paths still powered on. Reading the Si3215 specs it reads that an extra ~20mA is consumed while in OHT mode. (closes issue #17764) Reported by: alecdavis Patches: wctdm24xxp_fxs_offhook.diff.txt uploaded by alecdavis (license 585) Tested by: alecdavis git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@9070 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-07-29SLIC_LF_OPPENDING confict between wctdm_proslic_recheck_sanity() and ↵Alec L Davis
set_lasttxhook_interruptible() Problem: 'wctdm_proslic_recheck_sanity()' is executed (4 times??) every ~256ms which monitors and clears the SLIC_LF_OPPENDING on fxs->lasttxhook when the LF state has been reached. 'set_lasttxhook_interruptible()' times out after 100ms waiting from the previous write to the SLIC_LF register, by waiting for SLIC_LF_OPPENDING to be cleared, thus the write will fail. Solution: adds wctdm_proslic_check_oppending which does the monitoring and clearing of SLIC_LF_OPPENDING, which is execute every 1ms. It also if the correct state is not reached within 100ms, resends the lasttxhook state. (closes issue #17724) Reported by: alecdavis Patches: wctdm24xxp_fxs_answer.diff4.txt uploaded by alecdavis (license 585) Tested by: alecdavis, sruffell git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@9063 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-07-29wctdm24xxp: reference B400Ms as BRI, correct a module alias, make the module ↵Kinsey Moore
description more accurate git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@9055 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-07-29wctdm24xxp: only allow B400M modules on hybrid cardsKinsey Moore
git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@9054 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-07-29wctdm24xxp: correct references to "wildcard" and display the number of BRI ↵Kinsey Moore
spans and analog channels after detection git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@9053 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-07-29wctdm24xxp: don't report about VPM100s if none are present and warn the user ↵Kinsey Moore
when flashing firmware git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@9050 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-07-26dahdi: Move the 'owner' field from dahdi_span to dahdi_span_ops.Shaun Ruffell
One more thing that can be moved out of the per-span structure. git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@8986 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-07-26dahdi: Move the callbacks in dahdi_span into its own structure.Shaun Ruffell
Part of preparation for adding additional callbacks to allow board drivers to advertise and support gathering pre-echocan data from hardware echocans. git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@8985 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-07-26dahdi: Remove the 'pvt' member from dahdi_span.Shaun Ruffell
The vast majority of board drivers already keep the dahdi_span structure in a driver specific structure. The others were easily converted. This way board drivers can use the container_of macro to find what was previously pointed to by the "pvt" member of the span. One less thing to think about in the span structure. git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@8984 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-07-26wcte12xp, wctdm24xxp: spin_lock_bh -> spin_lock_irqsaveShaun Ruffell
Will add an option to allow calling the deferred processing callback directly in the interrupt handler. It appears there are some systems which still are unable to process their tasklets in a timely fashion, especially if they get pushed out to the ksoftirqd daemon. git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@8981 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-07-26wcte12xp, wctdm24xxp: Add shutdown handlers.Shaun Ruffell
Make the drivers a little more kexec friendly. git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@8979 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-05-25wctdm24xxp: Do not access memory after we free it.Shaun Ruffell
git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@8689 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-05-17wctdm24xxp: dev_notice -> dev_infoShaun Ruffell
Modules that aren't installed should show at the same level as modules that are installed. It could be confusing if the console log level is set to 3 and only messages about which ports do not have any modules installed show up on the console. git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@8642 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-04-26wcte12xp, wctdm24xxp: Add vpm_firmware_version sysfs attribute.Shaun Ruffell
Currently only exported if CONFIG_VOICEBUS_SYSFS is defined in drivers/dahdi/voicebus.h. Reading from the 'vpm_firmware_version' attribute will poll the firmware on the VPMADT032 for it's current version. git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@8574 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-04-03wcte12xp, wtdm24xxp: Make sure the writes are retried.Shaun Ruffell
r8454 and r8460 introduced a change where writes are not retried when other module/framer commands are retried. This was an error and wasn't what was actually under test. This commit restores the behavior in wctdm24xxp and makes sure the vpm writes are retried in the wcte12xp. git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@8461 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-04-03wcte12xp, wctdm24xxp: Close a memory leak when processing VPM commands.Shaun Ruffell
Closes a memory leak when processing the VPM write commands introduced in r8454. git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@8460 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-04-03wcte12xp: Resend both framer and VPM commands when reads may have been lost.Shaun Ruffell
Latency conditions could cause the driver to misconfigure the VPM which would result in one way audio. DAHDI-572. git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@8454 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-03-25wctdm24xxp: Add an 'hx8' mode for buffer processing.Shaun Ruffell
The Hx8 series cards do not need any idle buffers and idle_buffers complicate processing when using the timing_cable. This change adds another mode of operation for the voicebus layer for the Hx8 cards that operates without the idle buffers. git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@8431 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-03-22wctdm24xxp: Make sure we're really stopped before deleting the channels.Shaun Ruffell
git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@8376 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-03-22wcte12xp, wctdm24xxp: Do not keep individual free lists for VPM commands.Shaun Ruffell
git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@8375 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-03-02Revert commit 8096. Causes register problems on XHFC SPI interfaces.Matthew Fredrickson
git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@8220 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-03-01wctdm24xxp: Mark the robust module parameter as DEBUG only.Shaun Ruffell
In testing this option didn't appear to function properly. Just mark it debug only so it's not part of the "official" interface in case there are some users of it out there that I'm not aware of. DAHDI-267. git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@8203 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-03-01wctdm24xxp, wcte12xp: Add optional module parameter to set the maximum latency.Shaun Ruffell
Setting the maximum latency can be useful if you have a system event that normally causes a latency increase, but you would rather have a break in the audio or frame slip, then let the latency grow to the current default maximum which is 25ms. DAHDI-278. git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@8198 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-03-01wcmtd24xxp, wcte12xp: Make vpmsupport module parameter read only.Shaun Ruffell
The vpmsupport module parameter (and a few other ones) do not do anything if they are changed after the driver is first loaded. Therefore, let's make these module parameters read only at runtime. git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@8188 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-03-01wctdm24xxp: Automatically fetch Hx8 firmware.Shaun Ruffell
Basically, fetch the Hx8 firmware like many of the other firmwares. git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@8171 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-02-26wctdm24xxp: Include <stdbool.h> directly.Shaun Ruffell
Reported by: seanbright git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@8135 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-02-26wctdm24xxp: Do not assume CONFIG_HZ==100 for delays.Shaun Ruffell
git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@8124 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-02-26wctdm24xxp: Add support for Hx8 series cards.Shaun Ruffell
The Hx8 series cards support BRI modules in addition to analog modules. git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@8123 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-02-26wctdm24xxp, wcte12xp: Updating the interface for the VPMADT032.Shaun Ruffell
This description needs to be filled in more. git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@8121 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-02-25wctdm24xxp: Partially unroll the TDM data extraction / insertion.Shaun Ruffell
Saves about 10us each interrupt on 3.06 GHz Xeon. git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@8097 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-02-25wctdm24xxp: Only use the first three EFRAMES for module commands.Shaun Ruffell
On a 2.6.32.7 debug kernel with a TDM2400, this can save up to 30ms every second of processing time without any appreciable impact on runtime performance since most of the commands to the modules during normal operation are reads, and therefore only one would be in each SFRAME anyway. The impact of this change is less for TDM410 and TDM800 since they already limit the number of modules that they look for queued commands for. There is still more room for optimizing module command handling. git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@8096 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-02-25wctdm24xxp, wcte12xp: Buffer handling improvements.Shaun Ruffell
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
2010-02-25wctdm24xxp: Provide option to initialize boards in parallel on kernels > 2.6.30Shaun Ruffell
The 2.6.30 kernel provides support for asynchronous initialization. If running on a kernel that supports this feature, let's add an option to use it in order to speed up driver load times. Keep it off by default. git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@8094 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-02-10wctdm24xxp: make sure we show which card is displaying the message.Shaun Ruffell
NOTE: This change has formatting problems that I'll fix in a later commit, I do not want to cause myself too much merge pain right here. git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@8024 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-02-08dahdi: Update the Digium copyright on files changed since 2010-01-01.Shaun Ruffell
git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@8008 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-02-08wctdm24xxp, wcte12xp: Abort the search for modules if killed.Shaun Ruffell
If the user kills the modprobe process that is initializing the modules, exit as soon as possible and do not look for any other modules. git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@8007 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-02-08wcte12xp, wctdm24xxp: Declare static symbols that aren't externally referenced.Shaun Ruffell
git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@8005 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-02-03wctdm24xxp: Add back in 'static' for ACIM2TISS as well.Shaun Ruffell
Acidentally removed... git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@7985 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2010-02-03wctdm24xxp: inadvertently removed 'static' from FXO_ADDRSShaun Ruffell
git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@7984 a0bf4364-ded3-4de4-8d8a-66a801d63aff