summaryrefslogtreecommitdiff
path: root/drivers
AgeCommit message (Collapse)Author
2012-03-16xpp: '%d' -> '%lu' when displaying module_refcount on kernel versions >= 3.3svn_2.4Shaun Ruffell
Upstream commit bd77c047 "module: struct module_ref should contains long fields" changed the return of module_refcount from int to unsigned long. This change eliminates a warning from the string format specifier. Signed-off-by: Shaun Ruffell <sruffell@digium.com> Acked-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=10485 Conflicts: drivers/dahdi/xpp/xproto.c git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@10533 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2012-03-16xpp: Use 'bool' type for boolean module parameters on kernel versions >= 2.6.31.Shaun Ruffell
Eliminates warnings that are a result of upstream commit 72db395ffa "module_param: check that bool parameters really are bool." Signed-off-by: Shaun Ruffell <sruffell@digium.com> Acked-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=10484 Conflicts: drivers/dahdi/xpp/xpd.h git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@10532 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2012-03-16wctc4xxp: Replace 'ndo_set_multicast_list' with 'set_rx_mode'Shaun Ruffell
The ndo_set_multicast_list callback was removed in b81693d9, which was first released in Linux Kernel 3.2-rc1 Signed-off-by: Shaun Ruffell <sruffell@digium.com> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=10360 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@10531 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2012-03-16dahdi: #include <linux/module.h> in dahdi/kernel.h and GpakCust.hShaun Ruffell
Commit de47725, first released in 3.2-rc1 removed module.h from some kernel headers. Include it explicitly now. Resolves compilation errors like: error: implicit declaration of function 'try_module_get' error: 'THIS_MODULE' undeclared (first use in this function) error: implicit declaration of function 'module_put' Signed-off-by: Shaun Ruffell <sruffell@digium.com> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=10361 Conflicts: include/dahdi/kernel.h git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@10530 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-10-12wct4xxp: Fix condition where hardware echo canceler erroneously mutes DTMF.Shaun Ruffell
Commit r9750 "wct4xxp: Reduce the memory footprint of the hardware echocanceler.", as part of reducing the non-pageable memory required to support the VPMOCT064 and VPMOCT128, disabled caching of some hardware echocan registers. This resulted in more physical reads to the echo canceler. These new read transactions exposed an existing issue where sometimes reads could be turned into writes which put a channel into an unintended state preventing Asterisk from detecting any DTMF. This issue is resolved by ensuring that the write signal to the Octasic part is explicitly cleared between when the address is presented on the bus and when the read and chip select signals are asserted. The cost is an increase in the average time to enable / disable echo cancellation by about 5 us on one Intel Xeon X3220 test machine (~250ns increase per read from the Octasic part and 20 reads to enable / disable a channel). This commit resolves a behavioral regression first introduced in 2.5.0 and 2.4.1 which could take many calls before revealing itself. This change only affects cards with a VPMOCT128 or VPMOCT064 installed. Signed-off-by: Shaun Ruffell <sruffell@digium.com> Acked-by: Doug Bailey <dbailey@digium.com> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=10220 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@10224 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-10-12wctc4xxp: Allow G723 SID frames to pass to the hardware decoder.Shaun Ruffell
The driver has, until now, dropped G723 SID frames even though the firmware on the TC400/TCE400 can handle them. Now let them on through. Reported-and-Tested-by: Angel Carhuas <acarhuas@colinanet.com> Signed-off-by: Shaun Ruffell <sruffell@digium.com> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=10218 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@10223 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-10-12wct4xxp: Bug in timing cable with different span density cardsShaun Ruffell
The logic loops through the static cards[] array to determine timing, but the subloop was based off the current card's numspans member. This could cause a null dereference in the case where two cards of different span densities were connected via timing cables. Reported-by: Doug Bailey <dbailey@digium.com> Signed-off-by: Russ Meyerriecks <rmeyerriecks@digium.com> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=10140 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@10222 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-08-28xpp: FXS: new 2+6 module has no digital I/O portsTzafrir Cohen
This module is recognized via subtype==4 Signed-off-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com> git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@10156 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-08-11dahdi_dynamic: Call dahdi_receive in rx packet handler.Shaun Ruffell
Currently dahdi_receive is called on all channels in the context of the master dynamic span. If one span (not the master) receive two packets before the master span received a packet, the older packet on the dynamic span would end up lost because the "readchunk" for the channels would be overwritten by the new packet. DAHLIN-245 Signed-off-by: Wagner Gegler <wagner@aligera.com.br> (License #6268) Changed dahdi_ec_chunk to dahdi_ec_span. Signed-off-by: Shaun Ruffell <sruffell@digium.com> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=10110 Conflicts: drivers/dahdi/dahdi_dynamic.c git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@10113 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-08-11wctc4xxp, wcte12xp, wctdm24xxp: Remove check for HAVE_NETDEV_PRIVShaun Ruffell
DAHDI currently supports kernels >= 2.6.9. netdev_priv() has been in the mainline kernel since versions 2.6.6 so it's available in all the supported kernels. This change is needed to compile against the 3.1 kernel. Signed-off-by: Shaun Ruffell <sruffell@digium.com> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=10096 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@10112 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-08-11oct612x: Increase the size of some of the instance variables.Shaun Ruffell
Revision 9750 "wct4xxp: Reduce the memory footprint of the hardware echocanceler" reduced the number of bits used to store some structure members. Some of the new field lengths were unable to store all the possible values the API as used assigned to the fields, resulting in channels never entering power down mode when they were disabled like they were previously. The change for byEchoOperationMode was found in testing the operation of the VPMOCT032 which currently uses the same code. The others were done via a review of the API doc. This change represents negligable risk and contains no logic changes. It only increases the memory footprint of the API instance in the kernel. Signed-off-by: Doug Bailey <dbailey@digium.com> Acked-by: Shaun Ruffell <sruffell@digium.com> Acked-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=10060 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@10111 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-07-27wctc4xxp: Cleanup in-flight commands when halting due to hardware error.Shaun Ruffell
On one system I was seeing the board reset in the middle of a transaction. Any commands that were on the response list when this would happen would never be completed and the process would then be stuck in an uninterruptible sleep. This change also prevents the driver from sleeping in timer context, which would result in a kernel panic. This change at least lets an error message propogate back to the user. DAHDI-880 Signed-off-by: Shaun Ruffell <sruffell@digium.com> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=10082 Conflicts: drivers/dahdi/wctc4xxp/base.c git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@10084 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-07-22wcb4xxp: Prevent null pointer dereference on spanconfigShaun Ruffell
In the rare case where spanconfig is called while there is pending data on the hdlc channel, the hdlc_getbuf interrupt could try to read from the hdlc buffer before the channel was fully setup. This could potentially result in a null pointer dereference. This condition has existed since the creation of the wcb4xxp driver. Signed-off-by: Russ Meyerriecks <rmeyerriecks@digium.com> Signed-off-by: Shaun Ruffell <sruffell@digium.com> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=10079 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@10080 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-07-19wcte12xp: Close a potential race on driver unload.Shaun Ruffell
The shutdown logic requires that all CPUs see that the INITIALIZED bit has been cleared. Otherwise it may be possible for the workqueue to run after the hardware resources have been released. Signed-off-by: Shaun Ruffell <sruffell@digium.com> Acked-by: Russ Meyerriecks <rmeyerriecks@digium.com> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=10047 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@10049 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-06-29wctdm24xxp: Ensure battery drops on FXS hangups honor the channel otimer.Shaun Ruffell
If an FXS port is configured to use kewl start signalling, when the FXS port is "hungup" it should drop battery for 500ms so that any attached devices can detect that the remote side has disconnected. The wctdm24xxp driver since version 2.4.0 was only dropping battery for ~5-10 ms because it would set "open" on the line, but then the next time it read the line feed register state, it was setting the LINE feed register to the idle state. This change checks if the line is forced open before setting the FXS port back "onhook" so as to not turn on battery prematurely. This fixes a regression introduced in r9070 "wctdm24xxp: Prevent FXS Proslic staying in "Forward/Reverse OnHookTransfer...". DAHDI-849. Checking for open on the line feed registered was originally suggested by Alec Davis. Signed-off-by: Shaun Ruffell <sruffell@digium.com> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=10002 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@10005 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-06-29dahdi: Fix compilation on Linux 2.6.26 w/CONFIG_DAHDI_NET.Shaun Ruffell
The hdlc_stats function was removed from the mainline kernel in commit 198191c4a7ce4daba379608fb38b9bc5a4eedc61 [1] which was first released in linux 2.6.27. [1] http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=198191c4a7ce4 (closes issue #19354) Reported by: biohumanoid Signed-off-by: Shaun Ruffell <sruffell@digium.com> Acked-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9934 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@10004 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-05-31xpp: empty labels are not duplicateTzafrir Cohen
Some older Asttribanks had an empty label string. They should be ignored when testing for a duplicate label at device probe time. While we're at it, reduce panic level in the notice. Signed-off-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com> git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9926 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-05-27Move test for DEFINE_SPINLOCK into include/dahdi/kernel.hShaun Ruffell
The check for DEFINE_SPINLOCK was spread throughout the source tree. If not defined we can just define it in inlucde/dahdi/kernel.h. Now include/dahdi/kernel.h is the only place that references SPIN_LOCK_UNLOCKED (which breaks lockdep checking if DEFINE_SPINLOCK is otherwise defined in the kernel). Signed-off-by: Shaun Ruffell <sruffell@digium.com> Acked-by: Kinsey Moore <kmoore@digium.com> Acked-by: Russ Meyerriecks <rmeyerriecks@digium.com> Acked-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com> Review: https://reviewboard.asterisk.org/r/940/ Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9411 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9924 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-05-27dahdi: Enable DTMF A,B,C, and D digits.Shaun Ruffell
This appears to be an old regression from zaptel r4063 [1] that would prevent DAHDI from generating the A,B,C, and D digits due to unintentional drop through on a case statement. [1] http://svn.asterisk.org/view/zaptel?view=revision&revision=4063 Signed-off-by: Shaun Ruffell <sruffell@digium.com> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9912 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9923 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-05-27wcb4xxp: Updating copyright.Shaun Ruffell
The wcb4xxp driver was edited this year. Signed-off-by: Shaun Ruffell <sruffell@digium.com> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9911 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9922 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-04-14wcte12xp: If we cannot read the mode selection pins fail the module load.Shaun Ruffell
Alexandre reported that on a particular server he would get a server crash when loading the wcte12xp driver after receiving a line about a timeout when trying to read the mode selection jumpers. If the driver times out when trying to read the mode selection bits there is a serious problem and it should not try to continue on with configuration / registration. Reported-and-Tested-by: Alexandre Abreu <alexandre.abreu@redt.com.br> Signed-off-by: Shaun Ruffell <sruffell@digium.com> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9902 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9904 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-03-15wctdm24xxp: Fix regression with LEDS on TDM410.Shaun Ruffell
r9720 disabled the LEDs on the front panel of the TDM410. This commit restores the behavior and clarify which part of the TDM410 eframes control the LED operation. (closes issue #18939) Signed-off-by: Shaun Ruffell <sruffell@digium.com> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9827 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9828 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-02-10wct4xxp: Do not lock interrupts while loading the VPM firmware.Shaun Ruffell
Since the oct6100 API consumes less stack there is no longer a danger of overflowing our stack during load. Signed-off-by: Shaun Ruffell <sruffell@digium.com> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9752 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9755 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-02-10wct4xxp: Reduce stack usage in oct612x API.Shaun Ruffell
Reduce the stack usage by replacing the mOCT6100_RETRIEVE_NLP_CONF_DWORD and mOCT6100_SAVE_NLP_CONF_DWORD macros with functions. Some compilers do a better job of optimizing the local variables declared in those macros than others. For example, with gcc 4.3.0, running ]# make stackcheck | grep Oct6100 | head -n 20 | sed -e 's/^0\S* //g' | uniq Before: Oct6100ApiWriteVqeNlpMemory [wct4xxp]: 1112 Oct6100ApiInvalidateChanPlayoutStructs [wct4xxp]:520 Oct6100ApiSetChannelLevelControl [wct4xxp]: 392 Oct6100ApiBridgeEventRemove [wct4xxp]: 344 Oct6100ApiDebugChannelOpen [wct4xxp]: 312 Oct6100ApiWriteVqeAfMemory [wct4xxp]: 296 Oct6100ApiSetChannelTailConfiguration [wct4xxp]:264 Oct6100ApiRandomMemoryWrite [wct4xxp]: 248 Oct6100ApiTransferToneEvents [wct4xxp]: 248 Oct6100ApiModifyChannelStructs [wct4xxp]: 232 After: Oct6100ApiBridgeEventRemove [wct4xxp]: 344 Oct6100ApiDebugChannelOpen [wct4xxp]: 312 Oct6100ApiRandomMemoryWrite [wct4xxp]: 248 Oct6100ApiTransferToneEvents [wct4xxp]: 248 Oct6100ApiInvalidateChanPlayoutStructs [wct4xxp]:248 Oct6100ApiModifyChannelStructs [wct4xxp]: 232 Oct6100ApiBridgeRemoveParticipantFromChannel [wct4xxp]:216 Oct6100ApiWriteVqeNlpMemory [wct4xxp]: 200 Oct6100ApiInitChannels [wct4xxp]: 168 Oct6100ApiProgramNLP [wct4xxp]: 168 Signed-off-by: Shaun Ruffell <sruffell@digium.com> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9751 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9754 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-02-10wct4xxp: Reduce the memory footprint of the hardware echocanceler.Shaun Ruffell
This saves ~300K of kernel memory for each quad or dual span VPM. Due to the fact that this change disables caching of the NLP words (among other things), the time to disable the echocans appears to have increased by ~1ms. Before this change: ======================================================================= 0) ! 356.498 us | vpm450m_setecmode(); <--- disable 0) ! 387.762 us | vpm450m_setecmode(); <--- enable 0) ! 429.839 us | vpm450m_setecmode(); <--- disable ]# echo 1 > /proc/sys/vm/drop_caches && free -k total used free shared buffers cached Mem: 2005352 228368 1776984 0 132 5540 -/+ buffers/cache: 222696 1782656 Swap: 983036 0 983036 After this change: ======================================================================= 0) ! 1109.515 us | vpm450m_setecmode(); <--- disable 0) ! 339.017 us | vpm450m_setecmode(); <--- enable 0) ! 1431.460 us | vpm450m_setecmode(); <--- disable ]# echo 1 > /proc/sys/vm/drop_caches && free -k total used free shared buffers cached Mem: 2005352 228080 1777272 0 112 5484 -/+ buffers/cache: 222484 1782868 Swap: 983036 0 983036 Signed-off-by: Shaun Ruffell <sruffell@digium.com> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9750 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9753 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-01-31dahdi: Experimentally remove dependency on the Big Kernel Lock.Shaun Ruffell
With the release of Linux 2.6.37, the Big Kernel Lock is now a compile time option. This change adds a mutex around the one place in the code that we already knew was dependent on the lock_kernel/unlock_kernel calls for serialization and drops the other calls to lock_kernel/unlock_kernel if CONFIG_BKL is not defined. This is *mostly* the dahdi-no-bkl.patch with a few minor whitespace changes, the global_dialparmslock made static, and a warning added to let people know they are running an experimental configuration. (issue #18604) Reported by: jkroon Patches: dahdi-no-bkl.patch uploaded by jkroon (license 714) Signed-off-by: Jaco Kroon <jaco@uls.co.za> Signed-off-by: Shaun Ruffell <sruffell@digium.com> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9721 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9725 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-01-31wctdm24xxp: Remove code for unsupported modules.Shaun Ruffell
The VPM100 and S100M modules are no longer supported. Analog cards supported by the wctdm24xxp are still compatible with the S110 and VPMADT032 modules. DAHDI-302 Signed-off-by: Shaun Ruffell <sruffell@digium.com> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9720 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9724 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-01-27Fix for bugs in timing selection when B410P card is not the first configured ↵Matthew Fredrickson
card in system. git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9702 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-01-21wct4xxp: Perform an extended reset on PCI-Express cards by default.Shaun Ruffell
Extended reset is needed primarily with the PCI express version of the dual and quad-span cards. Enable it by default for those cards and allow it to be forced on or off globally for the driver as a compile time option. The options to force it should be able to come out if there aren't any further reports that the compile time option needs to be set. DAHDI-773 Signed-off-by: Shaun Ruffell <sruffell@digium.com> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9635 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9695 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-01-21dahdi: Add error if CONFIG_BKL is not definedShaun Ruffell
Might help when someone wonders why they are now getting errors about "lock_kernel" being undefined. Signed-off-by: Shaun Ruffell <sruffell@digium.com> Acked-by: Kinsey Moore <kmoore@digium.com> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9592 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9693 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-01-21wcte12xp: Remove unused functions from t1_span_ops.Shaun Ruffell
'open' and 'close' were already empty. 't1xxp_shutdown' only cleared DAHDI_FLAGBIT_RUNNING which is already done in dahdi-base.c after calling shutdown. Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9318 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9692 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-01-21"struct pci_device_id[]" -> "DEFINE_PCI_DEVICE_TABLE"Shaun Ruffell
2.6.25 added the DEFINE_PCI_DEVICE_TABLE macro to make sure that the pci_device_id tables are put into the correct section in the binary. Convert all the places where the tables were defined to use them. This is linux-2.6 commit where the change went in along with the rationale: 90a1ba0c5e39eeea278f263c28ae02166c5911c8 Signed-off-by: Shaun Ruffell <sruffell@digium.com> Acked-by: Kinsey Moore <kmoore@digium.com> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9584 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9691 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-01-21wcb4xxp: HDLC packets do not pass over D-channel.Shaun Ruffell
dahdi/wcb4xxp driver used with Digium Wildcard B410 quad-BRI PCI card unable to communicate with another ISDN device (ISDN phone, another port of B410). It appears that B-channels are capable to transport data, but D-channel is not. Debug output added into the driver shows that packets are transmitted to the D-channel, but no packets are received. Further investigation shows that no interrupts received from Rx FIFO associated with D-channel, although packets are delivered to the FIFO. I've found that problem is in improper usage of chan->chanpos while indexing the fifo index (bspan->fifos): chanpos starts from 1 and fifos starts from 0. Therefore, garbage read instead of fifo number. (closes issue #14834) Reported by: vvv Patches: dahdi-linux-complete-2.2.0-rc1.patch uploaded by vvv (license 741) Signed-off-by: Shaun Ruffell <sruffell@digium.com> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9555 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9689 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-01-21wcte12xp, wctdm24xxp: Do not call pci_set_drvdata after device initialization.Shaun Ruffell
Instead of using pci_set_drvdata embed the 'struct voicebus_operations' directly in the context so we can use container_of to find the context. This resolves a problem where the 'remove_one' callback gets an invalid pointer to 'struct t1' if the VPMADT032 is in the middle of a reload when the module is unloading. DAHDI-783. Signed-off-by: Shaun Ruffell <sruffell@digium.com> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9554 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9688 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-01-21wctdm24xxp, wcte12xp: Disable PCI read-line multiple command.Shaun Ruffell
There are some platforms where the read-line multiple transaction causes packets to be dropped in the voicebus pipeline. The only observable behavior is that packets just go "missing" in the pipeline. This also only appears to affect PCI cards. A typical 'symptom' of this problem is you may see IRQ misses increasing without any corresponding "bumps" in latency in the kernel message log. Normally, IRQ misses are correlated to latency bumps since that is an indication that the host was not able to service the card interrupt in a timely fashion. DAHDI-510 DAHDI-774 Signed-off-by: Shaun Ruffell <sruffell@digium.com> Signed-off-by: Russ Meyerriecks <rmeyerriecks@digium.com> Acked-by: Kinsey Moore <kmoore@digium.com> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9542 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9687 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-01-21wct4xxp: Close a memory leak in the VPM450 error path.Shaun Ruffell
Signed-off-by: Shaun Ruffell <sruffell@digium.com> Acked-by: Kinsey Moore <kmoore@digium.com> Acked-By: Russ Meyerriecks <rmeyerriecks@digium.com> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9539 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9686 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-01-21wctdm24xxp, wcte12xp: Lock interrupts when recovering from an underrun.Shaun Ruffell
This reduces the chance that another interrupt will interfere with the recovery process. Otherwise it is possible that the hardware advances past the position that we think it is currently at. Signed-off-by: Shaun Ruffell <sruffell@digium.com> Acked-by: Kinsey Moore <kmoore@digium.com> Acked-By: Russ Meyerriecks <rmeyerriecks@digium.com> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9535 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9685 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-01-21wctdm24xxp, wcte12xp: Add more descriptive message on a failed reset.Shaun Ruffell
Reading 0xffffffff from the registers is a different error than just not coming out of reset. Add a little extra debugging information. Signed-off-by: Shaun Ruffell <sruffell@digium.com> Acked-by: Kinsey Moore <kmoore@digium.com> Acked-By: Russ Meyerriecks <rmeyerriecks@digium.com> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9534 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9684 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-01-21wcte12xp: Use interruptible waits to decrease impact on load average.Shaun Ruffell
The wcte12xp does all the checking for alarm in a user space workqueue. Most of this time is spent sleeping waiting for reads from the framer to complete. Tasks in uninterruptible sleeps are added to running tasks for the purposes of calculating load average. This change makes the sleeps interruptible so as to not affect the load average as much. For example, the following command will load and configure the driver and then print the load average every 10 seconds. ]# modprobe wcte12xp && dahdi_cfg && ((x=12)); while [[ $x -gt 0 ]]; do cat /proc/loadavg; sleep 10; let x=$x-1; done With this change: 0.29 0.10 0.02 1/101 29945 0.24 0.10 0.02 1/101 29967 0.20 0.09 0.02 1/101 30019 0.17 0.09 0.02 1/101 30041 0.15 0.09 0.02 1/101 30062 0.12 0.08 0.02 1/101 30085 0.10 0.08 0.02 1/101 30107 0.09 0.08 0.02 1/101 30129 0.07 0.08 0.02 1/101 30151 0.14 0.09 0.02 1/101 30173 0.12 0.09 0.02 1/101 30195 0.10 0.08 0.02 1/101 30217 (and I've seen it get down to 0.0) Before this change: 0.57 0.22 0.07 1/101 31920 0.48 0.21 0.07 1/101 31942 0.48 0.22 0.07 1/101 31964 0.48 0.23 0.08 1/101 31986 0.41 0.22 0.07 1/101 32008 0.42 0.23 0.08 1/101 32030 0.43 0.24 0.08 1/101 32054 0.45 0.25 0.09 1/101 32076 0.45 0.25 0.09 1/101 32098 0.46 0.26 0.10 1/101 32120 0.47 0.27 0.10 1/101 32172 0.39 0.26 0.10 1/101 32194 (closes issue #18142) Reported by: foxfire Tested by: foxfire Signed-off-by: Shaun Ruffell <sruffell@digium.com> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9512 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9683 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-01-21dahdi: Prevent unloadable module on failed open.Shaun Ruffell
If chan->span->ops->open() fails then the reference count of the module implementing the board driver will not be decremented. The result is a module that would always be "in use" and unloadable. This change makes sure to release that reference when open failed. (closes issue #18422) Reported by: avarvit Signed-off-by: Shaun Ruffell <sruffell@digium.com> Acked-by: Angelos Varvitsiotis <avarvit@admin.grnet.gr> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9510 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9682 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-01-21xpd_pri: Remove pointless hooksig span opShaun Ruffell
If the span reports that it supports hooksig, DAHDI may fail to use RBS. So remove a call to that stub function. Signed-off-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9506 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9680 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-01-21xpd_pri: ignore DAHDI_VMWI and DAHDIVMWI_CONFIGShaun Ruffell
This fixes an annoying, though harmless issue: if Asterisk decides to send voicemail messages to a channel (CAS, configured as FXS), We can't do anything useful with them. So ignore them to avoid scary-looking messages (from report_bad_ioctl()). Signed-off-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9505 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9679 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-01-21wctdm24xxp, wcte12xp: Close a few potential resource assignment leaks.Shaun Ruffell
There were some routes through the failure paths in __voicebus_init() where a registered memory region was not subsequently released. This change closes those paths. The result would be on subsequent loads of the driver after hitting the failure condition you would see "IO Registers are in use by another module." in dmesg. request_mem_region/release_mem_region should most likely be converted to devm_request_region and devm_release_region introduced in 2.6.20 (commit 9ac7849e35f705830f7b016ff272b0ff1f7ff759) which was introduced for reasons just such as this. Signed-off-by: Shaun Ruffell <sruffell@digium.com> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9503 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9678 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-01-21Remove mutex emulationShaun Ruffell
Using semaphores as mutexes was removed from the kernel in 4882720b267b. Just use straight semaphores now. 'DECLARE_MUTEX()' -> 'DEFINE_SEMAPHORE()' and 'init_MUTEX()' -> 'sema_init()'. Signed-off-by: Shaun Ruffell <sruffell@digium.com> LKML-Reference: <20100907125057.562399240@linutronix.de> Acked-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9464 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9676 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-01-21wctdm24xxp: Detect FXS modules based on the 3210 SLIC.Shaun Ruffell
Fixes a regression introduced in revision 5916 where FXS modules based on the 3210 were not properly detected. (closes issue #18184) Reported by: bsexton Patches: dahdi-fxo-detect.diff uploaded by bsexton (license 1133) Signed-off-by: Shaun Ruffell <sruffell@digium.com> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9456 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9675 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-01-21wctdm24xxp: Leave FXO (DAA) always in full-wave ring detect mode.Shaun Ruffell
In zaptel commit 4096 [1], all the debouncing of ring signals were moved into software as opposed to using the ring validation circuit in DAA. That commit failed to remove the initial check and set of the ring validation circuit. [1] http://svn.digium.com/view/zaptel?view=revision&revision=4096 (closes issue #16894) Reported by: rde42 Signed-off-by: Shaun Ruffell <sruffell@digium.com> Acked-by: Kinsey Moore <kmoore@digium.com> Acked-by: Russ Meyerriecks <rmeyerriecks@digium.com> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9441 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9674 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-01-21dahdi: '-o' -> '--no-same-owner' in drivers/dahdi/firmware/MakefileShaun Ruffell
It appears that in Centos 4, the version of tar doesn't like the -o flag, but will honor the --no-same-owner flag. (closes issue #16063) Reported by: tzafrir Signed-off-by: Shaun Ruffell <sruffell@digium.com> Acked-by: Kinsey Moore <kmoore@digium.com> Acked-by: Russ Meyerriecks <rmeyerriecks@digium.com> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9434 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9673 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-01-21wcte12xp, wctdm24xxp: Do not rely on polling main memory.Shaun Ruffell
The voicebus library by default configures the PCI interface to poll the descriptor ring for available buffers. There are some platforms like the Intel SG3420P motherboard where this does not appear to be sufficient. Writing to the transmit demand poll register resolves this problem on these troublesome platforms. DAHDI-700 DAHDI-702. Signed-off-by: Shaun Ruffell <sruffell@digium.com> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9397 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9672 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-01-21wct4xxp: Drop usage of 'volatile' qualifier.Shaun Ruffell
The registers on the device are already accessed with readl/writel and the readchunk and writechunk are mapped into coherent DMA region. The contents of those buffers should not be changing in the middle of any transmit/receive prep call. Signed-off-by: Shaun Ruffell <sruffell@digium.com> Acked-by: Russ Meyerriecks <rmeyerriecks@digium.com> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9400 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9671 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-01-21vpmadt032: Remove potential endless waits when resetting.Shaun Ruffell
It is possible to softlock if the board stops delivering interrupts in the middle of a reset. Signed-off-by: Shaun Ruffell <sruffell@digium.com> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9332 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9668 a0bf4364-ded3-4de4-8d8a-66a801d63aff