86 Commits

Author SHA1 Message Date
Shaun Ruffell
e87ec518e4 Importing files for 2.4.2 release.
git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/tags/2.4.2@10584 a0bf4364-ded3-4de4-8d8a-66a801d63aff
v2.4.2
2012-03-21 22:05:20 +00:00
Shaun Ruffell
1e87525755 Creating tag for the release of dahdi-linux-2.4.2
git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/tags/2.4.2@10583 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2012-03-21 22:04:43 +00:00
Shaun Ruffell
68a0bf1d47 xpp: '%d' -> '%lu' when displaying module_refcount on kernel versions >= 3.3
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
branched-2.4.2
2012-03-16 17:08:04 +00:00
Shaun Ruffell
51c53f217b xpp: Use 'bool' type for boolean module parameters on kernel versions >= 2.6.31.
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-16 17:08:00 +00:00
Shaun Ruffell
82bd4c0b27 wctc4xxp: Replace 'ndo_set_multicast_list' with 'set_rx_mode'
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-16 17:07:56 +00:00
Shaun Ruffell
af9a9751fa dahdi: #include <linux/module.h> in dahdi/kernel.h and GpakCust.h
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
2012-03-16 17:07:51 +00:00
Shaun Ruffell
7e2b9485e4 wct4xxp: Fix condition where hardware echo canceler erroneously mutes DTMF.
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-12 16:32:58 +00:00
Shaun Ruffell
b44162f69a wctc4xxp: Allow G723 SID frames to pass to the hardware decoder.
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-12 16:32:54 +00:00
Russ Meyerriecks
49de604d12 wct4xxp: Bug in timing cable with different span density cards
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-10-12 16:32:49 +00:00
Tzafrir Cohen
40f2fa685a xpp: FXS: new 2+6 module has no digital I/O ports
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-28 09:42:50 +00:00
Shaun Ruffell
06fdf8a772 dahdi: Define HAVE_NET_DEVICE_OPS on kernels > 2.6.29
HAVE_NET_DEVICE_OPS was defined in the mainline kernel in commit
47fd5b83 which was first released in 2.6.29. Any kernels after that will
have those fields defined.

Mainline commit e2270ea62ae4d7a removed the feature test macros, so
the easiest thing to do is define HAVE_NET_DEVICE_OPS ourselves on the
kernels since it was committed.

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=10109

git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@10114 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-08-11 19:54:52 +00:00
Wagner Gegler
8fcc88893c dahdi_dynamic: Call dahdi_receive in rx packet handler.
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-11 19:54:48 +00:00
Shaun Ruffell
39bc4ef672 wctc4xxp, wcte12xp, wctdm24xxp: Remove check for HAVE_NETDEV_PRIV
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-11 19:54:44 +00:00
Doug Bailey
e60eb95453 oct612x: Increase the size of some of the instance variables.
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-08-11 19:54:39 +00:00
Shaun Ruffell
cc7cc7cb51 wctc4xxp: Cleanup in-flight commands when halting due to hardware error.
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-27 16:27:47 +00:00
Russ Meyerriecks
53cbba5c8b wcb4xxp: Prevent null pointer dereference on spanconfig
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-22 18:03:48 +00:00
Shaun Ruffell
35c833afef wcte12xp: Close a potential race on driver unload.
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-07-19 19:45:01 +00:00
Shaun Ruffell
d0bf20c36d wctdm24xxp: Ensure battery drops on FXS hangups honor the channel otimer.
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-29 18:36:34 +00:00
Shaun Ruffell
6fb24bc346 dahdi: Fix compilation on Linux 2.6.26 w/CONFIG_DAHDI_NET.
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-06-29 18:36:26 +00:00
Tzafrir Cohen
346fccbea0 xpp: empty labels are not duplicate
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-31 13:16:54 +00:00
Shaun Ruffell
de59662acb Move test for DEFINE_SPINLOCK into include/dahdi/kernel.h
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-27 16:48:46 +00:00
Shaun Ruffell
fb35e6afd2 dahdi: Enable DTMF A,B,C, and D digits.
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-27 16:48:40 +00:00
Shaun Ruffell
3be68a1105 wcb4xxp: Updating copyright.
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-05-27 16:48:35 +00:00
Shaun Ruffell
21875abb42 wcte12xp: If we cannot read the mode selection pins fail the module load.
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-04-14 20:32:29 +00:00
Tzafrir Cohen
75b7b53f10 dahdi: Do not define dev_name if already backported.
RHEL 5.6 has backported dev_name in include/dahdi/devices.h.  We now need to
check for a back ported definition before defining our own version on pre
2.6.26 kernels.

(closes issue #18992)
Reported by: ndupeux, AlexCeli
Tested by: elguero

Signed-off-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com>
Acked-by: Shaun Ruffell <sruffell@digium.com>

Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9894

git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9895 a0bf4364-ded3-4de4-8d8a-66a801d63aff
branched-2.4.1.2
2011-04-11 18:45:05 +00:00
Shaun Ruffell
6105ec0b16 wctdm24xxp: Fix regression with LEDS on TDM410.
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
branched-2.4.1.1
2011-03-15 19:15:40 +00:00
Shaun Ruffell
22645d1267 make_version: Use 'git rev-parse' if only looking for a sha5.
Different versions of git have variability in how the log output looks.
Instead of git log, we can use git rev-parse directly.

Signed-off-by: Shaun Ruffell <sruffell@digium.com>

Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9475

git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9760 a0bf4364-ded3-4de4-8d8a-66a801d63aff
branched-2.4.1 branched-2.4.1-rc1
2011-02-11 17:52:09 +00:00
Kinsey Moore
b47c3c2e0b make_version: svn and git metadata directory not checked properly.
(closes issue #16143)
Reported by: Max Khon

Signed-off-by: Kinsey Moore <kmoore@digium.com>
Signed-off-by: Shaun Ruffell <sruffell@digium.com>

Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9418

git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9759 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-02-11 17:52:04 +00:00
Shaun Ruffell
372e539242 make_version: '[[' -> '[' since it's not a bash script.
'[[' is a bash construct specifically, yet #!/bin/sh is at the top of the
file.

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=9408

git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9758 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-02-11 17:51:59 +00:00
Shaun Ruffell
a102bf28d1 dahdi: Generate include/dahdi/version.h when building in a git repository.
If building within a git repository search the last log message for a
'git-svn-id'.  If found, the commit has a corresponding svn revision
number and we will use the SVN-xxx-rxxx revision form. Otherwise use the
output of 'git describe --long --always --tags --dirty=M' as the
version.

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=9396

git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9757 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-02-11 17:51:54 +00:00
Shaun Ruffell
1e6c9e8d0f wct4xxp: Do not lock interrupts while loading the VPM firmware.
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-10 16:29:52 +00:00
Shaun Ruffell
02fe6beeb4 wct4xxp: Reduce stack usage in oct612x API.
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-10 16:29:47 +00:00
Shaun Ruffell
5c039eea69 wct4xxp: Reduce the memory footprint of the hardware echocanceler.
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-02-10 16:29:42 +00:00
Shaun Ruffell
1fdb766204 dahdi: Add '#include <linux/kobject.h>' in dahdi/kernel.h
linux/kobject.h was removed from linux/fs.h in upstream commit 57cc721.
Add it back in in order to pick up the linux/kref.h include.

Reported-by: Raoul Bönisch <jkl345@alice-dsl.net>
Signed-off-by: Shaun Ruffell <sruffell@digium.com>

Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9697

git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9746 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-02-09 18:30:42 +00:00
Tzafrir Cohen
025cacfe11 live_dahdi: Fix regression from r9508
Signed-off-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com>

Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9532

git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9745 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-02-09 12:45:39 +00:00
Shaun Ruffell
3940da78a4 syncing svnmerge-integrated.
git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9726 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-01-31 18:09:40 +00:00
Jaco Kroon
a9d7147a60 dahdi: Experimentally remove dependency on the Big Kernel Lock.
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-31 17:59:01 +00:00
Shaun Ruffell
97130b1841 wctdm24xxp: Remove code for unsupported modules.
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-31 17:58:56 +00:00
Shaun Ruffell
439f50e841 dahdi: Add '+' on KMAKE definition to enable parallel make.
Now 'make -j 5' works the way it's supposed to on multi core machines.
On one test machine build times went from ~33 seconds to ~11 seconds.

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=9409

git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9723 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-01-31 17:58:50 +00:00
Matthew Fredrickson
e5ec2cd816 Fix for bugs in timing selection when B410P card is not the first configured card in system.
git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9702 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-01-27 21:09:15 +00:00
Shaun Ruffell
4c53f89dcd Updating the svnmerge-integrated information.
git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9696 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-01-21 05:35:56 +00:00
Shaun Ruffell
7c1c41e7cb wct4xxp: Perform an extended reset on PCI-Express cards by default.
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-21 05:33:17 +00:00
Tzafrir Cohen
55c804f649 README: clarify required kernel configuration
Signed-off-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com>

Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9619

git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9694 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-01-21 05:33:09 +00:00
Shaun Ruffell
05f9768466 dahdi: Add error if CONFIG_BKL is not defined
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-21 05:33:02 +00:00
Shaun Ruffell
c172ee3bb0 wcte12xp: Remove unused functions from t1_span_ops.
'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 05:32:55 +00:00
Shaun Ruffell
bb3f3c6414 "struct pci_device_id[]" -> "DEFINE_PCI_DEVICE_TABLE"
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-21 05:32:45 +00:00
Shaun Ruffell
d28f297d51 dahdi: If mutexes are not available use semaphores instead.
Mutexes were added in 2.6.16.  This will allow future changes to use the
mutex API without breaking on pre 2.6.16 kernels.

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=9579

git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.4@9690 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-01-21 05:32:31 +00:00
Shaun Ruffell
dc653f4d60 wcb4xxp: HDLC packets do not pass over D-channel.
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-21 05:32:23 +00:00
Shaun Ruffell
50d6f6b2b2 wcte12xp, wctdm24xxp: Do not call pci_set_drvdata after device initialization.
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-21 05:32:14 +00:00
Shaun Ruffell
a9eb9d6e0a wctdm24xxp, wcte12xp: Disable PCI read-line multiple command.
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-21 05:32:07 +00:00