Compare commits
2 Commits
v2.4.2
...
v2.4.1-rc1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
92d7118803 | ||
|
|
e826ea22ee |
487
ChangeLog
487
ChangeLog
@@ -1,315 +1,6 @@
|
||||
2012-03-21 Shaun Ruffell <sruffell@digium.com>
|
||||
2011-02-15 Shaun Ruffell <sruffell@digium.com>
|
||||
|
||||
* dahdi-linux version 2.4.2 released.
|
||||
|
||||
2012-03-16 17:08 +0000 [r10530-10533] Shaun Ruffell <sruffell@digium.com>
|
||||
|
||||
* drivers/dahdi/xpp/xproto.c: 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
|
||||
|
||||
* drivers/dahdi/xpp/xpd.h: 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
|
||||
|
||||
* drivers/dahdi/wctc4xxp/base.c: 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
|
||||
|
||||
* drivers/dahdi/voicebus/GpakCust.h, include/dahdi/kernel.h: 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
|
||||
|
||||
2011-10-12 16:32 +0000 [r10222-10224] Shaun Ruffell <sruffell@digium.com>
|
||||
|
||||
* drivers/dahdi/wct4xxp/base.c: 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
|
||||
|
||||
* drivers/dahdi/wctc4xxp/base.c: 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
|
||||
|
||||
* drivers/dahdi/wct4xxp/base.c: 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
|
||||
|
||||
2011-08-28 09:42 +0000 [r10156] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
|
||||
|
||||
* drivers/dahdi/xpp/card_fxs.c: 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>
|
||||
|
||||
2011-08-11 19:54 +0000 [r10111-10114] Shaun Ruffell <sruffell@digium.com>
|
||||
|
||||
* include/dahdi/kernel.h: 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
|
||||
|
||||
* drivers/dahdi/dahdi_dynamic.c: 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
|
||||
|
||||
* drivers/dahdi/voicebus/voicebus_net.c,
|
||||
drivers/dahdi/wctc4xxp/base.c: 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
|
||||
|
||||
* drivers/dahdi/oct612x/include/oct6100api/oct6100_channel_inst.h:
|
||||
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
|
||||
|
||||
2011-07-27 16:27 +0000 [r10084] Shaun Ruffell <sruffell@digium.com>
|
||||
|
||||
* drivers/dahdi/wctc4xxp/base.c: 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
|
||||
|
||||
2011-07-22 18:03 +0000 [r10080] Shaun Ruffell <sruffell@digium.com>
|
||||
|
||||
* drivers/dahdi/wcb4xxp/base.c: 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
|
||||
|
||||
2011-07-19 19:45 +0000 [r10049] Shaun Ruffell <sruffell@digium.com>
|
||||
|
||||
* drivers/dahdi/wcte12xp/base.c: 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
|
||||
|
||||
2011-06-29 18:36 +0000 [r10004-10005] Shaun Ruffell <sruffell@digium.com>
|
||||
|
||||
* drivers/dahdi/wctdm24xxp/base.c: 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
|
||||
|
||||
* drivers/dahdi/dahdi-base.c: 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
|
||||
|
||||
2011-05-31 13:16 +0000 [r9926] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
|
||||
|
||||
* drivers/dahdi/xpp/xbus-core.c: 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>
|
||||
|
||||
2011-05-27 16:48 +0000 [r9922-9924] Shaun Ruffell <sruffell@digium.com>
|
||||
|
||||
* drivers/dahdi/xpp/parport_debug.c, drivers/dahdi/xpp/xbus-pcm.c,
|
||||
drivers/dahdi/dahdi_dynamic_loc.c,
|
||||
drivers/dahdi/dahdi_transcode.c, drivers/dahdi/dahdi_dynamic.c,
|
||||
drivers/dahdi/dahdi_dynamic_eth.c, drivers/dahdi/xpp/mmapdrv.c,
|
||||
drivers/dahdi/xpp/xbus-core.c, drivers/dahdi/dahdi-base.c,
|
||||
drivers/dahdi/tor2.c, drivers/dahdi/wcte12xp/base.c,
|
||||
drivers/dahdi/xpp/xpp_usb.c, include/dahdi/kernel.h,
|
||||
drivers/dahdi/wct4xxp/base.c, drivers/dahdi/wcte12xp/wcte12xp.h,
|
||||
drivers/dahdi/dahdi_dynamic_ethmf.c: 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
|
||||
|
||||
* drivers/dahdi/dahdi-base.c: 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
|
||||
|
||||
* drivers/dahdi/wcb4xxp/base.c: 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
|
||||
|
||||
2011-04-14 20:32 +0000 [r9904] Shaun Ruffell <sruffell@digium.com>
|
||||
|
||||
* drivers/dahdi/wcte12xp/base.c: 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
|
||||
|
||||
2011-04-11 18:45 +0000 [r9895] Shaun Ruffell <sruffell@digium.com>
|
||||
|
||||
* include/dahdi/kernel.h: 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
|
||||
|
||||
2011-04-11 Shaun Ruffell <sruffell@digium.com>
|
||||
|
||||
* dahdi-linux version 2.4.1.2 released.
|
||||
|
||||
2011-04-11 18:45 +0000 [r9895] Shaun Ruffell <sruffell@digium.com>
|
||||
|
||||
* include/dahdi/kernel.h: 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
|
||||
|
||||
2011-03-31 Shaun Ruffell <sruffell@digium.com>
|
||||
|
||||
* dahdi-linux version 2.4.1.1 released.
|
||||
|
||||
2011-03-15 19:15 +0000 [r9828] Shaun Ruffell <sruffell@digium.com>
|
||||
|
||||
* wctdm24xxp: Fix regression with LEDS on TDM410.
|
||||
|
||||
2011-03-03 Shaun Ruffell <sruffell@digium.com>
|
||||
|
||||
* dahdi-linux version 2.4.1 released.
|
||||
* dahdi-linux version 2.4.1-rc1 released.
|
||||
|
||||
2011-02-11 17:52 +0000 [r9757-9760] Shaun Ruffell <sruffell@digium.com>
|
||||
|
||||
@@ -437,8 +128,6 @@
|
||||
|
||||
2011-01-31 18:09 +0000 [r9723-9726] Shaun Ruffell <sruffell@digium.com>
|
||||
|
||||
* /: syncing svnmerge-integrated.
|
||||
|
||||
* drivers/dahdi/dahdi-base.c: 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
|
||||
@@ -480,8 +169,6 @@
|
||||
|
||||
2011-01-21 05:35 +0000 [r9652-9696] Shaun Ruffell <sruffell@digium.com>
|
||||
|
||||
* /: Updating the svnmerge-integrated information.
|
||||
|
||||
* drivers/dahdi/wct4xxp/base.c: 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
|
||||
@@ -891,10 +578,6 @@
|
||||
reads. dahdi-526 Origin:
|
||||
http://svnview.digium.com/svn/dahdi?view=rev&rev=9312
|
||||
|
||||
* /: Turning on merge tracking.
|
||||
|
||||
* / (added): Creating 2.4 branch.
|
||||
|
||||
2010-08-31 Shaun Ruffell <sruffell@digium.com>
|
||||
|
||||
* dahdi-linux version 2.4.0 released.
|
||||
@@ -1007,171 +690,7 @@
|
||||
|
||||
2010-08-13 19:38 +0000 [r9130-9138] Shaun Ruffell <sruffell@digium.com>
|
||||
|
||||
* drivers/dahdi/oct612x/include/oct6100api/oct6100_mixer_pub.h
|
||||
(added),
|
||||
drivers/dahdi/oct612x/include/oct6100api/oct6100_tsst_inst.h
|
||||
(added), drivers/dahdi/oct612x/apilib/bt (added),
|
||||
drivers/dahdi/oct612x/include/apilib/octapi_largmath.h (added),
|
||||
drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_tone_detection.c
|
||||
(added),
|
||||
drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_miscellaneous.c
|
||||
(added),
|
||||
drivers/dahdi/oct612x/include/oct6100api/oct6100_playout_buf_pub.h
|
||||
(added), drivers/dahdi/oct612x/include/digium_unused.h (added),
|
||||
drivers/dahdi/oct612x/include/apilib/octapi_llman.h (added),
|
||||
drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_events.c
|
||||
(added),
|
||||
drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_tlv.c
|
||||
(added),
|
||||
drivers/dahdi/oct612x/include/oct6100api/oct6100_events_inst.h
|
||||
(added),
|
||||
drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_debug_priv.h
|
||||
(added),
|
||||
drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_phasing_tsst.c
|
||||
(added),
|
||||
drivers/dahdi/oct612x/include/oct6100api/oct6100_tlv_inst.h
|
||||
(added), drivers/dahdi/oct612x/include/octtypewin.h (added),
|
||||
drivers/dahdi/oct612x/include/oct6100api/oct6100_phasing_tsst_inst.h
|
||||
(added),
|
||||
drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_memory.c
|
||||
(added),
|
||||
drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_playout_buf_priv.h
|
||||
(added),
|
||||
drivers/dahdi/oct612x/include/oct6100api/oct6100_chip_stats_pub.h
|
||||
(added), drivers/dahdi/oct612x/include/octosdependant.h (added),
|
||||
drivers/dahdi/oct612x/include/octrpc/oct6100_rpc_protocol.h
|
||||
(added),
|
||||
drivers/dahdi/oct612x/include/oct6100api/oct6100_chip_open_pub.h
|
||||
(added),
|
||||
drivers/dahdi/oct612x/include/oct6100api/oct6100_adpcm_chan_inst.h
|
||||
(added),
|
||||
drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_interrupts.c
|
||||
(added),
|
||||
drivers/dahdi/oct612x/include/oct6100api/oct6100_phasing_tsst_pub.h
|
||||
(added),
|
||||
drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_chip_stats_priv.h
|
||||
(added),
|
||||
drivers/dahdi/oct612x/include/oct6100api/oct6100_channel_pub.h
|
||||
(added),
|
||||
drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_tone_detection_priv.h
|
||||
(added),
|
||||
drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_mixer.c
|
||||
(added), drivers/dahdi/oct612x/get_discards (added),
|
||||
drivers/dahdi/oct612x/include/apilib/octapi_bt0.h (added),
|
||||
drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_apimi
|
||||
(added), drivers/dahdi/oct612x/apilib/llman (added),
|
||||
drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_tsst.c
|
||||
(added),
|
||||
drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_interrupts_priv.h
|
||||
(added), drivers/dahdi/oct612x/apilib/bt/octapi_bt0_private.h
|
||||
(added), drivers/dahdi/oct612x/include/oct6100api/oct6100_apimi.h
|
||||
(added),
|
||||
drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_open.c
|
||||
(added), drivers/dahdi/oct612x/include/octdef.h (added),
|
||||
drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_tsi_cnct.c
|
||||
(added),
|
||||
drivers/dahdi/oct612x/include/oct6100api/oct6100_tsi_cnct_inst.h
|
||||
(added),
|
||||
drivers/dahdi/oct612x/include/oct6100api/oct6100_api_inst.h
|
||||
(added), drivers/dahdi/oct612x/include (added),
|
||||
drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_tsst_priv.h
|
||||
(added), drivers/dahdi/oct612x/apilib/llman/octapi_llman.c
|
||||
(added),
|
||||
drivers/dahdi/oct612x/include/oct6100api/oct6100_tsi_cnct_pub.h
|
||||
(added), drivers/dahdi,
|
||||
drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_miscellaneous_priv.h
|
||||
(added),
|
||||
drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_events_priv.h
|
||||
(added),
|
||||
drivers/dahdi/oct612x/include/oct6100api/oct6100_mixer_inst.h
|
||||
(added),
|
||||
drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_tlv_priv.h
|
||||
(added),
|
||||
drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_phasing_tsst_priv.h
|
||||
(added),
|
||||
drivers/dahdi/oct612x/include/oct6100api/oct6100_adpcm_chan_pub.h
|
||||
(added), drivers/dahdi/oct612x/octdeviceapi (added),
|
||||
drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_memory_priv.h
|
||||
(added), drivers/dahdi/oct612x (added),
|
||||
drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_adpcm_chan_priv.h
|
||||
(added),
|
||||
drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_conf_bridge.c
|
||||
(added),
|
||||
drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_stats.c
|
||||
(added),
|
||||
drivers/dahdi/oct612x/include/oct6100api/oct6100_conf_bridge_inst.h
|
||||
(added),
|
||||
drivers/dahdi/oct612x/include/oct6100api/oct6100_remote_debug_inst.h
|
||||
(added),
|
||||
drivers/dahdi/oct612x/include/oct6100api/oct6100_chip_open_inst.h
|
||||
(added), drivers/dahdi/oct612x/include/octrpc (added),
|
||||
drivers/dahdi/oct612x/include/oct6100api/oct6100_channel_inst.h
|
||||
(added),
|
||||
drivers/dahdi/oct612x/include/oct6100api/oct6100_tone_detection_pub.h
|
||||
(added),
|
||||
drivers/dahdi/oct612x/include/oct6100api/oct6100_events_pub.h
|
||||
(added),
|
||||
drivers/dahdi/oct612x/include/oct6100api/oct6100_errors.h
|
||||
(added),
|
||||
drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_apimi/oct6100_mask_interrupts.c
|
||||
(added),
|
||||
drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_tsi_cnct_priv.h
|
||||
(added),
|
||||
drivers/dahdi/oct612x/include/oct6100api/oct6100_debug_inst.h
|
||||
(added), drivers/dahdi/oct612x/apilib/largmath (added),
|
||||
drivers/dahdi/oct612x/apilib (added),
|
||||
drivers/dahdi/oct612x/include/oct6100api/oct6100_interrupts_pub.h
|
||||
(added),
|
||||
drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_playout_buf.c
|
||||
(added),
|
||||
drivers/dahdi/oct612x/include/oct6100api/oct6100_playout_buf_inst.h
|
||||
(added), drivers/dahdi/oct612x/octasic-helper (added),
|
||||
drivers/dahdi/oct612x/include/oct6100api/oct6100_debug_pub.h
|
||||
(added), drivers/dahdi/oct612x/include/octrpc/rpc_protocol.h
|
||||
(added),
|
||||
drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_remote_debug.c
|
||||
(added), drivers/dahdi/oct612x/include/oct6100api (added),
|
||||
drivers/dahdi/oct612x/include/oct6100api/oct6100_chip_stats_inst.h
|
||||
(added),
|
||||
drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api
|
||||
(added), drivers/dahdi/oct612x/apilib/bt/octapi_bt0.c (added),
|
||||
drivers/dahdi/oct612x/include/oct6100api/oct6100_tone_detection_inst.h
|
||||
(added),
|
||||
drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_mixer_priv.h
|
||||
(added),
|
||||
drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_version.h
|
||||
(added), drivers/dahdi/oct612x/Makefile (added),
|
||||
drivers/dahdi/oct612x/include/oct6100api/oct6100_apiud.h (added),
|
||||
drivers/dahdi/oct612x/include/octtypevx.h (added),
|
||||
drivers/dahdi/oct612x/apilib/largmath/octapi_largmath.c (added),
|
||||
drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_channel.c
|
||||
(added), drivers/dahdi/oct612x/include/octmac.h (added),
|
||||
drivers/dahdi/oct612x/include/oct6100api/oct6100_remote_debug_pub.h
|
||||
(added),
|
||||
drivers/dahdi/oct612x/include/oct6100api/oct6100_conf_bridge_pub.h
|
||||
(added), drivers/dahdi/oct612x/include/apilib (added),
|
||||
drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_adpcm_chan.c
|
||||
(added), drivers/dahdi/oct612x/include/oct6100api/oct6100_api.h
|
||||
(added), drivers/dahdi/oct612x/octdeviceapi/oct6100api (added),
|
||||
drivers/dahdi/oct612x/apilib/llman/octapi_llman_private.h
|
||||
(added),
|
||||
drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_user.c
|
||||
(added),
|
||||
drivers/dahdi/oct612x/include/oct6100api/oct6100_interrupts_inst.h
|
||||
(added),
|
||||
drivers/dahdi/oct612x/include/oct6100api/oct6100_defines.h
|
||||
(added),
|
||||
drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_conf_bridge_priv.h
|
||||
(added),
|
||||
drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_remote_debug_priv.h
|
||||
(added),
|
||||
drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_chip_open_priv.h
|
||||
(added),
|
||||
drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_debug.c
|
||||
(added),
|
||||
drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_channel_priv.h
|
||||
(added), drivers/dahdi/oct612x/include/octtype.h (added),
|
||||
drivers/dahdi/oct612x/test.c (added): wct4xxp: Move 'oct612x'
|
||||
* wct4xxp: Move 'oct612x'
|
||||
from an svn:external directly into dahdi-linux. From
|
||||
http://svn.digium.com/svn/octasic_api/oct612x/tags/PR49-03/software@44
|
||||
This is only currently maintained as part of DAHDI linux so it
|
||||
|
||||
@@ -386,8 +386,13 @@ struct dahdi_timer {
|
||||
|
||||
static LIST_HEAD(zaptimers);
|
||||
|
||||
#ifdef DEFINE_SPINLOCK
|
||||
static DEFINE_SPINLOCK(zaptimerlock);
|
||||
static DEFINE_SPINLOCK(bigzaplock);
|
||||
#else
|
||||
static spinlock_t zaptimerlock = SPIN_LOCK_UNLOCKED;
|
||||
static spinlock_t bigzaplock = SPIN_LOCK_UNLOCKED;
|
||||
#endif
|
||||
|
||||
struct dahdi_zone {
|
||||
atomic_t refcount;
|
||||
@@ -1670,7 +1675,7 @@ static inline void print_debug_writebuf(struct dahdi_chan* ss, struct sk_buff *s
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_DAHDI_NET
|
||||
#if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 26)
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 26)
|
||||
static inline struct net_device_stats *hdlc_stats(struct net_device *dev)
|
||||
{
|
||||
return &dev->stats;
|
||||
@@ -3325,7 +3330,6 @@ struct dahdi_tone *dahdi_mf_tone(const struct dahdi_chan *chan, char digit, int
|
||||
case 'C':
|
||||
case 'D':
|
||||
tone_index = DAHDI_TONE_DTMF_A + (digit - 'A');
|
||||
break;
|
||||
case 'W':
|
||||
return &tone_pause;
|
||||
default:
|
||||
|
||||
@@ -113,8 +113,13 @@ struct dahdi_dynamic {
|
||||
struct list_head list;
|
||||
};
|
||||
|
||||
#ifdef DEFINE_SPINLOCK
|
||||
static DEFINE_SPINLOCK(dspan_lock);
|
||||
static DEFINE_SPINLOCK(driver_lock);
|
||||
#else
|
||||
static spinlock_t dspan_lock = SPIN_LOCK_UNLOCKED;
|
||||
static spinlock_t driver_lock = SPIN_LOCK_UNLOCKED;
|
||||
#endif
|
||||
|
||||
static LIST_HEAD(dspan_list);
|
||||
static LIST_HEAD(driver_list);
|
||||
@@ -222,10 +227,16 @@ static void __ztdynamic_run(void)
|
||||
{
|
||||
struct dahdi_dynamic *z;
|
||||
struct dahdi_dynamic_driver *drv;
|
||||
int y;
|
||||
|
||||
rcu_read_lock();
|
||||
list_for_each_entry_rcu(z, &dspan_list, list) {
|
||||
if (!z->dead) {
|
||||
for (y=0;y<z->span.channels;y++) {
|
||||
/* Echo cancel double buffered data */
|
||||
dahdi_ec_chunk(z->span.chans[y], z->span.chans[y]->readchunk, z->span.chans[y]->writechunk);
|
||||
}
|
||||
dahdi_receive(&z->span);
|
||||
dahdi_transmit(&z->span);
|
||||
/* Handle all transmissions now */
|
||||
ztd_sendmessage(z);
|
||||
@@ -391,9 +402,6 @@ void dahdi_dynamic_receive(struct dahdi_span *span, unsigned char *msg, int msgl
|
||||
if (unlikely(rxpos != rxcnt))
|
||||
printk(KERN_NOTICE "Span %s: Expected seq no %d, but received %d instead\n", span->name, rxcnt, rxpos);
|
||||
|
||||
dahdi_ec_span(span);
|
||||
dahdi_receive(span);
|
||||
|
||||
/* If this is our master span, then run everything */
|
||||
if (master)
|
||||
ztdynamic_run();
|
||||
|
||||
@@ -42,7 +42,11 @@ struct ztdeth_header {
|
||||
|
||||
/* We take the raw message, put it in an ethernet frame, and add a
|
||||
two byte addressing header at the top for future use */
|
||||
#ifdef DEFINE_SPINLOCK
|
||||
static DEFINE_SPINLOCK(zlock);
|
||||
#else
|
||||
static spinlock_t zlock = SPIN_LOCK_UNLOCKED;
|
||||
#endif
|
||||
|
||||
static struct sk_buff_head skbs;
|
||||
|
||||
|
||||
@@ -129,7 +129,11 @@ struct ztdeth {
|
||||
/**
|
||||
* Lock for adding and removing items in ethmf_list
|
||||
*/
|
||||
#ifdef DEFINE_SPINLOCK
|
||||
static DEFINE_SPINLOCK(ethmf_lock);
|
||||
#else
|
||||
static spinlock_t ethmf_lock = SPIN_LOCK_UNLOCKED;
|
||||
#endif
|
||||
|
||||
/**
|
||||
* The active list of all running spans
|
||||
@@ -397,7 +401,7 @@ static int ztdethmf_transmit(void *pvt, unsigned char *msg, int msglen)
|
||||
unsigned char addr[ETH_ALEN];
|
||||
int spans_ready = 0, index = 0;
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 10)
|
||||
static DEFINE_SPINLOCK(lock);
|
||||
static spinlock_t lock = SPIN_LOCK_UNLOCKED;
|
||||
unsigned long flags;
|
||||
#endif
|
||||
|
||||
|
||||
@@ -57,7 +57,11 @@
|
||||
|
||||
#include <dahdi/kernel.h>
|
||||
|
||||
#ifdef DEFINE_SPINLOCK
|
||||
static DEFINE_SPINLOCK(zlock);
|
||||
#else
|
||||
static spinlock_t zlock = SPIN_LOCK_UNLOCKED;
|
||||
#endif
|
||||
|
||||
static struct ztdlocal {
|
||||
unsigned short key;
|
||||
|
||||
@@ -46,7 +46,7 @@ static LIST_HEAD(registration_list);
|
||||
* is used as a simplistic way to spread the load amongst the different hardware
|
||||
* transcoders in the system. */
|
||||
static LIST_HEAD(active_list);
|
||||
static DEFINE_SPINLOCK(translock);
|
||||
static spinlock_t translock = SPIN_LOCK_UNLOCKED;
|
||||
|
||||
EXPORT_SYMBOL(dahdi_transcoder_register);
|
||||
EXPORT_SYMBOL(dahdi_transcoder_unregister);
|
||||
|
||||
@@ -48,10 +48,10 @@ typedef struct _OCT6100_API_CHANNEL_TDM_
|
||||
UINT8 byRoutPcmLaw : 1;
|
||||
UINT8 bySoutPcmLaw : 1;
|
||||
|
||||
UINT8 byRinNumTssts : 2;
|
||||
UINT8 bySinNumTssts : 2;
|
||||
UINT8 byRoutNumTssts : 2;
|
||||
UINT8 bySoutNumTssts : 2;
|
||||
UINT8 byRinNumTssts : 1;
|
||||
UINT8 bySinNumTssts : 1;
|
||||
UINT8 byRoutNumTssts : 1;
|
||||
UINT8 bySoutNumTssts : 1;
|
||||
|
||||
/* RIN port. */
|
||||
UINT16 usRinTimeslot;
|
||||
@@ -93,20 +93,19 @@ typedef struct _OCT6100_API_CHANNEL_VQE_
|
||||
UINT8 fSoutAdaptiveNoiseReduction : 1;
|
||||
UINT8 fDtmfToneRemoval : 1;
|
||||
UINT8 fAcousticEcho : 1;
|
||||
UINT8 byComfortNoiseMode : 2;
|
||||
UINT8 byComfortNoiseMode : 1;
|
||||
UINT8 fSoutNaturalListenerEnhancement : 1;
|
||||
UINT8 fRoutNoiseReduction : 1;
|
||||
UINT8 fEnableMusicProtection : 1;
|
||||
UINT8 fIdleCodeDetection : 1;
|
||||
UINT8 byAnrVoiceNoiseSegregation : 4;
|
||||
UINT8 byAnrVoiceNoiseSegregation : 1;
|
||||
UINT8 byDoubleTalkBehavior : 1;
|
||||
UINT8 fSoutNoiseBleaching : 1;
|
||||
UINT8 fSoutConferencingNoiseReduction : 1;
|
||||
UINT8 byNonLinearityBehaviorA : 4;
|
||||
UINT8 byNonLinearityBehaviorB : 4;
|
||||
|
||||
UINT8 bySoutAutomaticListenerEnhancementGainDb;
|
||||
UINT8 bySoutNaturalListenerEnhancementGainDb;
|
||||
UINT8 bySoutAutomaticListenerEnhancementGainDb : 1;
|
||||
UINT8 byNonLinearityBehaviorA : 1;
|
||||
UINT8 byNonLinearityBehaviorB : 1;
|
||||
UINT8 bySoutNaturalListenerEnhancementGainDb : 1;
|
||||
|
||||
OCT_INT8 chRinAutomaticLevelControlTargetDb;
|
||||
OCT_INT8 chSoutAutomaticLevelControlTargetDb;
|
||||
@@ -135,15 +134,15 @@ typedef struct _OCT6100_API_CHANNEL_CODEC_
|
||||
UINT8 byAdpcmNibblePosition : 1;
|
||||
UINT8 fEnableSilenceSuppression : 1;
|
||||
|
||||
UINT8 byEncoderPort : 4;
|
||||
UINT8 byDecoderPort : 4;
|
||||
UINT8 byEncoderPort : 1;
|
||||
UINT8 byEncodingRate : 1;
|
||||
|
||||
UINT8 byPhasingType : 2;
|
||||
|
||||
UINT8 byEncodingRate;
|
||||
UINT8 byDecodingRate;
|
||||
UINT8 byDecoderPort : 1;
|
||||
UINT8 byDecodingRate : 1;
|
||||
|
||||
UINT16 byPhase;
|
||||
UINT8 byPhase : 1;
|
||||
UINT8 byPhasingType : 1;
|
||||
|
||||
} tOCT6100_API_CHANNEL_CODEC, *tPOCT6100_API_CHANNEL_CODEC;
|
||||
|
||||
typedef struct _OCT6100_API_CHANNEL_
|
||||
@@ -164,7 +163,7 @@ typedef struct _OCT6100_API_CHANNEL_
|
||||
UINT8 fEnableToneDisabler : 1;
|
||||
|
||||
/* Current echo operation mode. */
|
||||
UINT8 byEchoOperationMode : 3;
|
||||
UINT8 byEchoOperationMode : 1;
|
||||
|
||||
UINT8 byToneDisablerStatus : 1;
|
||||
|
||||
@@ -360,7 +359,7 @@ typedef struct _OCT6100_API_BIDIR_CHANNEL_
|
||||
/* Flag specifying whether the entry is used or not. */
|
||||
UINT8 fReserved : 1;
|
||||
/* Count used to manage entry handles allocated to user. */
|
||||
UINT8 byEntryOpenCnt;
|
||||
UINT8 byEntryOpenCnt : 1;
|
||||
|
||||
} tOCT6100_API_BIDIR_CHANNEL, *tPOCT6100_API_BIDIR_CHANNEL;
|
||||
|
||||
|
||||
@@ -1129,7 +1129,11 @@ static void tor2_tasklet(unsigned long data)
|
||||
static int syncsrc = 0;
|
||||
static int syncnum = 0 /* -1 */;
|
||||
static int syncspan = 0;
|
||||
#ifdef DEFINE_SPINLOCK
|
||||
static DEFINE_SPINLOCK(synclock);
|
||||
#else
|
||||
static spinlock_t synclock = SPIN_LOCK_UNLOCKED;
|
||||
#endif
|
||||
|
||||
static int tor2_findsync(struct tor2 *tor)
|
||||
{
|
||||
|
||||
@@ -36,7 +36,6 @@
|
||||
#ifndef _GPAKCUST_H /* prevent multiple inclusion */
|
||||
#define _GPAKCUST_H
|
||||
|
||||
#include <linux/module.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/completion.h>
|
||||
#include <linux/workqueue.h>
|
||||
|
||||
@@ -35,16 +35,22 @@
|
||||
|
||||
#ifdef VOICEBUS_NET_DEBUG
|
||||
|
||||
#ifdef HAVE_NETDEV_PRIV
|
||||
struct voicebus_netdev_priv {
|
||||
struct voicebus *vb;
|
||||
};
|
||||
#endif
|
||||
|
||||
static inline struct voicebus *
|
||||
voicebus_from_netdev(struct net_device *netdev)
|
||||
{
|
||||
#ifdef HAVE_NETDEV_PRIV
|
||||
struct voicebus_netdev_priv *priv;
|
||||
priv = netdev_priv(netdev);
|
||||
return priv->vb;
|
||||
#else
|
||||
return netdev->priv;
|
||||
#endif
|
||||
}
|
||||
|
||||
static void *
|
||||
@@ -200,14 +206,23 @@ int vb_net_register(struct voicebus *vb, const char *board_name)
|
||||
{
|
||||
int res;
|
||||
struct net_device *netdev;
|
||||
# ifdef HAVE_NETDEV_PRIV
|
||||
struct voicebus_netdev_priv *priv;
|
||||
# endif
|
||||
const char our_mac[] = { 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff};
|
||||
|
||||
# ifdef HAVE_NETDEV_PRIV
|
||||
netdev = alloc_netdev(sizeof(*priv), board_name, ether_setup);
|
||||
if (!netdev)
|
||||
return -ENOMEM;
|
||||
priv = netdev_priv(netdev);
|
||||
priv->vb = vb;
|
||||
# else
|
||||
netdev = alloc_netdev(0, vb->board_name, ether_setup);
|
||||
if (!netdev)
|
||||
return -ENOMEM;
|
||||
netdev->priv = vb;
|
||||
# endif
|
||||
memcpy(netdev->dev_addr, our_mac, sizeof(our_mac));
|
||||
# ifdef HAVE_NET_DEVICE_OPS
|
||||
netdev->netdev_ops = &vb_netdev_ops;
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* WCB410P Quad-BRI PCI Driver
|
||||
* Written by Andrew Kohlsmith <akohlsmith@mixdown.ca>
|
||||
*
|
||||
* Copyright (C) 2009-2011 Digium, Inc.
|
||||
* Copyright (C) 2009 Digium, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
*/
|
||||
@@ -2303,9 +2303,6 @@ static int b4xxp_chanconfig(struct dahdi_chan *chan, int sigtype)
|
||||
|
||||
if (alreadyrunning && bspan->sigchan) {
|
||||
hdlc_stop(b4, fifo);
|
||||
atomic_set(&bspan->hdlc_pending, 0);
|
||||
bspan->sigactive = 0;
|
||||
smp_mb();
|
||||
bspan->sigchan = NULL;
|
||||
}
|
||||
|
||||
|
||||
@@ -763,9 +763,11 @@ static inline unsigned int __t4_raw_oct_in(struct t4 *wc, const unsigned int add
|
||||
__t4_pci_out(wc, WC_LADDR, (WC_LWRITE | WC_LALE));
|
||||
if (!pedanticpci)
|
||||
__t4_pci_in(wc, WC_VERSION);
|
||||
#ifdef PEDANTIC_OCTASIC_CHECKING
|
||||
__t4_pci_out(wc, WC_LADDR, (WC_LALE));
|
||||
if (!pedanticpci)
|
||||
__t4_pci_in(wc, WC_VERSION);
|
||||
#endif
|
||||
if (!octopt) {
|
||||
__t4_gpio_setdir(wc, 0xff, 0x00);
|
||||
__t4_gpio_set(wc, 0xff, 0x00);
|
||||
@@ -2229,7 +2231,11 @@ static void t4_serial_setup(struct t4 *wc, int unit)
|
||||
static int syncsrc = 0;
|
||||
static int syncnum = 0 /* -1 */;
|
||||
static int syncspan = 0;
|
||||
#ifdef DEFINE_SPINLOCK
|
||||
static DEFINE_SPINLOCK(synclock);
|
||||
#else
|
||||
static spinlock_t synclock = SPIN_LOCK_UNLOCKED;
|
||||
#endif
|
||||
|
||||
static void __t4_set_rclk_src(struct t4 *wc, int span)
|
||||
{
|
||||
@@ -2351,7 +2357,7 @@ static int __t4_findsync(struct t4 *wc)
|
||||
while (p < 8) {
|
||||
nonzero = 0;
|
||||
for (x=0;cards[x];x++) {
|
||||
for (i = 0; i < cards[x]->numspans; i++) {
|
||||
for (i = 0; i < wc->numspans; i++) {
|
||||
if (cards[x]->tspans[i]->syncpos) {
|
||||
nonzero = 1;
|
||||
if ((cards[x]->tspans[i]->syncpos == p) &&
|
||||
|
||||
@@ -399,16 +399,22 @@ struct wcdte {
|
||||
#endif
|
||||
};
|
||||
|
||||
#ifdef HAVE_NETDEV_PRIV
|
||||
struct wcdte_netdev_priv {
|
||||
struct wcdte *wc;
|
||||
};
|
||||
#endif
|
||||
|
||||
static inline struct wcdte *
|
||||
wcdte_from_netdev(struct net_device *netdev)
|
||||
{
|
||||
#ifdef HAVE_NETDEV_PRIV
|
||||
struct wcdte_netdev_priv *priv;
|
||||
priv = netdev_priv(netdev);
|
||||
return priv->wc;
|
||||
#else
|
||||
return netdev->priv;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -493,7 +499,6 @@ wctc4xxp_skb_to_cmd(struct wcdte *wc, const struct sk_buff *skb)
|
||||
return cmd;
|
||||
}
|
||||
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 2, 0)
|
||||
static void
|
||||
wctc4xxp_net_set_multi(struct net_device *netdev)
|
||||
{
|
||||
@@ -501,15 +506,6 @@ wctc4xxp_net_set_multi(struct net_device *netdev)
|
||||
DTE_DEBUG(DTE_DEBUG_GENERAL, "%s promiscuity:%d\n",
|
||||
__func__, netdev->promiscuity);
|
||||
}
|
||||
#else
|
||||
static void
|
||||
wctc4xxp_set_rx_mode(struct net_device *netdev)
|
||||
{
|
||||
struct wcdte *wc = wcdte_from_netdev(netdev);
|
||||
DTE_DEBUG(DTE_DEBUG_GENERAL, "%s promiscuity:%d\n",
|
||||
__func__, netdev->promiscuity);
|
||||
}
|
||||
#endif
|
||||
|
||||
static int
|
||||
wctc4xxp_net_up(struct net_device *netdev)
|
||||
@@ -673,11 +669,7 @@ wctc4xxp_net_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd)
|
||||
|
||||
#ifdef HAVE_NET_DEVICE_OPS
|
||||
static const struct net_device_ops wctc4xxp_netdev_ops = {
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 2, 0)
|
||||
.ndo_set_multicast_list = &wctc4xxp_net_set_multi,
|
||||
#else
|
||||
.ndo_set_rx_mode = &wctc4xxp_set_rx_mode,
|
||||
#endif
|
||||
.ndo_open = &wctc4xxp_net_up,
|
||||
.ndo_stop = &wctc4xxp_net_down,
|
||||
.ndo_start_xmit = &wctc4xxp_net_hard_start_xmit,
|
||||
@@ -699,14 +691,23 @@ wctc4xxp_net_register(struct wcdte *wc)
|
||||
{
|
||||
int res;
|
||||
struct net_device *netdev;
|
||||
# ifdef HAVE_NETDEV_PRIV
|
||||
struct wcdte_netdev_priv *priv;
|
||||
# endif
|
||||
const char our_mac[] = { 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff};
|
||||
|
||||
# ifdef HAVE_NETDEV_PRIV
|
||||
netdev = alloc_netdev(sizeof(*priv), wc->board_name, ether_setup);
|
||||
if (!netdev)
|
||||
return -ENOMEM;
|
||||
priv = netdev_priv(netdev);
|
||||
priv->wc = wc;
|
||||
# else
|
||||
netdev = alloc_netdev(0, wc->board_name, ether_setup);
|
||||
if (!netdev)
|
||||
return -ENOMEM;
|
||||
netdev->priv = wc;
|
||||
# endif
|
||||
memcpy(netdev->dev_addr, our_mac, sizeof(our_mac));
|
||||
|
||||
# ifdef HAVE_NET_DEVICE_OPS
|
||||
@@ -1614,20 +1615,6 @@ wctc4xxp_transmit_cmd(struct wcdte *wc, struct tcb *cmd)
|
||||
{
|
||||
int res;
|
||||
|
||||
/* If we're shutdown all commands will timeout. Just complete the
|
||||
* command here with the timeout flag */
|
||||
if (unlikely(test_bit(DTE_SHUTDOWN, &wc->flags))) {
|
||||
if (cmd->flags & DO_NOT_AUTO_FREE) {
|
||||
cmd->flags |= DTE_CMD_TIMEOUT;
|
||||
list_del_init(&cmd->node);
|
||||
complete(&cmd->complete);
|
||||
} else {
|
||||
list_del(&cmd->node);
|
||||
free_cmd(cmd);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (cmd->data_len < MIN_PACKET_LEN) {
|
||||
memset((u8 *)(cmd->data) + cmd->data_len, 0,
|
||||
MIN_PACKET_LEN-cmd->data_len);
|
||||
@@ -2172,13 +2159,12 @@ wctc4xxp_write(struct file *file, const char __user *frame,
|
||||
}
|
||||
|
||||
if (DAHDI_FORMAT_G723_1 == dtc->srcfmt) {
|
||||
if ((G723_5K_BYTES != count) && (G723_6K_BYTES != count) &&
|
||||
(G723_SID_BYTES != count)) {
|
||||
if ((G723_5K_BYTES != count) && (G723_6K_BYTES != count)) {
|
||||
DTE_DEBUG(DTE_DEBUG_GENERAL,
|
||||
"Trying to transcode packet into G723 format " \
|
||||
"that is %Zu bytes instead of the expected " \
|
||||
"%d/%d/%d bytes.\n", count, G723_5K_BYTES,
|
||||
G723_6K_BYTES, G723_SID_BYTES);
|
||||
"%d/%d bytes.\n", count, G723_5K_BYTES,
|
||||
G723_6K_BYTES);
|
||||
return -EINVAL;
|
||||
}
|
||||
cpvt->timestamp += G723_SAMPLES;
|
||||
@@ -2755,10 +2741,11 @@ wctc4xxp_start_dma(struct wcdte *wc)
|
||||
}
|
||||
|
||||
static void
|
||||
_wctc4xxp_stop_dma(struct wcdte *wc)
|
||||
wctc4xxp_stop_dma(struct wcdte *wc)
|
||||
{
|
||||
/* Disable interrupts and reset */
|
||||
unsigned int reg;
|
||||
unsigned long newjiffies;
|
||||
/* Disable interrupts */
|
||||
wctc4xxp_setintmask(wc, 0x00000000);
|
||||
wctc4xxp_setctl(wc, 0x0084, 0x00000000);
|
||||
@@ -2767,14 +2754,7 @@ _wctc4xxp_stop_dma(struct wcdte *wc)
|
||||
reg = wctc4xxp_getctl(wc, 0x0000);
|
||||
reg |= 0x00000001;
|
||||
wctc4xxp_setctl(wc, 0x0000, reg);
|
||||
}
|
||||
|
||||
static void
|
||||
wctc4xxp_stop_dma(struct wcdte *wc)
|
||||
{
|
||||
unsigned long newjiffies;
|
||||
|
||||
_wctc4xxp_stop_dma(wc);
|
||||
newjiffies = jiffies + HZ; /* One second timeout */
|
||||
/* We'll wait here for the part to come out of reset */
|
||||
while (((wctc4xxp_getctl(wc, 0x0000)) & 0x00000001) &&
|
||||
@@ -2782,6 +2762,7 @@ wctc4xxp_stop_dma(struct wcdte *wc)
|
||||
msleep(1);
|
||||
}
|
||||
|
||||
|
||||
#define MDIO_SHIFT_CLK 0x10000
|
||||
#define MDIO_DATA_WRITE1 0x20000
|
||||
#define MDIO_ENB 0x00000
|
||||
@@ -3326,19 +3307,13 @@ wctc4xxp_watchdog(unsigned long data)
|
||||
if (time_after(jiffies, cmd->timeout)) {
|
||||
if (++cmd->retries > MAX_RETRIES) {
|
||||
if (!(cmd->flags & TX_COMPLETE)) {
|
||||
|
||||
cmd->flags |= DTE_CMD_TIMEOUT;
|
||||
list_del_init(&cmd->node);
|
||||
complete(&cmd->complete);
|
||||
|
||||
set_bit(DTE_SHUTDOWN, &wc->flags);
|
||||
spin_unlock(&wc->cmd_list_lock);
|
||||
_wctc4xxp_stop_dma(wc);
|
||||
wctc4xxp_stop_dma(wc);
|
||||
DTE_PRINTK(ERR,
|
||||
"Board malfunctioning. " \
|
||||
"Halting operation.\n");
|
||||
reschedule_timer = 0;
|
||||
break;
|
||||
return;
|
||||
}
|
||||
/* ERROR: We've retried the command and
|
||||
* haven't received the ACK or the response.
|
||||
|
||||
@@ -921,8 +921,12 @@ static inline void wctdm_transmitprep(struct wctdm *wc, unsigned char *writechun
|
||||
if (x < DAHDI_CHUNKSIZE - 1) {
|
||||
writechunk[EFRAME_SIZE] = wc->ctlreg;
|
||||
writechunk[EFRAME_SIZE + 1] = wc->txident++;
|
||||
if (4 == wc->desc->ports)
|
||||
writechunk[EFRAME_SIZE + 2] = wc->tdm410leds;
|
||||
|
||||
if ((wc->desc->ports == 4) && ((wc->ctlreg & 0x10))) {
|
||||
writechunk[EFRAME_SIZE + 2] = 0;
|
||||
for (y = 0; y < 4; y++)
|
||||
writechunk[EFRAME_SIZE + 2] |= (1 << y);
|
||||
}
|
||||
}
|
||||
writechunk += (EFRAME_SIZE + EFRAME_GAP);
|
||||
}
|
||||
@@ -1817,8 +1821,7 @@ static void wctdm_fxs_off_hook(struct wctdm *wc, const int card)
|
||||
SLIC_LF_ACTIVE_FWD;
|
||||
break;
|
||||
}
|
||||
if ((fxs->lasttxhook & SLIC_LF_SETMASK) != SLIC_LF_OPEN)
|
||||
wctdm_fxs_hooksig(wc, card, DAHDI_TXSIG_OFFHOOK);
|
||||
wctdm_fxs_hooksig(wc, card, DAHDI_TXSIG_OFFHOOK);
|
||||
dahdi_hooksig(wc->aspan->span.chans[card], DAHDI_RXSIG_OFFHOOK);
|
||||
|
||||
#ifdef DEBUG
|
||||
@@ -1834,8 +1837,7 @@ static void wctdm_fxs_on_hook(struct wctdm *wc, const int card)
|
||||
if (debug & DEBUG_CARD)
|
||||
dev_info(&wc->vb.pdev->dev,
|
||||
"fxs_on_hook: Card %d Going on hook\n", card);
|
||||
if ((fxs->lasttxhook & SLIC_LF_SETMASK) != SLIC_LF_OPEN)
|
||||
wctdm_fxs_hooksig(wc, card, DAHDI_TXSIG_ONHOOK);
|
||||
wctdm_fxs_hooksig(wc, card, DAHDI_TXSIG_ONHOOK);
|
||||
dahdi_hooksig(wc->aspan->span.chans[card], DAHDI_RXSIG_ONHOOK);
|
||||
fxs->oldrxhook = 0;
|
||||
}
|
||||
@@ -4590,21 +4592,6 @@ static inline void remove_sysfs_files(struct wctdm *wc) { return; }
|
||||
|
||||
#endif /* CONFIG_VOICEBUS_SYSFS */
|
||||
|
||||
static void wctdm_set_tdm410_leds(struct wctdm *wc)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (4 != wc->desc->ports)
|
||||
return;
|
||||
|
||||
wc->tdm410leds = 0; /* all on by default */
|
||||
for (i = 0; i < wc->desc->ports; ++i) {
|
||||
/* Turn off the LED for any module that isn't installed. */
|
||||
if (MOD_TYPE_NONE == wc->modtype[i])
|
||||
wc->tdm410leds |= (1 << i);
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef USE_ASYNC_INIT
|
||||
struct async_data {
|
||||
struct pci_dev *pdev;
|
||||
@@ -4747,8 +4734,6 @@ __wctdm_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||
/* Now track down what modules are installed */
|
||||
wctdm_identify_modules(wc);
|
||||
|
||||
wctdm_set_tdm410_leds(wc);
|
||||
|
||||
if (fatal_signal_pending(current)) {
|
||||
wctdm_back_out_gracefully(wc);
|
||||
return -EINTR;
|
||||
|
||||
@@ -165,8 +165,7 @@ struct wctdm {
|
||||
unsigned char rxident;
|
||||
|
||||
int flags[NUM_MODULES]; /* bitmap of board-specific + module-specific flags */
|
||||
u8 ctlreg;
|
||||
u8 tdm410leds;
|
||||
unsigned char ctlreg; /* FIXME: something to do with VPM? */
|
||||
|
||||
int mods_per_board; /* maximum number of modules for this board */
|
||||
int digi_mods; /* number of digital modules present */
|
||||
|
||||
@@ -88,6 +88,7 @@ static const struct dahdi_echocan_ops vpm150m_ec_ops = {
|
||||
};
|
||||
|
||||
static struct t1 *ifaces[WC_MAX_IFACES];
|
||||
spinlock_t ifacelock = SPIN_LOCK_UNLOCKED;
|
||||
|
||||
struct t1_desc {
|
||||
const char *name;
|
||||
@@ -627,22 +628,12 @@ static void t1_setleds(struct t1 *wc, int leds)
|
||||
submit_cmd(wc, cmd);
|
||||
}
|
||||
|
||||
/**
|
||||
* t1_getpins - Returns the value of the jumpers on the card.
|
||||
* @wc: The card to read from.
|
||||
* @pins: Pointer to u8 character to hold the pins value.
|
||||
*
|
||||
* Returns 0 on success, otherwise an error code.
|
||||
*
|
||||
*/
|
||||
static int t1_getpins(struct t1 *wc, u8 *pins)
|
||||
static inline int t1_getpins(struct t1 *wc, int inisr)
|
||||
{
|
||||
struct command *cmd;
|
||||
unsigned long flags;
|
||||
unsigned long ret;
|
||||
|
||||
*pins = 0;
|
||||
|
||||
cmd = get_free_cmd(wc);
|
||||
BUG_ON(!cmd);
|
||||
|
||||
@@ -665,9 +656,9 @@ static int t1_getpins(struct t1 *wc, u8 *pins)
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
*pins = cmd->data;
|
||||
ret = cmd->data;
|
||||
free_cmd(wc, cmd);
|
||||
return 0;
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void __t1xxp_set_clear(struct t1 *wc)
|
||||
@@ -1648,7 +1639,6 @@ static inline unsigned char t1_vpm_out(struct t1 *wc, int unit, const unsigned i
|
||||
|
||||
static int t1_hardware_post_init(struct t1 *wc)
|
||||
{
|
||||
int res;
|
||||
unsigned int reg;
|
||||
int x;
|
||||
|
||||
@@ -1659,12 +1649,10 @@ static int t1_hardware_post_init(struct t1 *wc)
|
||||
else
|
||||
wc->spantype = TYPE_T1;
|
||||
} else {
|
||||
u8 pins;
|
||||
res = t1_getpins(wc, &pins);
|
||||
if (res)
|
||||
return res;
|
||||
|
||||
wc->spantype = (pins & 0x01) ? TYPE_T1 : TYPE_E1;
|
||||
if (t1_getpins(wc,0) & 0x01) /* returns 1 for T1 mode */
|
||||
wc->spantype = TYPE_T1;
|
||||
else
|
||||
wc->spantype = TYPE_E1;
|
||||
}
|
||||
debug_printk(wc, 1, "spantype: %s\n", 1 == wc->spantype ? "T1" : "E1");
|
||||
|
||||
@@ -2339,13 +2327,7 @@ static int __devinit te12xp_init_one(struct pci_dev *pdev, const struct pci_devi
|
||||
free_wc(wc);
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
res = t1_hardware_post_init(wc);
|
||||
if (res) {
|
||||
voicebus_release(&wc->vb);
|
||||
free_wc(wc);
|
||||
return res;
|
||||
}
|
||||
t1_hardware_post_init(wc);
|
||||
|
||||
for (x = 0; x < (wc->spantype == TYPE_E1 ? 31 : 24); x++) {
|
||||
if (!(wc->chans[x] = kmalloc(sizeof(*wc->chans[x]), GFP_KERNEL))) {
|
||||
@@ -2381,7 +2363,6 @@ static void __devexit te12xp_remove_one(struct pci_dev *pdev)
|
||||
remove_sysfs_files(wc);
|
||||
|
||||
clear_bit(INITIALIZED, &wc->bit_flags);
|
||||
smp_mb__after_clear_bit();
|
||||
|
||||
del_timer_sync(&wc->timer);
|
||||
flush_workqueue(wc->wq);
|
||||
|
||||
@@ -77,6 +77,8 @@
|
||||
#define TYPE_T1 1
|
||||
#define TYPE_E1 2
|
||||
|
||||
extern spinlock_t ifacelock;
|
||||
|
||||
struct command {
|
||||
struct list_head node;
|
||||
struct completion complete;
|
||||
|
||||
@@ -399,7 +399,7 @@ static xpd_t *FXS_card_new(xbus_t *xbus, int unit, int subunit, const xproto_tab
|
||||
else
|
||||
regular_channels = min(8, subunit_ports);
|
||||
channels = regular_channels;
|
||||
if(unit == 0 && subtype != 4)
|
||||
if(unit == 0)
|
||||
channels += 6; /* 2 DIGITAL OUTPUTS, 4 DIGITAL INPUTS */
|
||||
xpd = xpd_alloc(xbus, unit, subunit, subtype, subunits, sizeof(struct FXS_priv_data), proto_table, channels);
|
||||
if(!xpd)
|
||||
|
||||
@@ -68,7 +68,7 @@ struct counter {
|
||||
|
||||
static xbus_t *global_xbus;
|
||||
static bool tx_ready = 1;
|
||||
static DEFINE_SPINLOCK(tx_ready_lock);
|
||||
static spinlock_t tx_ready_lock = SPIN_LOCK_UNLOCKED;
|
||||
static struct xframe_queue txpool;
|
||||
static unsigned int pcm_in_pool_count;
|
||||
static bool disconnecting;
|
||||
|
||||
@@ -36,7 +36,7 @@ static int parport_toggles[8]; /* 8 bit flip-flop */
|
||||
void flip_parport_bit(unsigned char bitnum)
|
||||
{
|
||||
static unsigned char last_value;
|
||||
DEFINE_SPINLOCK(lock);
|
||||
spinlock_t lock = SPIN_LOCK_UNLOCKED;
|
||||
unsigned long flags;
|
||||
unsigned char mask;
|
||||
unsigned char value;
|
||||
|
||||
@@ -78,7 +78,7 @@ static void transport_init(xbus_t *xbus, struct xbus_ops *ops, ushort max_send_s
|
||||
static void transport_destroy(xbus_t *xbus);
|
||||
|
||||
/* Data structures */
|
||||
static DEFINE_SPINLOCK(xbuses_lock);
|
||||
static spinlock_t xbuses_lock = SPIN_LOCK_UNLOCKED;
|
||||
#ifdef CONFIG_PROC_FS
|
||||
static struct proc_dir_entry *proc_xbuses = NULL;
|
||||
#endif
|
||||
@@ -104,7 +104,7 @@ int xbus_check_unique(xbus_t *xbus)
|
||||
{
|
||||
if (!xbus)
|
||||
return -ENOENT;
|
||||
if (xbus->label && *(xbus->label)) {
|
||||
if (xbus->label) {
|
||||
xbus_t *xbus_old;
|
||||
|
||||
XBUS_DBG(DEVICES, xbus, "Checking LABEL='%s'\n", xbus->label);
|
||||
@@ -118,7 +118,7 @@ int xbus_check_unique(xbus_t *xbus)
|
||||
return -EBUSY;
|
||||
}
|
||||
} else {
|
||||
XBUS_NOTICE(xbus, "Missing board label (old Astribank?)\n");
|
||||
XBUS_NOTICE(xbus, "MISSING BOARD LABEL!!!\n");
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -405,7 +405,7 @@ xpacket_t *xframe_next_packet(xframe_t *frm, int len)
|
||||
return (xpacket_t *)(frm->packets + newlen - len);
|
||||
}
|
||||
|
||||
static DEFINE_SPINLOCK(serialize_dump_xframe);
|
||||
static spinlock_t serialize_dump_xframe = SPIN_LOCK_UNLOCKED;
|
||||
|
||||
static void do_hexdump(const char msg[], byte *data, uint16_t len)
|
||||
{
|
||||
|
||||
@@ -55,8 +55,8 @@ static struct xpp_ticker dahdi_ticker;
|
||||
* I.e: one of our AB or dahdi_ticker
|
||||
*/
|
||||
static struct xpp_ticker *ref_ticker = NULL;
|
||||
static DEFINE_SPINLOCK(ref_ticker_lock);
|
||||
static DEFINE_SPINLOCK(elect_syncer_lock);
|
||||
static spinlock_t ref_ticker_lock = SPIN_LOCK_UNLOCKED;
|
||||
static spinlock_t elect_syncer_lock = SPIN_LOCK_UNLOCKED;
|
||||
static bool force_dahdi_sync = 0; /* from /sys/bus/astribanks/drivers/xppdrv/sync */
|
||||
static xbus_t *global_ticker;
|
||||
static struct xpp_ticker global_ticks_series;
|
||||
|
||||
@@ -57,7 +57,6 @@ typedef unsigned gfp_t; /* Added in 2.6.14 */
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 31)
|
||||
/*
|
||||
* FIXME: Kludge for 2.6.19
|
||||
* bool is now defined as a proper boolean type (gcc _Bool)
|
||||
@@ -67,12 +66,6 @@ typedef unsigned gfp_t; /* Added in 2.6.14 */
|
||||
int name = init; \
|
||||
module_param(name, bool, perm); \
|
||||
MODULE_PARM_DESC(name, desc " [default " #init "]")
|
||||
#else
|
||||
#define DEF_PARM_BOOL(name, init, perm, desc) \
|
||||
bool name = init; \
|
||||
module_param(name, bool, perm); \
|
||||
MODULE_PARM_DESC(name, desc " [default " #init "]")
|
||||
#endif
|
||||
|
||||
#define DEF_PARM(type,name,init,perm,desc) \
|
||||
type name = init; \
|
||||
|
||||
@@ -242,7 +242,7 @@ struct xusb {
|
||||
|
||||
};
|
||||
|
||||
static DEFINE_SPINLOCK(xusb_lock);
|
||||
static spinlock_t xusb_lock = SPIN_LOCK_UNLOCKED;
|
||||
static xusb_t *xusb_array[MAX_BUSES] = {};
|
||||
static unsigned bus_count = 0;
|
||||
|
||||
|
||||
@@ -75,12 +75,6 @@ static const xproto_table_t *xproto_table(xpd_type_t cardtype)
|
||||
return xprotocol_tables[cardtype];
|
||||
}
|
||||
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 3, 0)
|
||||
#define MODULE_REFCOUNT_FORMAT "%s refcount was %d\n"
|
||||
#else
|
||||
#define MODULE_REFCOUNT_FORMAT "%s refcount was %lu\n"
|
||||
#endif
|
||||
|
||||
const xproto_table_t *xproto_get(xpd_type_t cardtype)
|
||||
{
|
||||
const xproto_table_t *xtable;
|
||||
@@ -100,8 +94,7 @@ const xproto_table_t *xproto_get(xpd_type_t cardtype)
|
||||
if(xtable) {
|
||||
BUG_ON(!xtable->owner);
|
||||
#ifdef CONFIG_MODULE_UNLOAD
|
||||
DBG(GENERAL, MODULE_REFCOUNT_FORMAT, xtable->name,
|
||||
module_refcount(xtable->owner));
|
||||
DBG(GENERAL, "%s refcount was %d\n", xtable->name, module_refcount(xtable->owner));
|
||||
#endif
|
||||
if(!try_module_get(xtable->owner)) {
|
||||
ERR("%s: try_module_get for %s failed.\n", __FUNCTION__, xtable->name);
|
||||
@@ -115,8 +108,7 @@ void xproto_put(const xproto_table_t *xtable)
|
||||
{
|
||||
BUG_ON(!xtable);
|
||||
#ifdef CONFIG_MODULE_UNLOAD
|
||||
DBG(GENERAL, MODULE_REFCOUNT_FORMAT, xtable->name,
|
||||
module_refcount(xtable->owner));
|
||||
DBG(GENERAL, "%s refcount was %d\n", xtable->name, module_refcount(xtable->owner));
|
||||
BUG_ON(module_refcount(xtable->owner) <= 0);
|
||||
#endif
|
||||
module_put(xtable->owner);
|
||||
|
||||
@@ -43,7 +43,6 @@
|
||||
#endif
|
||||
#include <linux/fs.h>
|
||||
#include <linux/kobject.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/ioctl.h>
|
||||
|
||||
#ifdef CONFIG_DAHDI_NET
|
||||
@@ -70,10 +69,6 @@
|
||||
#define DAHDI_IRQ_HANDLER(a) static irqreturn_t a(int irq, void *dev_id, struct pt_regs *regs)
|
||||
#endif
|
||||
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
|
||||
#define HAVE_NET_DEVICE_OPS
|
||||
#endif
|
||||
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,18)
|
||||
#define DAHDI_IRQ_SHARED IRQF_SHARED
|
||||
#define DAHDI_IRQ_DISABLED IRQF_DISABLED
|
||||
@@ -92,13 +87,7 @@
|
||||
#endif
|
||||
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,26)
|
||||
# ifdef RHEL_RELEASE_VERSION
|
||||
# if RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(5, 6)
|
||||
#define dev_name(dev) ((dev)->bus_id)
|
||||
# endif
|
||||
# else
|
||||
#define dev_name(dev) ((dev)->bus_id)
|
||||
# endif
|
||||
#define dev_name(dev) (dev)->bus_id
|
||||
#define dev_set_name(dev, format, ...) \
|
||||
snprintf((dev)->bus_id, BUS_ID_SIZE, format, ## __VA_ARGS__);
|
||||
#endif
|
||||
@@ -1290,10 +1279,6 @@ wait_for_completion_interruptible_timeout(struct completion *x,
|
||||
const struct pci_device_id _x[] __devinitdata
|
||||
#endif
|
||||
|
||||
#ifndef DEFINE_SPINLOCK
|
||||
#define DEFINE_SPINLOCK(x) spinlock_t x = SPIN_LOCK_UNLOCKED
|
||||
#endif
|
||||
|
||||
#ifndef DMA_BIT_MASK
|
||||
#define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1))
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user