2011-09-06 Shaun Ruffell * dahdi-linux 2.5.0.1 released. 2011-09-05 10:29 +0000 [r10180] Tzafrir Cohen * drivers/dahdi/xpp/firmwares/PIC_TYPE_1.hex, drivers/dahdi/xpp/firmwares/PIC_TYPE_2.hex, drivers/dahdi/xpp/firmwares/FPGA_1161.hex: xpp: firmware to detect the new 2+6 module New firmwares to handle the new 2FXS/6FXO module. FPGA_1161.hex, PIC_TYPE_1.hex, PIC_TYPE_2.hex of internal rev. 9732 Signed-off-by: Tzafrir Cohen 2011-08-30 21:06 +0000 [r10173] Shaun Ruffell * drivers/dahdi/firmware/Makefile: wcte12xp, wctdm24xxp: Update VPMOCT032 firmware to 1.11.0. Firmware version 1.11.0 resolves an issue where the driver fails to detect certain VPMOCT032 modules after a cold boot. Signed-off-by: Doug Bailey Acked-by: Shaun Ruffell Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=10172 2011-08-28 09:45 +0000 [r10157] Tzafrir Cohen * 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 2011-08-19 22:53 +0000 [r10149-10150] Shaun Ruffell * drivers/dahdi/wctdm24xxp/base.c: wctdm24xxp: Set 'fastoffhook' counter to 8ms and turn off calibration delay. r10006 "wctdm24xxp: Add 'fastpick' module parameter." copied the fast-off hook module parameter from the wctdm.c driver, but the setting in that driver does not match the data sheet. The previous commit did not actually change any of the significant bits in that register. Also, that commit changed the timer, but did not disable the callibration delay which is necessary for Type-II callerid. The fastpickup option in the wctdm24xxp driver should now match the fastpickup option in the wctdm driver. DAHDI-224. Reported-By: Kinnith Wallace Signed-off-by: Shaun Ruffell Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=10148 * drivers/dahdi/wctdm.c: wctdm: Set 'fastpickup' counter to 8ms This fixes what looks like a typo in r1055 [1]. [1] http://svnview.digium.com/svn/dahdi?view=revision&revision=1055 Reported-by: Kinnith Wallace Signed-off-by: Shaun Ruffell Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=10147 2011-08-18 19:35 +0000 [r10145-10146] Shaun Ruffell * drivers/dahdi/wctdm24xxp/wctdm24xxp.h, drivers/dahdi/wctdm24xxp/base.c: wctdm24xxp: Use our own free list for IRQ commands. Really only *necessary* when SLAB debugging is enabled, but in that case, can reduce the chance of latency bumps when first loading the driver. Otherwise the constant slab poisoning / checking in interrupt context from the kmalloc / kfrees is too much. Signed-off-by: Shaun Ruffell Acked-by: Russ Meyerriecks Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=10144 * 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 Signed-off-by: Russ Meyerriecks Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=10140 2011-08-15 21:55 +0000 [r10139] Shaun Ruffell * drivers/dahdi/wctc4xxp/base.c: wctc4xxp: Fix lock imbalance in wctc4xxp_watchdog. r10082 "wctc4xxp: Cleanup in-flight commands when halting due to hardware error." introduced a lock imblance on the error path where the cmd_list_lock would be unlocked twice when the board is halted due to a hardware error. Thanks sparse. Signed-off-by: Shaun Ruffell Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=10138 2011-08-12 16:06 +0000 [r10115-10119] Shaun Ruffell * drivers/dahdi/voicebus/voicebus.c: wcte12xp, wctdm24xxp: Force local interrupts off in the interrupt handler. r10066 "wctdm24xxp, wcte12xp: Run the ISR with interrupts disabled." requested that the interrupt handler be run in "fast" mode (disabled) but this isn't necessarily guaranteed. This patch makes the interrupt handler itself disable all the interrupts. Linux commit 470c66239ef0336429b35345f3f615d47341e13b [1] contains a comment about why this is necessary. [1] http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=470c66239ef03364 (closes issue DAHLIN-248) Reported-and-Tested-by: Vladimir Mikhelson Signed-off-by: Shaun Ruffell Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=10118 * 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 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 (License #6268) Changed dahdi_ec_chunk to dahdi_ec_span. Signed-off-by: Shaun Ruffell Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=10110 * 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 Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=10096 2011-08-09 12:26 +0000 [r10098-10100] Tzafrir Cohen * drivers/dahdi/xpp/firmwares/FPGA_1161.hex: FPGA_1161 rev 9605: EC related bug fixes Astribank II FPGA firmware rev 9605. Includes two bug fixes: * Error in checking EC licenses when the license was for exactly 64 or 128 channels. * Proper handling of a slave FXO Astribank (in line with the quirks handling from r10019). Signed-off-by: Tzafrir Cohen * / (added): A stable branch for DAHDI-linux 2.5 2011-08-05 Shaun Ruffell * dahdi-linux 2.5.0 released. 2011-07-26 20:19 +0000 [r10082] Shaun Ruffell * 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 2011-07-22 17:56 +0000 [r10079] Russ Meyerriecks * 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 Signed-off-by: Shaun Ruffell 2011-07-21 Shaun Ruffell * dahdi-linux version 2.5.0-rc2 released. 2011-07-21 16:26 +0000 [r10066-10070] Shaun Ruffell * drivers/dahdi/dahdi-base.c: dahdi: Drivers that do not support hwec should not report hwec is available. When attaching software echocans to a channel, if there is a hardware echocan available always give preference to them. Revision 9995 "dahdi: Always attach hwec to a channel if available" had an error where if a driver did not even support an option of hardware echocan, dahdi-base would take that to mean there always was a hardware echocan available on the channel. DAHLIN-246 Reported-by: Michael L. Young Signed-off-by: Shaun Ruffell Acked-by: Tzafrir Cohen * drivers/dahdi/voicebus/voicebus.c: wctdm24xxp, wcte12xp: Run the ISR with interrupts disabled. Revision 9886, "wcte12xp: Use the in-hardirq versions of dahdi_receive/dahdi_transmit", changed the call into dahdi_receive and dahdi_transmit to use versions that assume local interrupts are already disabled. Not all versions of the kernel run interrupt service routines with all interrupts disabled and therefore it was possible to lock up a CPU with a recursive grab of the chan_lock. When LOCKDEP was enabled (on debug kernels) interrupt handlers were run atomically so this problem would only occur on pre 2.6.35 kernels that did not have lockdep enabled. Signed-off-by: Shaun Ruffell 2011-07-20 21:32 +0000 [r10063-10064] Russ Meyerriecks * drivers/dahdi/wcte12xp/base.c: wcte12xp: Fix bug when not recognizing loopup codes The wcte12xp wasn't recognizing loopup/loopdown signals. The debounce was so long that it was preventing the loopup/loopdown signals from being registered properly. Removed the debounce entirely as it was unnecessary to the operation. Signed-off-by: Russ Meyerriecks Acked-by: Shaun Ruffell * drivers/dahdi/wct4xxp/base.c: wct4xxp: Fixed a bug where it sent loopdown signals forever The wct4xxp driver was resetting it's maint state to NONE prematurely. Signed-off-by: Russ Meyerriecks Acked-by: Shaun Ruffell 2011-07-20 17:24 +0000 [r10060-10061] Shaun Ruffell * drivers/dahdi/wct4xxp/base.c: wct4xxp: Fix compilation when VPM_SUPPORT is not defined. Signed-off-by: Shaun Ruffell * 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 Acked-by: Shaun Ruffell Acked-by: Tzafrir Cohen 2011-07-20 16:50 +0000 [r10050-10058] Tzafrir Cohen * README: README: KVERS, KSRC in live.conf Signed-off-by: Tzafrir Cohen * build_tools/live_dahdi: live_dahdi: symlink_ast live_dahdi: Add a new command: symlink_ast, to make the system's /etc/asterisk/dahdi-channels.conf a symlink to the one generated by 'reload' / 'genconf'. If the system dahdi-channels.conf is a generated one and has not edited, there's no real harm with running this. Signed-off-by: Tzafrir Cohen * drivers/dahdi/dahdi-base.c: get registration_mutex at free_pseudo Make sure that the call to dahdi_chan_unreg() in free_pseudo() is protected by the registration_mutex, like the other calls to that function. Signed-off-by: Tzafrir Cohen Acked-By: Oron Peled Acked-by: Shaun Ruffell * drivers/dahdi/xpp/xbus-core.c: xpp: increase command queue lenge to 1000 Required by CAS in latest (2.5) DAHDI versions. Signed-off-by: Tzafrir Cohen * drivers/dahdi/xpp/xbus-core.h: xpp: make quirk bit flags unsigned This avoids a nag about a meaningless single-bit signed int. Signed-off-by: Tzafrir Cohen * drivers/dahdi/xpp/card_pri.c: xpp: PRI_timing_priority can be static. Signed-off-by: Tzafrir Cohen * drivers/dahdi/xpp/xframe_queue.c: xpp: rate limit queue overflow messages If the CPU becomes overly busy, merely printing the "Overflow in the recieve_queue" messages becomes CPU-intensive on its own right. Signed-off-by: Tzafrir Cohen * build_tools/live_dahdi: live_dahdi: xpp_fxloader: use live xpp.conf xpp_fxloader also reads /etc/dahdi/xpp.conf in one specific case. Make it use the live copy. * build_tools/live_dahdi: live_dahdi: no need to create asterisk at genconf /etc/asterisk already gets generated at config. No need to re-create it at genconf time. Signed-off-by: Tzafrir Cohen 2011-07-18 23:32 +0000 [r10047] Shaun Ruffell * 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 Acked-by: Russ Meyerriecks 2011-07-12 18:15 +0000 [r10036-10038] Tzafrir Cohen * drivers/dahdi/xpp/firmwares/Makefile: xpp: install Octasic frmware if it's there If the OCT6104E-256D.ima Octasic firmware was downloaded to the build directory, install it over with the rest of the firmware files. Signed-off-by: Tzafrir Cohen * drivers/dahdi/xpp/xpp_dahdi.c: xpp: Demote notices for HWEC create/free to debug Signed-off-by: Tzafrir Cohen * drivers/dahdi/dahdi-base.c: dahdi: Add dynamic dahdi parameter hwec_overrides_swec. If set to true (default) a HWEC, if available on the channel, takes priority over any software echocan configured in /etc/dahdi/system.conf. This has historically been the default behavior in all released versions of DAHDI that support module echocans. Otherwise, hwec_overrides_swec is set to false, HWEC is chosen only via the "echocanceller=hwec" directive. Signed-off-by: Shaun Ruffell Signed-off-By: Tzafrir Cohen Acked-By: Oron Peled 2011-07-07 13:43 +0000 [r10028] Tzafrir Cohen * build_tools/live_dahdi: live_dahdi: create asterisk in the live tree Make sure you have etc/asterisk in the live tree before generating configuration. Signed-off-by: Tzafrir Cohen 2011-07-05 17:23 +0000 [r10024] Shaun Ruffell * drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_events.c, drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_channel.c: oct612x: Eliminate some compiler warnings. Eliminate "large integer implicitly truncated to unsigned type" warnings from r10010. Signed-off-by: Shaun Ruffell Acked-by: Doug Bailey Acked-by: Tzafrir Cohen 2011-07-04 14:05 +0000 [r10019-10022] Tzafrir Cohen * drivers/dahdi/xpp/card_fxs.c: xpp: xpd_fxs: ring_trapez parameter This adds module parameter 'ring_trapez'. When set, the wave form of the ring tone is set to be a trapezoid, rather than sine. Thus making the ring stronger. This is a boolean parameter of the module xpd_fxs. Takes effect at the beginning of the next ring. Signed-off-by: Tzafrir Cohen * drivers/dahdi/xpp/card_pri.c, drivers/dahdi/xpp/card_bri.c: A number of cases of testing for unsigned int < 0 Signed-off-by: Tzafrir Cohen * drivers/dahdi/xpp/card_bri.c, drivers/dahdi/xpp/card_echo.c: xpp: Eliminate "set but unused" compiler warnings. gcc 4.6 complains about variables that are assigned values but then never used. Signed-off-by: Shaun Ruffell Acked-By: Tzafrir Cohen * drivers/dahdi/xpp/xpp_dahdi.c, drivers/dahdi/xpp/xbus-core.c, drivers/dahdi/xpp/xbus-core.h: xpp: add FXO HWEC quirks handling In some cases the hardware echo canceller cannot be used. Mostly related to an FXO module. * FXO module if the first module is BRI or PRI * FXS module if the Astribank has another FXO, no PRI/BRI, and is a sync slave. Signed-off-by: Oron Peled Acked-By: Tzafrir Cohen 2011-07-01 15:45 +0000 [r10016-10017] Shaun Ruffell * drivers/dahdi/wcb4xxp/base.c: wcb4xxp: Return NULL if there is not a hardware EC on installed. r9943 enabled the presence of hardware EC to be probed on a card. That change did not account for wcb4xxp based cards that did not have a hardware echocan on board. Signed-off-by: Shaun Ruffell Acked-by: Tzafrir Cohen * drivers/dahdi/wct4xxp/base.c: wct4xxp: Add module parameter to ignore rotary switch settings. The dual and quad span cards have a rotary switch onboard which controls the order that cards serviced by this driver are registered with the core of DAHDI. This commit adds a module parameter 'ignore_rotary' which, when set to 1, causes the driver to ignore the position of the rotary switch and only consider the physical slot when registering with DAHDI. Ignoring the rotary switch settings also permits the PCI device to be bound and unbound from the driver at runtime since registration with DAHDI no longer only happens when the module is first initialized. By default, the rotary switch will still be used to determine registration order. This commit does not change the default behavior. Signed-off-by: Shaun Ruffell 2011-06-30 22:02 +0000 [r10010-10014] Tzafrir Cohen * build_tools/live_dahdi: Also loca xpd_echo in live_dahdi, if available Signed-off-by: Tzafrir Cohen * drivers/dahdi/xpp/firmwares/FPGA_1161.hex, drivers/dahdi/xpp/firmwares/USB_FW.hex: xpp: FPGA_1161 rev 9252, USB_FW rev 8826: HWEC New Astribank II FPGA firmware and USB firmwares that add support for the hardware echo canceller module. Note that due to a bug in previous FPGA firmwares, an Astribank with such older firmware and with a hardware echo canceller module will not have any functioning audio at all. Signed-off-by: Tzafrir Cohen * drivers/dahdi/xpp/init_card_5_30 (added), drivers/dahdi/xpp/firmwares/Makefile: xpp: also install init (non)script for xpd_echo * drivers/dahdi/oct612x/include/oct6100api/oct6100_defines.h, drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_open.c, drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_channel.c, drivers/dahdi/oct612x/include/oct6100api/oct6100_channel_inst.h: oct612x: Fixes for Octasic user space compilation: * Don't assume a pointer diff is 16 bits only. * cOCT6100_INVALID_VALUE should be used against 32 unsigned values * Make 3 constants adjustable via '-Dmacro=value': - cOCT6100_INTERNAL_SUPER_ARRAY_SIZE - cOCT6100_MAX_ECHO_CHANNELS - cOCT6100_MAX_MIXER_EVENTS Signed-off-by: Oron Peled Signed-off-by: Tzafrir Cohen Acked-by: Doug Bailey Acked-by: Shaun Ruffell 2011-06-29 22:15 +0000 [r10000-10008] Shaun Ruffell * drivers/dahdi/wctdm24xxp/base.c: wctdm24xxp: Fix typo in previous commit for fastpickup mode. I failed to compile the commit exactly as it was committed. Signed-off-by: Shaun Ruffell * drivers/dahdi/wctdm24xxp/base.c: wctdm24xxp: Add 'fastpick' module parameter. When true / 1 the FXO port will use a shorter off-hook calibration delay. This is sometimes necessary in order to properly decode Type-II Caller ID information which is sent shortly after an FXO port goes off hook. Defaults to 0 unless opermode is "JAPAN" then it will default to 1. This functionality was ported from the wctdm.c driver. DAHDI-854. Signed-off-by: Shaun Ruffell * 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 * include/dahdi/user.h, include/dahdi/kernel.h: Revert "dahdi: Use enumeration for maintenance modes." This reverts commit r9879. Asterisk commit r264249 [1], which was committed after the switch to enumerations, requires the maintenance modes to be Changing the test in configure.ac from: AST_C_DEFINE_CHECK([DAHDI], [DAHDI_RESET_COUNTERS], [dahdi/user.h], [230]) to: AST_C_COMPILE_CHECK([DAHDI], [int foo = DAHDI_RESET_COUNTERS], [dahdi/user.h]) Would allow the maintenance modes to stand as enumerations but the potential for users to run incompatible versions does not seem worth it at this point. [1] http://svnview.digium.com/svn/asterisk?view=revision&revision=264249 Signed-off-by: Shaun Ruffell Acked-by: Russ Meyerriecks 2011-06-28 22:29 +0000 [r9997-9998] Russ Meyerriecks * drivers/dahdi/voicebus/vpmoct.c, drivers/dahdi/wcte12xp/base.c, drivers/dahdi/voicebus/vpmoct.h, drivers/dahdi/wctdm24xxp/xhfc.c, drivers/dahdi/wctdm24xxp/wctdm24xxp.h, drivers/dahdi/wctdm24xxp/base.c, drivers/dahdi/wcte12xp/wcte12xp.h: wcte12xp, wctdm24xxp: Load VPMOCT032 firmware in background. The firmware load has been moved into a workqueue to prevent the module load from blocking for the duration of the firmware upload. This could be up to 40 seconds. Driver prevents configuration until firmware load is finished and is_initialized() returns true. Signed-off-by: Russ Meyerriecks Signed-off-by: Shaun Ruffell * drivers/dahdi/voicebus/vpmoct.c (added), drivers/dahdi/wcte12xp/base.c, drivers/dahdi/firmware/Makefile, drivers/dahdi/voicebus/Kbuild, drivers/dahdi/voicebus/vpmoct.h (added), drivers/dahdi/wctdm24xxp/wctdm24xxp.h, drivers/dahdi/wctdm24xxp/base.c, drivers/dahdi/wcte12xp/wcte12xp.h: wcte12xp, wctdm24xxp: Add support for the VPMOCT032 hardware echocanceler. Support enabled for the vpmoct032 echo cancellation module for the wctdm24xxp and wcte12xp drivers. Signed-off-by: Russ Meyerriecks Signed-off-by: Shaun Ruffell 2011-06-28 21:29 +0000 [r9995] Shaun Ruffell * drivers/dahdi/dahdi-base.c: dahdi: Always attach hwec to a channel if available. In previous releases of DAHDI if dahdi_cfg attached a software echocan to a channel and a hardware echocan was available, the hardware echocan would be used instead of the software echocan. Since the 2.4 branch was created a new feature was merged into dahdi-linux where it was possible to mix software echocan and hardware echocan on a channel. This required using "hwec" as the echocan in the /etc/dahdi/system.conf file so that what was specified in the configuration file is what was actually used. This has resulted in users upgrading to the trunk of dahdi without updating their /etc/dahdi/system.conf file and just suddenly not using any hardware echocans any longer. The capability to mix software and hardware echocans on a span will be revisted when running dahdi_cfg on any preexisting configuration files doesn't just silently turn off hardware echocan. Signed-off-by: Shaun Ruffell 2011-06-28 18:23 +0000 [r9993] Tzafrir Cohen * drivers/dahdi/xpp/card_pri.c, drivers/dahdi/xpp/card_fxo.c, drivers/dahdi/xpp/xbus-sysfs.c, drivers/dahdi/xpp/card_fxs.c, drivers/dahdi/xpp/Kbuild, drivers/dahdi/xpp/xproto.c, drivers/dahdi/xpp/xpp_debug, drivers/dahdi/xpp/xbus-pcm.c, drivers/dahdi/xpp/xpp_dahdi.c, drivers/dahdi/xpp/xpd.h, drivers/dahdi/xpp/xproto.h, drivers/dahdi/xpp/xbus-pcm.h, drivers/dahdi/xpp/xpp_dahdi.h, drivers/dahdi/xpp/card_bri.c, drivers/dahdi/xpp/xbus-core.c, drivers/dahdi/xpp/card_echo.c (added), drivers/dahdi/xpp/card_echo.h (added), drivers/dahdi/xpp/xbus-core.h: xpd_echo: XPP Octasic echo canceler module * xpd_echo (card_echo.c) - a module to handle an Astribank hardware echo canceller module. * All other XPDs are now of type 'telephony_device'. Only a telephony device XPD provides a span to register. * The EC module will typically show up as XPD-40 and will always show up as Unregistered in 'dahdi_hardware -v' Signed-off-by: Oron Peled Signed-off-by: Tzafrir Cohen 2011-06-28 15:55 +0000 [r9989-9991] Shaun Ruffell * drivers/dahdi/dahdi-base.c: Revert "dahdi: Group dahdi timers into "rates" for improved CPU utilization." This reverts commit r9891 and is part of two commits to revert all the timer changes. Grouping the timer into rates did not allow a timers rate to be changed after another thread is already blocked on the poll call The problem that was reported was if a sip call was made to a DAHDI channel and the sip call was disconnected before answer, the DAHDI channel would never stop rining. Signed-off-by: Shaun Ruffell Acked-by: Russ Meyerriecks * drivers/dahdi/dahdi-base.c: Revert "dahdi: If a timer is not configured then we should block indefinitely." This reverts commit r9937 and is part of two commits to revert all the timer changes. Grouping the timer into rates did not allow a timers rate to be changed after another thread is already blocked on the poll call Signed-off-by: Shaun Ruffell Acked-by: Russ Meyerriecks * include/dahdi/kernel.h: kernel.h: Define __packed if not already defined. Linux kernel v2.6.22 introduced the __packed macro to allow the gcc specific __attribute__((packed)) extension to be overridden if required and checkpatch.pl will complain if you don't use it. For some strange reason gcc doesn't complain when you use non-existant decorators. Signed-off-by: Shaun Ruffell Signed-off-by: Russ Meyerriecks 2011-06-20 16:01 +0000 [r9981] Shaun Ruffell * drivers/dahdi/wcte12xp/base.c: wcte12xp: Start alarm timer after marking board initialized. r9946, "wcte12xp: Move the VPMADT032 test/configuration to module load time." introduced a race condition where it was possible for the timer that initiates the check for the alarms to fire before the board was marked initialized. This would result in a board that would never again check it's alarm state since the first time the timer runs INITIALIZED may not be set and it will not reschedule a check since it believes the driver is unloading. This happened because the check for the VPM was moved between when the timer was first setup and when INITIALIZED was then set. Now we make sure INITIALIZED is set before the timer is first setup, and move those two operations together. Signed-off-by: Shaun Ruffell Acked-by: Russ Meyerriecks 2011-06-11 01:58 +0000 [r9977] Shaun Ruffell * drivers/dahdi/wctdm24xxp/base.c: wctdm24xxp: Do not read extra register when test for FXO module fails. In commit r9968 "wctdm24xxp: Allow more than one outstanding read at a time" I introduced a regression where the transmit FIFO on the data channel of a B400M could get locked up. The result would be constant HDLC overflows when writing to the data channel. This regression did not make it into any releases and did not exhibit itself when crossing spans on a single B400M module. This is a partial revert of commit r9968. Signed-off-by: Shaun Ruffell 2011-06-02 20:04 +0000 [r9928-9971] Shaun Ruffell * drivers/dahdi/wctdm24xxp/base.c: wctdm24xxp: Do not export board number in the device description. The board number dupliates the information that is available in the location field. Exporting it as part of the description makes the name dependent on the driver bind order which is not desirable. Signed-off-by: Shaun Ruffell * drivers/dahdi/wctdm24xxp/wctdm24xxp.h, drivers/dahdi/wctdm24xxp/base.c: wctdm24xxp: Calculate the SPI offsets ahead of time. Updates the CMD_BYTE macro to use precalculated offsets. Signed-off-by: Shaun Ruffell * drivers/dahdi/wctdm24xxp/base.c: wctdm24xxp: Shorten up some of the sleeps/waits. Signed-off-by: Shaun Ruffell * drivers/dahdi/wctdm24xxp/base.c: wctdm24xxp: Allow more than one outstanding read at a time. Since every read needs to go through the complete voicebus pipeline, if we know we're going to read multiple bytes we can queue them all up. Signed-off-by: Shaun Ruffell * drivers/dahdi/wctdm24xxp/wctdm24xxp.h, drivers/dahdi/wctdm24xxp/base.c: wctdm24xxp: reglock can be used to protect the txhookstate. Signed-off-by: Shaun Ruffell * drivers/dahdi/wctdm24xxp/wctdm24xxp.h, drivers/dahdi/wctdm24xxp/base.c: wctdm24xxp: Use lists for SPI commands to the modules. Saves time in the interrupt handler by eliminating the need to scan through all of the slots in the cmd arrays. Also allows the reads from ISR context to automatically grow as the latency grows. This ensures that battery and hook state is actually checked every frame like originally intended. Signed-off-by: Shaun Ruffell * drivers/dahdi/wctdm24xxp/base.c: wctdm24xxp: Cleanup in wctdm_identify_modules. Trivial reformatting that preps it for some parallelizing the module loads. Signed-off-by: Shaun Ruffell * drivers/dahdi/wctdm24xxp/wctdm24xxp.h, drivers/dahdi/wctdm24xxp/base.c: wctdm24xxp: Remove 'pos' member from 'struct wctdm'. The card position is only used during startup so we don't need to carry it around in the strucuture. Signed-off-by: Shaun Ruffell * drivers/dahdi/wctdm24xxp/wctdm24xxp.h, drivers/dahdi/wctdm24xxp/base.c: wctdm24xxp: Drop 'flags' from 'struct wctdm_module'. The voicebus cards only support the S110M FXS modules which are based on the 3215. The module flags member was only used to hold whether we were dealing with a 3210 or 3215 SLIC, so we can drop it since we always know we'll have a 3215 based SLIC. Signed-off-by: Shaun Ruffell * drivers/dahdi/wctdm24xxp/base.c, drivers/dahdi/voicebus/GpakCust.h: wctdm24xxp: Hold the reglock longer in the interrupt handler. Cuts down on the overhead of constantly saving and restoring the interrupt registers. Signed-off-by: Shaun Ruffell * drivers/dahdi/wctdm24xxp/xhfc.c, drivers/dahdi/wctdm24xxp/wctdm24xxp.h, drivers/dahdi/wctdm24xxp/base.c, drivers/dahdi/wctdm24xxp/xhfc.h: wctdm24xxp: Pass the pointer to struct wctdm_module directly instead of index. This change gets all the easy places and saves on array dereferences when we already have the address of the module that we are interested in. Signed-off-by: Shaun Ruffell * drivers/dahdi/wctdm24xxp/base.c: wctdm24xxp: Use pointer to "struct fxs" in POLARITY_XOR. Signed-off-by: Shaun Ruffell * drivers/dahdi/wctdm24xxp/base.c: wctdm24xxp: Trivial. Reduce the indentation level in wctdm_proslic_oppending. Signed-off-by: Shaun Ruffell * drivers/dahdi/wctdm24xxp/xhfc.c, drivers/dahdi/wctdm24xxp/wctdm24xxp.h, drivers/dahdi/wctdm24xxp/base.c: wctdm24xxp: Use enumeration for module types. This change is to primarily to clarify that the types are always mutually exclusive. Signed-off-by: Shaun Ruffell * drivers/dahdi/wctdm24xxp/wctdm24xxp.h, drivers/dahdi/wctdm24xxp/base.c: wctdm24xxp: Group the QRV members together. This also allows us to add them to the union with the other module types so they do not add to the memory usage if there aren't any QRV modules installed. Signed-off-by: Shaun Ruffell * drivers/dahdi/wctdm24xxp/xhfc.c, drivers/dahdi/wctdm24xxp/wctdm24xxp.h, drivers/dahdi/wctdm24xxp/base.c: wctdm24xxp: Group the per-module information together Signed-off-by: Shaun Ruffell * drivers/dahdi/wctdm24xxp/wctdm24xxp.h, drivers/dahdi/wctdm24xxp/base.c: wctdm24xxp: Dynamically allocate the board_name. Move the data backing the mostly unused string away from the active members of 'struct wctdm'. The location where some of the other members of 'struct wctdm' are initialized were moved so that wctdm_back_out_gracefully always has a fully formed structure to work on. Signed-off-by: Shaun Ruffell * drivers/dahdi/wctdm24xxp/wctdm24xxp.h, drivers/dahdi/wctdm24xxp/base.c: wctdm24xxp: Remove modmap member from 'struct wctdm'. We can already use the module type to determine presence of a module to check. This also moves the background polling of the modules until after the board is completely initialized because the module type may change while the different types are being probed. This also means that we need to preset the shadow registers for the FXS because otherwise the shadow register will not have been read before the first time it's checked for a power alarm. Signed-off-by: Shaun Ruffell * drivers/dahdi/wcte12xp/base.c, drivers/dahdi/wcte12xp/wcte12xp.h: wcte12xp: Limit how many consecutive times to reset the VPMADT032 module. Both limit the amount of junk in the kernel log and also prevent dahdi_cfg from running indefinitely if there is a module with a hardware problem which prevents it from completing the startup sequence. Signed-off-by: Shaun Ruffell * drivers/dahdi/wcte12xp/wcte12xp.h: wcte12xp: Remove unused vpm100 member from 'struct t1' Signed-off-by: Shaun Ruffell * drivers/dahdi/wcte12xp/base.c, drivers/dahdi/wctdm24xxp/base.c, drivers/dahdi/voicebus/GpakCust.c, drivers/dahdi/voicebus/GpakCust.h: wcte12xp, wctdm24xxp: Separate test for VPMADT032 and initialization. Part of increasing system startup speed. Splitting these two operations facilitate checking if there is a module present synchronously on driver load from the actual load of the firmware and configuration of the channels. This will allow the presence of the VPM module to be flagged on the span before registration, but load and configuration can happen in the background. When the modules are eventually loaded via udev, there will be enough time from the time the drivers are loaded to when dahdi_cfg will run to complete the firmware load, eliminating the need to block the driver here. Signed-off-by: Shaun Ruffell * drivers/dahdi/wcte12xp/base.c, drivers/dahdi/wctdm24xxp/base.c, drivers/dahdi/voicebus/GpakCust.c, drivers/dahdi/voicebus/GpakCust.h: wcte12xp, wctdm24xxp: Use a constant string for the VPM workqueue name. In my opinion naming the VPM workqueues for each board is not worth the extra complexity. Signed-off-by: Shaun Ruffell * drivers/dahdi/wcte12xp/base.c: wcte12xp: Set the t1.vpmadt032 pointer under the reglock. Ensures that a single run of the interrupt service routine is consistent about whether there are VPMADT032 commands to process or not. Signed-off-by: Shaun Ruffell * drivers/dahdi/wcte12xp/base.c: wcte12xp: Put "Span configured" message behind debug flag. This message also duplicates what is in the /etc/dahdi/system.conf file and should only be necessary when troubleshooting problems. Signed-off-by: Shaun Ruffell * drivers/dahdi/wcte12xp/base.c: wcte12xp: kmalloc/memset -> kzalloc. This is trivial cleanup. Fixing up a couple of places that followed a kmalloc with a memset to 0 and also sneaked in one ARRAY_SIZE usage change. Signed-off-by: Shaun Ruffell * drivers/dahdi/wcte12xp/base.c: wcte12xp: Move the VPMADT032 test/configuration to module load time. The firmware load of the VPMADT032 was moved to startspan because a quad-span card in the same system would would lock interrupts for several seconds to load VPMOCT064/128 firmware. Now that the wct4xxp driver no longer locks interrupts while loading its VPM module this driver can move the VPMADT032 check/load back to module load time. This is also required so that the presence of a hardware echo canceler is marked on the span before it is registered with dahdi-base.c. Signed-off-by: Shaun Ruffell * drivers/dahdi/wcte12xp/base.c, drivers/dahdi/wcte12xp/wcte12xp.h: wcte12xp: Force spanconfig/chanconfig to wait for ready. This is always true currently but will not necessarily be in the future. Signed-off-by: Shaun Ruffell * drivers/dahdi/wctdm24xxp/xhfc.c, drivers/dahdi/wctdm24xxp/wctdm24xxp.h, drivers/dahdi/wctdm24xxp/base.c: wctdm24xxp: Block chanconfig and spanconfig until board is ready. Currently the board will always be ready if the module initialization function is complete but this change will facilitate allowing some of the more time consuming configuration steps to happen in parallel on system start. Signed-off-by: Shaun Ruffell * drivers/dahdi/wcte12xp/base.c, drivers/dahdi/wct4xxp/base.c, drivers/dahdi/wctdm24xxp/base.c, drivers/dahdi/dahdi-base.c: dahdi: Do not allow 'hwec' to be attached to channels that do not have one. This defines a NULL value for the name of an echocan as invalid. This will allow dahdi_genconf to probe for the presence of a hardware echocan on a channel by trying to attach one. If there is not a hardware echocan available DAHDI_ATTACH_ECHOCAN ioctl will return -EINVAL if 'hwec' was specified as the name of the echo canceler now. Signed-off-by: Shaun Ruffell Acked-by: Tzafrir Cohen * include/dahdi/kernel.h, drivers/dahdi/dahdi-base.c: dahdi: Provide notification when preechocan buffer is created and destroyed. Not quite ideal, but this seems to be the most straightforward way to know when someone is trying to monitor the preec stream on a channel. This callback allows the board driver providing the span an opportunity to setup the hardware preecho monitoring as needed. Signed-off-by: Shaun Ruffell Acked-by: Tzafrir Cohen * include/dahdi/kernel.h, drivers/dahdi/dahdi-base.c: dahdi: Update the dahdi_ec_chunk interface to support preec streams. dahdi_ec_chunk is the function that saves the received audio and places a signed linear copy of it in the pre echocanceled buffer on the channel. By splitting the input and output of this function into two parameters, a driver that can provide separate pre and post ec streams can pass them independently to DAHDI, without worrying about DAHDI overwriting a stream that may have already been echocanceled by the hardware. Previously, the dahdi_ec_chunk interface took a received audio buffer and overwrote it after canceling the echo. Now the input and output from the function are broken up in order to support hardware echocans that have a different preechocan stream. Signed-off-by: Shaun Ruffell Acked-by: Tzafrir Cohen * drivers/dahdi/tor2.c, drivers/dahdi/wcte12xp/base.c, drivers/dahdi/wcb4xxp/base.c, drivers/dahdi/xpp/card_pri.c, include/dahdi/kernel.h, drivers/dahdi/wct4xxp/base.c, drivers/dahdi/wctdm24xxp/xhfc.c, drivers/dahdi/wcte11xp.c, drivers/dahdi/xpp/card_bri.c, drivers/dahdi/dahdi_dynamic.c, drivers/dahdi/wct1xxp.c, drivers/dahdi/dahdi-base.c, drivers/dahdi/wctdm24xxp/xhfc.h: dahdi: Allow dahdi_span_ops.[chan|span]config and startup to block. This change ensures that the dahdi_span_ops callbacks are not called with any spinlocks held, and that the module is pinned in memory, and also passes the struct file * pointer to the callbacks. Passing the file pointer to the callbacks allows the board drivers to check any flags on the file descriptor used to configure the span/channel. The intent here is to allow dahdi_config to open the /dev/dahdi/ctl file in a non-blocking mode in case there is a lengthy processes that needs to happen as part of configuration. Signed-off-by: Shaun Ruffell Acked-by: Tzafrir Cohen * drivers/dahdi/dahdi-base.c: dahdi: Do not release the echocan under lock. This allows any echocan cleanup to block if necessary. Especially useful for hardware echocans that may need to wait for hardware to complete the cleanup process. Signed-off-by: Shaun Ruffell Acked-by: Tzafrir Cohen * include/dahdi/kernel.h: dahdi: Support "struct mutex" on pre 2.6.16 kernels. 'struct mutex' was introduced in 2.6.16. While DAHDI previously allowed statically allocated mutexes, this change is required in order to allow mutexes to be embedded in dynamically allocated structures on older kernels. Signed-off-by: Shaun Ruffell Acked-by: Tzafrir Cohen * drivers/dahdi/dahdi-base.c: dahdi: If a timer is not configured then we should block indefinitely. Some older Asterisk versions do not handle well the error message when poll is called on an unconfigured channel. The result would be constant __ast_read: No/unknown event '0' on timer for 'DAHDI/1-1'? messages from Asterisk. Signed-off-by: Shaun Ruffell Acked-by: Tzafrir Cohen * drivers/dahdi/dahdi-base.c: dahdi: Make tone zone registration messages debug only. This duplicates information that is already in the /etc/dahdi/system.conf file and should normally only be necessary for the user when debugging problems. Signed-off-by: Shaun Ruffell Acked-by: Tzafrir Cohen * drivers/dahdi/dahdi-base.c: dahdi: Propagate shutdown returncode to user space. This change fixes a condition where 'dahdi_cfg -s' would always return success regardless of whether a board driver was able to complete the shutdown. Only impacts board drivers that implemented the shutdown span callback. Signed-off-by: Shaun Ruffell Acked-by: Tzafrir Cohen * 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 Acked-by: Tzafrir Cohen * drivers/dahdi/wct4xxp/base.c: wct4xxp: Move the check for the VPM to module load time. This allows dahdi-base to know whether or not there is a VPM attached to the module as soon as it's registered as opposed to waiting for start span. This will simplify dahdi_genconf's task of creating a valid configuration file. Signed-off-by: Shaun Ruffell * drivers/dahdi/wct4xxp/base.c: wct4xxp: Do not set maintstat in t4_clear_maint. If we always set maintstat to DAHDI_MAINT_NONE, dahdi_base will lose track of what it thinks the current state of the span is. For example, if you run $ dahdi_maint -s 1 --loopback localhost When t4_clear_maint is called, the current maintenance mode state, 'maintstat', is set to DAHDI_MAINT_NONE. So the next time you call: $ dahdi_maint -s 1 --loopback off dahdi-base.c will believe that the user is trying to set the maintenance state from DAHDI_MAINT_NONE to DAHDI_MAINT_NONE and will not actually do anything. Signed-off-by: Shaun Ruffell Acked-by: Russ Meyerriecks * drivers/dahdi/wct4xxp/base.c: wct4xxp: Atomically set framer bits for maintenance modes. Do not allow the interrupt handler or another CPU to change the value between when we get the initial value and when we write the modified value. Also includes a minor formatting fix where braces were not aligned, and remove 'inline' from t4_framer_in and t4_framer_out definitions. Signed-off-by: Shaun Ruffell Acked-by: Russ Meyerriecks * drivers/dahdi/wct4xxp/Kbuild: wct4xxp: Set -Wno-unused-but-set-variable compiler option if available. Turn this option on for the entire wct4xxp driver in order to quiet the warnings in the oct612x source files. These files are from a vendor drop and the goal is to limit the deviations from the vendor if possible. Signed-off-by: Shaun Ruffell Acked-by: Tzafrir Cohen * drivers/dahdi/tor2.c, drivers/dahdi/xpp/xpp_usb.c, drivers/dahdi/wcte12xp/base.c, drivers/dahdi/wct4xxp/vpm450m.c, drivers/dahdi/xpp/card_pri.c, drivers/dahdi/wct4xxp/base.c, drivers/dahdi/xpp/card_fxo.c, drivers/dahdi/wctc4xxp/base.c, drivers/dahdi/wctdm24xxp/base.c, drivers/dahdi/xpp/card_fxs.c, drivers/dahdi/xpp/xpp_dahdi.c, drivers/dahdi/wcb4xxp/base.c, drivers/dahdi/wctdm24xxp/xhfc.c, drivers/dahdi/xpp/card_bri.c, drivers/dahdi/wctdm.c, drivers/dahdi/xpp/xbus-core.c, drivers/dahdi/dahdi-base.c: Remove unused variables. gcc-4.6 now warns about variables that are set but never used. Clean up unused variables everywhere except the oct612x subdirectory. The oct612x should go in a separate patch in case that needs to be pulled out into a separate project again. Signed-off-by: Shaun Ruffell Acked-by: Tzafrir Cohen * include/dahdi/kernel.h, drivers/dahdi/wctdm24xxp/base.c: wctdm24xxp: Check if the FXS signaling setting is valid. Signed-off-by: Shaun Ruffell 2011-05-31 13:11 +0000 [r9925] Tzafrir Cohen * 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 2011-05-23 13:38 +0000 [r9916-9917] Tzafrir Cohen * drivers/dahdi/xpp/xpd.h, drivers/dahdi/xpp/card_bri.c, drivers/dahdi/xpp/xbus-sysfs.c, drivers/dahdi/xpp/xbus-core.c, drivers/dahdi/xpp/xbus-core.h, drivers/dahdi/xpp/xpp_log.h (removed): xpp: Remove obsolete XPP_DEBUGFS code XPP_DEBUGFS code was some code used to send BRI D-Channel data through debugfs for, well, debugging. Unused in recent years. Time to remove. * drivers/dahdi/xpp/xpd.h, drivers/dahdi/xpp/xpp_dahdi.c, drivers/dahdi/xpp/card_pri.c, drivers/dahdi/xpp/xbus-core.c, drivers/dahdi/xpp/Kbuild, drivers/dahdi/xpp/card_global.c, drivers/dahdi/xpp/xbus-core.h, drivers/dahdi/xpp/card_global.h, drivers/dahdi/xpp/xbus-pcm.c: xpp: Remove obsolete and unused OLD_PROC code OLD_PROC marked old and unused code that was used for writing to procfs. It has long ago been replaced with different sysfs interfaces. Time to remove it. 2011-05-19 21:53 +0000 [r9914] Shaun Ruffell * drivers/dahdi/wcte12xp/base.c: wcte12xp: Fix regression preventing VPMADT032 from loading. Commit r9781, "wcte12xp, wctdm24xxp: Remove unused support for booting VPMADT032 from SPI", introduced a bug that would prevent the VPMADT032 from ever being able to complete its startup. This regression did not make it to any releases. Signed-off-by: Shaun Ruffell 2011-04-25 14:22 +0000 [r9911-9912] Shaun Ruffell * 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 * drivers/dahdi/wcb4xxp/base.c: wcb4xxp: Updating copyright. The wcb4xxp driver was edited this year. Signed-off-by: Shaun Ruffell 2011-04-15 18:42 +0000 [r9905-9907] Kinsey Moore * drivers/dahdi/dahdi-base.c: dahdi: Bug fix for enabling buffer events Introduced in rev 9905, this bug could cause buffer events to become disabled if the kernel was unable to access userland data. * include/dahdi/user.h, include/dahdi/kernel.h, drivers/dahdi/dahdi-base.c: dahdi: Add capability to generate events on buffer underruns and overruns Add BUFFEVENTS and individual buffer event channel flags so that DAHDI can notify userspace processes when it is dropping data. This can be useful when trouble shooting fax problems since DAHDI currently silently discards data becasuse of scheduling latency. With this change, Asterisk could log an event as opposed to just leaving it up to the tone detectors to figure out there was some unexpected phase shift. Acked-by: Shaun Ruffell (original patch by Matt Fredrickson) 2011-04-14 19:11 +0000 [r9902] Shaun Ruffell * 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 Signed-off-by: Shaun Ruffell 2011-04-11 Shaun Ruffell * dahdi-linux version 2.4.1.2 released. 2011-04-11 18:45 +0000 [r9895] Shaun Ruffell * 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 Acked-by: Shaun Ruffell Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9894 2011-03-31 Shaun Ruffell * dahdi-linux version 2.4.1.1 released. 2011-03-15 19:15 +0000 [r9828] Shaun Ruffell * wctdm24xxp: Fix regression with LEDS on TDM410. 2011-03-03 Shaun Ruffell * dahdi-linux version 2.4.1 released. 2011-02-11 17:52 +0000 [r9757-9760] Shaun Ruffell * build_tools/make_version: 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 Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9475 * build_tools/make_version: make_version: svn and git metadata directory not checked properly. (closes issue #16143) Reported by: Max Khon Signed-off-by: Kinsey Moore Signed-off-by: Shaun Ruffell Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9418 * build_tools/make_version: 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 Acked-by: Kinsey Moore Acked-by: Russ Meyerriecks Acked-by: Tzafrir Cohen Review: https://reviewboard.asterisk.org/r/940/ Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9408 * Makefile, build_tools/make_version: 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 Acked-by: Tzafrir Cohen Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9396 2011-02-10 16:29 +0000 [r9746-9755] Shaun Ruffell * drivers/dahdi/wct4xxp/vpm450m.c: 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 Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9752 * drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_tlv.c, drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_phasing_tsst.c, drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_channel.c, drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_playout_buf.c, drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_interrupts.c, drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_stats.c, drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_conf_bridge.c, drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_miscellaneous_priv.h, drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_events.c: 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 Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9751 * drivers/dahdi/oct612x/include/oct6100api/oct6100_chip_open_inst.h, drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_channel.c, drivers/dahdi/oct612x/include/oct6100api/oct6100_channel_inst.h, drivers/dahdi/wct4xxp/vpm450m.c, drivers/dahdi/oct612x/include/oct6100api/oct6100_defines.h, drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_miscellaneous_priv.h, drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_open.c: 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 Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9750 * include/dahdi/kernel.h: dahdi: Add '#include ' 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 Signed-off-by: Shaun Ruffell Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9697 2011-02-09 12:45 +0000 [r9745] Tzafrir Cohen * build_tools/live_dahdi: live_dahdi: Fix regression from r9508 Signed-off-by: Tzafrir Cohen Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9532 2011-01-31 18:09 +0000 [r9723-9726] Shaun Ruffell * /: 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 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 Signed-off-by: Shaun Ruffell Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9721 * drivers/dahdi/wctdm24xxp/wctdm24xxp.h, drivers/dahdi/wctdm24xxp/base.c: 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 Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9720 * Makefile: 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 Acked-by: Kinsey Moore Acked-by: Russ Meyerriecks Acked-by: Tzafrir Cohen Review: https://reviewboard.asterisk.org/r/940/ Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9409 2011-01-27 21:09 +0000 [r9702] Matthew Fredrickson * drivers/dahdi/wcb4xxp/base.c: Fix for bugs in timing selection when B410P card is not the first configured card in system. 2011-01-21 05:35 +0000 [r9652-9696] Shaun Ruffell * /: 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 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 Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9635 * README: README: clarify required kernel configuration Signed-off-by: Tzafrir Cohen Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9619 * drivers/dahdi/dahdi-base.c: 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 Acked-by: Kinsey Moore Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9592 * drivers/dahdi/wcte12xp/base.c: 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 * drivers/dahdi/wcfxo.c, drivers/dahdi/tor2-hw.h, drivers/dahdi/wcte12xp/base.c, drivers/dahdi/wcb4xxp/base.c, drivers/dahdi/pciradio.c, include/dahdi/kernel.h, drivers/dahdi/wct4xxp/base.c, drivers/dahdi/wcte11xp.c, drivers/dahdi/wct1xxp.c, drivers/dahdi/wctc4xxp/base.c, drivers/dahdi/wctdm.c, drivers/dahdi/wctdm24xxp/base.c: "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 Acked-by: Kinsey Moore Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9584 * include/dahdi/kernel.h: 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 Acked-by: Kinsey Moore Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9579 * drivers/dahdi/wcb4xxp/base.c: 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 Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9555 * drivers/dahdi/vpmadt032_loader/dahdi_vpmadt032_loader.c: 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 Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9554 * drivers/dahdi/voicebus/voicebus.c: 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 Signed-off-by: Russ Meyerriecks Acked-by: Kinsey Moore Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9542 * drivers/dahdi/wct4xxp/vpm450m.c: wct4xxp: Close a memory leak in the VPM450 error path. Signed-off-by: Shaun Ruffell Acked-by: Kinsey Moore Acked-By: Russ Meyerriecks Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9539 * drivers/dahdi/voicebus/voicebus.c: wctdm24xxp, wcte12xp: Lock interrupts when recovering from an underrun. 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 Acked-by: Kinsey Moore Acked-By: Russ Meyerriecks Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9535 * drivers/dahdi/voicebus/voicebus.c: wctdm24xxp, wcte12xp: Add more descriptive message on a failed reset. 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 Acked-by: Kinsey Moore Acked-By: Russ Meyerriecks Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9534 * drivers/dahdi/wcte12xp/base.c, include/dahdi/kernel.h: wcte12xp: Use interruptible waits to decrease impact on load average. 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 Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9512 * drivers/dahdi/dahdi-base.c: dahdi: Prevent unloadable module on failed open. 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 Acked-by: Angelos Varvitsiotis Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9510 * build_tools/live_dahdi: live_dahdi: fix usage of xpp.conf Link live/usr/share/dahdi/xpp.conf from live/etc/dahdi/xpp.conf in 'config'. This makes the 'live' xpp.conf used rather than the global xpp.conf . Signed-off-by: Tzafrir Cohen Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9508 * drivers/dahdi/xpp/card_pri.c: xpd_pri: Remove pointless hooksig span op 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 Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9506 * drivers/dahdi/xpp/card_pri.c: xpd_pri: ignore DAHDI_VMWI and DAHDIVMWI_CONFIG 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 Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9505 * drivers/dahdi/voicebus/voicebus.c: wctdm24xxp, wcte12xp: Close a few potential resource assignment leaks. 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 Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9503 * build_tools/live_dahdi: live_dahdi: only check for TOOLS_DIR when used Only check that TOOLD_DIR is valid when it is actually needed (configure, install, config). This allows not checking for it with *load on a rsync-ed copy. Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9479 * drivers/dahdi/hpec/dahdi_echocan_hpec.c, drivers/dahdi/xpp/xpp_usb.c, include/dahdi/kernel.h, drivers/dahdi/wctdm24xxp/xhfc.c, drivers/dahdi/voicebus/voicebus.c, drivers/dahdi/wctc4xxp/base.c, drivers/dahdi/wctdm24xxp/base.c, drivers/dahdi/xpp/xbus-core.c: Remove mutex emulation 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 LKML-Reference: <20100907125057.562399240@linutronix.de> Acked-by: Tzafrir Cohen Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9464 * drivers/dahdi/wctdm24xxp/base.c: wctdm24xxp: Detect FXS modules based on the 3210 SLIC. 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 Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9456 * drivers/dahdi/wctdm24xxp/base.c: wctdm24xxp: Leave FXO (DAA) always in full-wave ring detect mode. 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 Acked-by: Kinsey Moore Acked-by: Russ Meyerriecks Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9441 * drivers/dahdi/firmware/Makefile: dahdi: '-o' -> '--no-same-owner' in drivers/dahdi/firmware/Makefile 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 Acked-by: Kinsey Moore Acked-by: Russ Meyerriecks Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9434 * drivers/dahdi/voicebus/voicebus.c: wcte12xp, wctdm24xxp: Do not rely on polling main memory. 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 Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9397 * drivers/dahdi/wct4xxp/base.c: wct4xxp: Drop usage of 'volatile' qualifier. 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 Acked-by: Russ Meyerriecks Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9400 * include/dahdi/dahdi_config.h: dahdi: Make CONFIG_DAHDI_PPP off by default. Before CONFIG_DAHDI_PPP can be on by default, some more work needs to be done to ensure that the ppp_generic module is not always loaded and that all channels do not carry around all the PPP members unnecessarily. (issue #17990) Signed-off-by: Shaun Ruffell Acked-by: Kevin P. Fleming Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9392 * include/dahdi/dahdi_config.h: dahdi: Fix for when PPP support is compiled as a kernel module. When compiling dahdi-linux I expect ppp support to be compiled in even if the kernel config has PPP configured as a module. (closes issue #17990) Reported by: jkroon Patches: dahdi-config-ppp.diff uploaded by jkroon (license 714) Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9328 * drivers/dahdi/voicebus/GpakCust.c: vpmadt032: Remove potential endless waits when resetting. It is possible to softlock if the board stops delivering interrupts in the middle of a reset. Signed-off-by: Shaun Ruffell Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9332 * drivers/dahdi/voicebus/GpakCust.c: vpmadt032: Honor the CONFIG_DAHDI_NO_ECHOCAN_DISABLE flag. Setting this configuration option would not have had any impact when a hardware echo canceler was in use. Signed-off-by: Shaun Ruffell Acked-by: Kinsey Moore Acked-by: Russ Meyerriecks Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9432 * drivers/dahdi/xpp/init_card_4_30: xpp: Fixes init error for PRI devices with < 4 ports Fixes a regression singce r8873: if pri_protocol is not explicitly set (in /etc/dahdi/xpp.conf) and the device has (licences for) less than 4 "PRI" (E1/T1) ports, the initialization script will attempt to read from a non-existing SysFS file, and bail out, resulting in a the device failing to initialize. For those non-existing ports we can just skip that part of the initialization. So we just skip it. Work around: explicitly set pri_protocol to E1 or T1, as needed. Xorcom Rev: 8047. Ticket: 1334. Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9430 * drivers/dahdi/dahdi-base.c, include/dahdi/kernel.h: dahdi: Anonymous member in dahdi_echocan_events union. Make explicit what part of the union is being accessed. (closes issue #15908) Reported by: ys Patches: dahdi-dahdi_echocan_events.diff uploaded by ys (license 281) Signed-off-by: Kinsey Moore Signed-off-by: Shaun Ruffell Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9421 * drivers/dahdi/dahdi-base.c, drivers/dahdi/dahdi_echocan_kb1.c, drivers/dahdi/dahdi_echocan_mg2.c: dahdi: Fix 'void *' pointer arithmetic warnings. (closes issue #15927) Reported by: Max Khon Patches: dahdi_echocan2.diff uploaded by Max Khon (license 884) void2.diff uploaded by Max Khon (license 884) Signed-off-by: Kinsey Moore Signed-off-by: Shaun Ruffell Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9420 * drivers/dahdi/wctdm24xxp/base.c: wctdm24xxp: Add optional FXO digital loopback if DEBUG is defined. This module parameter will allow patgen/pattest to be used only on FXO ports. *ALL* FXO ports will be placed in digital loopback mode when set. The current intent is for this to be removed as an optional module parameter when there is a channel by channel representation in sysfs. Otherwise, a new IOCTL would have to be defined and a tool written in order to support this. DAHDI-696. Signed-off-by: Shaun Ruffell Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9391 * drivers/dahdi/dahdi-base.c: dahdi: Be more tolerant of surprise removal of channels. Enable DAHDI to detect if an operation on a file handle refers to a channel that may have been unregistered. This can occur, for example, when a board driver is hot-swapped out in a live system. This patch ensures that file->private_data is always properly set for any open channel, and it's set back to NULL when a channel is unregistered. This way file->private_data can be used to check whether it's valid to perform an operation on the channel. (NOTE: There is still a race condition here if the driver was unbound on one processor during the window of time between when file->private_data was checked and the system call finishes). Also, since DAHDI should only return -ENODEV on read or write when there was a surprise device removal on a running system this sleep can prevent the system from becoming unresponsive if the userspace application does not check for the -ENODEV error and constantly tries to call read with elevated privileges. (issue #17669) Reported by: tzafrir Tested by: sruffell Review: https://reviewboard.asterisk.org/r/905/ Signed-off-by: Shaun Ruffell Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9353 * drivers/dahdi/voicebus/voicebus.c: wcte12xp, wctdm24xxp: Add call to 'pci_set_mwi' on initialization. I have yet to personally come across a system where this actually changes the observable behavior, but it certainly seems like the sane thing to do and I would rather not let this float around as a patch when I can just merge it in. Signed-off-by: Shaun Ruffell Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9326 * drivers/dahdi/voicebus/voicebus.c: wcte12xp, wctdm24xxp: Remove redundant vb_enable_io_access. These three bits are already set by 'pci_enable_device' and 'pci_set_master' calls. Signed-off-by: Shaun Ruffell Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9325 * drivers/dahdi/dahdi-base.c: dahdi-base: All channels for a span are now unconfigured on shutdown Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9317 * drivers/dahdi/dahdi_dummy.c: dahdi_dummy: #include for kzalloc and friends. Fix the same issue as in r8550 for dahdi_dummy.c (closes issue #17959) Reported by: glen201 Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9307 * drivers/dahdi/wcte12xp/base.c, drivers/dahdi/wcte11xp.c: wcte11xp, wcte12xp: Fix a long-standing issue with shutdown Upon shutdown, both drivers would attempt to power down external interfaces, but never attempted to bring them back up when the span was restarted. Removing that code allows the driver to work properly until a better solution can be found. Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9316 * README: README: Remove references to dahdi_dummy. Since dahdi_dummy is no longer required remove the references from README. (issue #17959) Reported by: glen201 Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9308 * drivers/dahdi/dahdi-base.c: dahdi: Fix compilation error when CONFIG_DAHDI_NET is defined. Kernel interface for network devices changed. This is the patch from issue plus a few trivial checkpatch.pl formatting changes (minus the >80 column warnings). (closes issue #17857) Reported by: msink Patches: dahdi_net-v2.patch uploaded by msink (license 1103) Signed-off-by: Shaun Ruffell Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=9247 * drivers/dahdi/wct4xxp/base.c: wct4xxp: Update span-local struct with timing info dahdi_tool was incorrectly reporting all spans to be in local timing mode. This is because the driver tracks which span it's timing syncs to, within the card local struct "wc". We have to manually go through and copy timing updates to the span local structs because this is what dahdi_tool actually 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 * dahdi-linux version 2.4.0 released. 2010-08-27 21:59 +0000 [r9204-9205] Shaun Ruffell * drivers/dahdi/wct4xxp/base.c: wct4xxp: Moving the transmit short detection behind debug module param. This needs some more testing before it's on by default. If the card is otherwise functioning, these messages may be confusing to the user. If the card is not functioning, the driver can be reloaded with debug to check for this condition. Signed-off-by: Shaun Ruffell * drivers/dahdi/wct4xxp/base.c: wct4xxp: Removed transmit line open fault detection The transmit line open detection was pretty weak in that it trips upon receiving 32 consecutive zeroes. We were getting false positives from looping and other miscellaneous functions. Removing this feature, but leaving the transmit line short detector as it actually detects physical shorts. From: Russ Meyerriecks 2010-08-24 18:44 +0000 [r9188] Russ Meyerriecks * drivers/dahdi/wcb4xxp/base.c: wcb4xxp: Added card level timing information in sysfs For kernels >= 2.6.18, each individual card has it's local timing hung off the pci device in the sysfs tree. dahdi-626 2010-08-20 01:12 +0000 [r9168] Russ Meyerriecks * drivers/dahdi/dahdi-base.c: dahdi: Uncross dest if dacs is not supported between two different chans. This removes a confusing message introduced in 9120 when bridging channels on two differnt cards. i.e. "dahdi: unable to cross connect 'TE4/0/2/2' with 'WCTDM/0/0'" "dahdi: unable to cross connect 'WCTDM/0/0' with 'TE4/0/2/2'" 2010-08-19 18:03 +0000 [r9167] Shaun Ruffell * include/dahdi/kernel.h, drivers/dahdi/wctdm24xxp/base.c: dahdi: move 'dahdi_is_digital_span' back into wctdm24xp driver. Older kernels do not like the 'bool' type and I cannot just add it into include/dahdi/kernel.h without compile messages in the xpp driver where bool is defined directly. Since the wctdm24xxp driver is the only place using that function, I just moved it back there for now. This fixes a regression introduced in 9130. 2010-08-18 16:56 +0000 [r9162-9163] Tzafrir Cohen * build_tools/live_dahdi: live_dahdi: shutdown dynamic spans to to avoid panic If we fail to shutdown the dynamic spans, we may get a panic on the next load. This attempts to guess when we need to unload spans at unload. * build_tools/live_dahdi: live_dahdi: allow testing dynamic local spans Adds support for configuring dynamic spans through live_dahdi. To enable, set in live/live.conf: DYNAMIC_LOC="yes" It will generate an extra live/etc/dahdi/dynamic.conf (if one does not exist) and use it to configure extra dynamic spans in the system. Note that ATM this will make the system hang pretty easily at 'load' time. 2010-08-18 Shaun Ruffell * dahdi-linux version 2.4.0-rc1 released. 2010-08-17 17:15 +0000 [r9144-9145] Shaun Ruffell * drivers/dahdi/wcte12xp/base.c: wcte12xp: Clean up -vpm workqueue if there is not a VPMADT032 installed. DAHDI-681. * drivers/dahdi/wcte12xp/base.c, drivers/dahdi/wctdm24xxp/wctdm24xxp.h, drivers/dahdi/voicebus/voicebus.c, drivers/dahdi/wctdm24xxp/base.c, drivers/dahdi/wcte12xp/wcte12xp.h, drivers/dahdi/voicebus/voicebus.h: wcte12xp, wctdm24xxp: Add compile time option CONFIG_VOICEBUS_ECREFERENCE. Add compile time option to improve the reference signal provided to software echo cancelers. The intent here is for this functionality to become the default behavior but more testing and work on the edge cases is needed. It's being brought in now as a compile time option since there have been reports that it helps in some environments. Instead of using two buffers, which means that at best we're two milliseconds behind, use a circular buffer where audio data is written on the transmit side and read on the receive path. In this way high latency values will not interfere with the operation of software echo cancelers. DAHDI-291. DAHDI-387. This work was originally on: http://svn.asterisk.org/svn/dahdi/linux/team/sruffell/improved_ecreference@9143 and includes a generic kfifo replacement by Matt Fredrickson. 2010-08-16 21:43 +0000 [r9143] Russ Meyerriecks * drivers/dahdi/wctdm24xxp/base.c: wctdm24xxp: Set the companding mode on the analog ports in fixup. Fixes a regression from 9101 'wctdm24xxp: Added "auto" companding option' where the analog modules were not defaulted to alaw properly when a digital module is on an Hx8. This could result in very poor audio since the modules were providing ulaw data, but dahdi-base believed the audio was in alaw when converting to signed linear. 2010-08-16 18:43 +0000 [r9142] Shaun Ruffell * drivers/dahdi/dahdi_transcode.c: dahdi_transcode: No need for ioctl when unlocked_ioctl is available More work to kill the BKL (Big Kernel Lock) http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=10041d2d14688e207d0d829095147aa82c1f211b 2010-08-13 19:38 +0000 [r9130-9138] Shaun Ruffell * 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' 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 makes sense to have it directly in DAHDI linux. This obliterates any chance of having 0 checkpatch.pl errors between the 2.3.0 and 2.4.0 releases. Oh well... Signed-off-by: Shaun Ruffell * drivers/dahdi/wctdm24xxp/xhfc.c, drivers/dahdi/wctdm24xxp/base.c: wctdm24xxp: Set the 'spantype' for the digital spans. Defaults to "TE" but can be set by software to "NT" by dahdi_cfg. Signed-off-by: Shaun Ruffell * drivers/dahdi/wctdm24xxp/base.c: wctdm24xxp: 'is_span_digital' -> 'dahdi_is_span_digital' Signed-off-by: Shaun Ruffell * include/dahdi/user.h, include/dahdi/kernel.h: dahdi: Make it clear that 'linecompat' can be used to identify analog spans. The linecompat member can be used by a span to identify the global-to-the-span signalling types supported. Analog spans do not support any span-global signalling and therefore linecompat should always be 0. Signed-off-by: Shaun Ruffell 2010-08-12 19:38 +0000 [r9127] Matthew Fredrickson * drivers/dahdi/wcb4xxp/base.c: Timing fix where handling math in find_sync_src() would return -2 instead of -1 in cases where automatic timing sync was specified. 2010-08-11 05:21 +0000 [r9120-9124] Shaun Ruffell * drivers/dahdi/dahdi-base.c: dahdi: Do not error when uncrossing a channel if there is no 'dacs' callback. The previous commit was making all chan configs fail on a span that did not have a dacs callback. Also add some documentation for 'dahdi_chan_dacs' and make it more explicit when we're disabling cross connect. * drivers/dahdi/dahdi-base.c: dahdi: "Unable" -> "Unable to". Proper sentences are always preferred. Thanks kpfleming :) * drivers/dahdi/dahdi-base.c: dahdi: Fix oops when trying to dacs channels with a null dacs function. 2010-08-09 14:43 +0000 [r9117] Tzafrir Cohen * include/dahdi/kernel.h: work around RHEL backport of strcasecmp RHEL/Centos 5.4 kernels broke after the latest strcasecmp backport. So skip them. 2010-08-06 22:12 +0000 [r9097-9105] Russ Meyerriecks * drivers/dahdi/wct4xxp/base.c: wct4xxp: minor checkpatch changes * drivers/dahdi/wct4xxp/base.c: wct4xxp: Added card level timing information in sysfs For kernels >= 2.6.18, each individual card has it's local timing hung off the pci device in the sysfs tree. dahdi-626 * drivers/dahdi/wctdm24xxp/wctdm24xxp.h, drivers/dahdi/wctdm24xxp/base.c: wctdm24xxp: Added "auto" companding option Added the "auto" option for the module parameter "companding". In auto mode its left up to each card to decide what companding mode it should be in. If a BRI module is installed, it set everything to alaw; ulaw is selected if no BRI module is installed. Also fixed a bug where forcing companding one way or the other wasn't affecting the BRI modules. dahdi-673 * drivers/dahdi/wctdm24xxp/base.c: wctdm24xp: Replaced alawoverride with companding Added the module parameter "companding" to eventually replace the current alawoverride parameter. Added some deprecated messages so current users will know to move over before we remove it entirely. dahdi-673 * drivers/dahdi/wcb4xxp/base.c: wcb4xxp: Renamed module parameter "alawoverride" to "companding" Renamed the module parameter "alawoverride" to "companding". The valid values for "companding" are now the strings "alaw" or "ulaw", instead of integers. dahdi-673 * drivers/dahdi/wct4xxp/base.c: wct4xxp: module param "extendedreset" now a compile option Due to the very small number of affected customers we have removed the module parameter "extendedreset" in favor of a compile time option "CONFIG_EXTENDED_RESET". dahdi-673 * include/dahdi/kernel.h: dahdi: Backport strcasecmp for kernels < 2.6.22 strcasecmp was brought into the kernel at v2.6.22 2010-08-06 18:27 +0000 [r9094] Shaun Ruffell * drivers/dahdi/dahdi-base.c: dahdi: Trivial spelling change. 2010-08-05 21:05 +0000 [r9090] Tzafrir Cohen * drivers/dahdi/dahdi-base.c: don't crash on disconnecting of AB This is a regression from r8985 . The temporary 'module' was there because the pointer 'chan' may become invalid after the close function. 2010-08-04 00:18 +0000 [r9087] Shaun Ruffell * drivers/dahdi/wctdm24xxp/xhfc.c, drivers/dahdi/wctdm24xxp/wctdm24xxp.h, drivers/dahdi/wctdm24xxp/base.c, drivers/dahdi/wctdm24xxp/xhfc.h: wctdm24xxp: 'struct dahdi_span' is already embedded in the 'struct wctdm_span'. We cannot also embed it in struct b400m_span structure and expect container_of to work. This fixes a regression introduced in r8984. 2010-08-03 13:16 +0000 [r9082] Tzafrir Cohen * README: Proper Mantis category to use 2010-07-31 04:00 +0000 [r9059-9073] Alec L Davis * drivers/dahdi/wctdm.c: wctdm: Prevent FXS Proslic staying in "Forward/Reverse OnHookTransfer" during call Since the 3 second click after answering the call on an FXS port has been fixed issue# 15352, the side effect is that the Proslic during a call, still has the audio signal paths still powered on. Reading the Si3215 specs it reads that an extra ~20mA is consumed while in OHT mode. (issue #17764) Reported by: alecdavis Patches: wctdm_fxs_offhook.diff.txt uploaded by alecdavis (license 585) Tested by: alecdavis * drivers/dahdi/wctdm24xxp/base.c: wctdm24xxp: Prevent FXS Proslic staying in "Forward/Reverse OnHookTransfer" during call [One-liner summary of changes] Now that the 3 second click after answering the call on an FXS port has been fixed, the side effect is that the Proslic during a call, still has the audio signal paths still powered on. Reading the Si3215 specs it reads that an extra ~20mA is consumed while in OHT mode. (closes issue #17764) Reported by: alecdavis Patches: wctdm24xxp_fxs_offhook.diff.txt uploaded by alecdavis (license 585) Tested by: alecdavis * drivers/dahdi/wctdm24xxp/wctdm24xxp.h, drivers/dahdi/wctdm24xxp/base.c: SLIC_LF_OPPENDING confict between wctdm_proslic_recheck_sanity() and set_lasttxhook_interruptible() Problem: 'wctdm_proslic_recheck_sanity()' is executed (4 times??) every ~256ms which monitors and clears the SLIC_LF_OPPENDING on fxs->lasttxhook when the LF state has been reached. 'set_lasttxhook_interruptible()' times out after 100ms waiting from the previous write to the SLIC_LF register, by waiting for SLIC_LF_OPPENDING to be cleared, thus the write will fail. Solution: adds wctdm_proslic_check_oppending which does the monitoring and clearing of SLIC_LF_OPPENDING, which is execute every 1ms. It also if the correct state is not reached within 100ms, resends the lasttxhook state. (closes issue #17724) Reported by: alecdavis Patches: wctdm24xxp_fxs_answer.diff4.txt uploaded by alecdavis (license 585) Tested by: alecdavis, sruffell * drivers/dahdi/wcb4xxp/Makefile, drivers/dahdi/wctdm.c: reverting: add curly braces to _write_8bits Against Kernel Coding Guidelines * drivers/dahdi/wctdm.c: add curly braces to _write_8bits 2010-07-29 21:51 +0000 [r9049-9056] Kinsey Moore * drivers/dahdi/wcte12xp/base.c, drivers/dahdi/wct4xxp/base.c: wct4xxp, wcte12xp: restrict signaling and line combinations to what actually works * drivers/dahdi/wctdm24xxp/base.c: wctdm24xxp: reference B400Ms as BRI, correct a module alias, make the module description more accurate * drivers/dahdi/wctdm24xxp/base.c: wctdm24xxp: only allow B400M modules on hybrid cards * drivers/dahdi/wctdm24xxp/base.c: wctdm24xxp: correct references to "wildcard" and display the number of BRI spans and analog channels after detection * drivers/dahdi/dahdi-base.c: dahdi-base: display Reserved when a channel is unusable (has a sigcap of 0) * drivers/dahdi/wcte12xp/base.c, drivers/dahdi/wct4xxp/base.c: wct4xxp, wcte12xp: remove loobpack parameter, functionality provided by dahdi_maint * drivers/dahdi/wctdm24xxp/base.c: wctdm24xxp: don't report about VPM100s if none are present and warn the user when flashing firmware * drivers/dahdi/wct4xxp/base.c: wct4xxp: increase consistency and decrease verbosity of kernel logging 2010-07-28 15:32 +0000 [r9034-9046] Shaun Ruffell * drivers/dahdi/voicebus/GpakApi.c: wcte12xp, wctdm24xxp: Minor cleanup 0 -> NULL * drivers/dahdi/tor2.c: tor2: Do not directly dereference I/O memory. Mainly to quiet a sparse warning, but this could be a real problem on some non x86 platforms. * drivers/dahdi/wctdm.c: wctdm: Fix signed one-bit fields. Thanks sparse. * drivers/dahdi/wcte12xp/base.c: wcte12xp: Add __user annotation in copy_to_user call. Quiets sparse. * drivers/dahdi/wct4xxp/base.c: wct4xxp: Several minor changes to make sparse/checkpatch.pl happy. Make setup_chunks static, eliminate a dynamic array in the interrupt handler, don't cast away a memory region specifier, and don't initialize statics to 0. * drivers/dahdi/wcb4xxp/base.c: wcb4xxp: Trivial removal of some whitespace at the end of a line. Fixing formatting errors that have snuck in since the 2.3.0 release. * drivers/dahdi/wcte12xp/base.c: wcte12xp: Trival formatting changes. Fixing up some of the formatting errors that crept in since the 2.3.0 release. * README: README: Trivial removal of whitespace at the end of lines. * drivers/dahdi/dahdi-base.c: dahdi: Unlock the dahdi_span.lock when passed an invalid DAHDI_MAINT command. Fixes the following sparse warning "warning: context imbalance in 'dahdi_ctl_ioctl' - different lock contexts for basic block". Thank you sparse! * drivers/dahdi/wctc4xxp/base.c: wctc4xxp: Add compile-time option to always poll the interface. Added as a workaround for a system which was not routing interrupts properly and therefore is off by default. Candidate for reversion in a couple of years. DAHDI-627. * drivers/dahdi/wctc4xxp/base.c: wctc4xxp: Move from I/O space to memory-mapped registers. Certain platforms have trouble with the registers mapped from I/O space. DAHDI-627. * drivers/dahdi/wctc4xxp/base.c: wctc4xxp: Do not ACK response packets without a corresponding request. Closes a small window of opportunity where system conditions prevent the driver from servicing it's receive ring within the timeout period of a request, and then in the middle of retrying the request (after the request was already removed from the "waiting_for_response" list) the driver process the response, it's possible for the driver to ACK the response without ever pairing it up with the original request. The result being that the DTE will then ignore our attempts to retry the original request. DAHDI-430. * drivers/dahdi/wctc4xxp/base.c: wctc4xxp: Allow read to return more than one packet of data. As of this writing codec_dahdi (Asterisk module) will not call 'read' on a transcoder channel more often than it calls 'write'. When a translation path is setup that will transcode from g723 to g729, write is called every 30ms and each 'read' returns only 20ms of data. The end result is audio that slowly becomes increasing delayed. Since codec_dahdi calls the system read function with a buffer large enough to hold more than one packet this can prevents packets from backing up on the channel. DAHDI-582 2010-07-28 10:30 +0000 [r9025-9028] Tzafrir Cohen * drivers/dahdi/xpp/card_pri.c: Ignore Reg. 0x70 messages at E1. * drivers/dahdi/xpp/card_pri.c: demote a notice that will happen at registration We might as well ignore this, as we will get this at span registration time anyway. 2010-07-27 01:31 +0000 [r8997-9019] Russ Meyerriecks * drivers/dahdi/wct4xxp/base.c: wct4xxp: Enabled network facing looping for E1 Added the abililty to loop the line back towards the network for E1 modes. This supports both network loop and network payload loop. * drivers/dahdi/wct4xxp/base.c: wct4xxp: Fixed error injection bug * drivers/dahdi/wct4xxp/base.c: wct4xxp: Error counter injection for E1 mode Added support for error counter injection for E1 mode * include/dahdi/user.h, drivers/dahdi/wct4xxp/base.c: wct4xxp: Removed card level event handler Upon review the event introduced in r8998 seemed to be redundant, as the same information was already available. Performance issues were also a concern. This reverts r8998. * include/dahdi/user.h, drivers/dahdi/wct4xxp/base.c, drivers/dahdi/dahdi-base.c: Added hardware transformer check QuadFalc has the ability to test if the transformer is performing correctly. If the components between the framer and the physical span interface are shorted out or opened for any reason we can now detect it. Possible causes for tripping this error could be a broken transformer from an electrical spike or a board manufacturing error. * include/dahdi/user.h, drivers/dahdi/wct4xxp/base.c, drivers/dahdi/dahdi-base.c: Added card level event handler When a loss of syncronization signal occurs on one of the spans, it affects all spans on that card. Since we do not have a span or card level event system, we have to queue up a global event on all channels for that card The new event is DAHDI_EVENT_SYNC * drivers/dahdi/wct4xxp/wct4xxp.h, include/dahdi/user.h, drivers/dahdi/wct4xxp/base.c, drivers/dahdi/dahdi-base.c: Added the ability to trigger alarm simulation states in the qfalc framer. Added some more verbose red alarm states in the upper byte of the alarm member of the dahdi_span structure Removed some unnecessary instrumentation regarding the enabling of the errored second and 1 second counters for performance collecting. Also added a couple comments. 2010-07-26 00:30 +0000 [r8979-8986] Shaun Ruffell * drivers/dahdi/tor2.c, drivers/dahdi/wcfxo.c, drivers/dahdi/wcte12xp/base.c, include/dahdi/kernel.h, drivers/dahdi/xpp/card_pri.c, drivers/dahdi/pciradio.c, drivers/dahdi/wct4xxp/base.c, drivers/dahdi/xpp/card_fxo.c, drivers/dahdi/wctdm24xxp/base.c, drivers/dahdi/xpp/card_fxs.c, drivers/dahdi/xpp/xpp_dahdi.c, drivers/dahdi/wcb4xxp/base.c, drivers/dahdi/wcte11xp.c, drivers/dahdi/xpp/card_bri.c, drivers/dahdi/dahdi_dynamic.c, drivers/dahdi/wctdm.c, drivers/dahdi/wct1xxp.c, drivers/dahdi/dahdi-base.c, drivers/dahdi/dahdi_dummy.c: dahdi: Move the 'owner' field from dahdi_span to dahdi_span_ops. One more thing that can be moved out of the per-span structure. * drivers/dahdi/tor2.c, drivers/dahdi/wcfxo.c, drivers/dahdi/wcte12xp/base.c, include/dahdi/kernel.h, drivers/dahdi/pciradio.c, drivers/dahdi/xpp/card_pri.c, drivers/dahdi/wct4xxp/base.c, drivers/dahdi/wctdm24xxp/base.c, drivers/dahdi/xpp/xpp_dahdi.c, drivers/dahdi/wcb4xxp/base.c, drivers/dahdi/wcte11xp.c, drivers/dahdi/xpp/card_bri.c, drivers/dahdi/xpp/xpp_dahdi.h, drivers/dahdi/dahdi_dynamic.c, drivers/dahdi/wct1xxp.c, drivers/dahdi/wctdm.c, drivers/dahdi/dahdi-base.c: dahdi: Move the callbacks in dahdi_span into its own structure. Part of preparation for adding additional callbacks to allow board drivers to advertise and support gathering pre-echocan data from hardware echocans. * drivers/dahdi/tor2.c, drivers/dahdi/wcfxo.c, drivers/dahdi/wcte12xp/base.c, include/dahdi/kernel.h, drivers/dahdi/xpp/card_pri.c, drivers/dahdi/pciradio.c, drivers/dahdi/wct4xxp/base.c, drivers/dahdi/wctdm24xxp/base.c, drivers/dahdi/xpp/xbus-pcm.c, drivers/dahdi/xpp/xpp_dahdi.c, drivers/dahdi/wcb4xxp/base.c, drivers/dahdi/wctdm24xxp/xhfc.c, drivers/dahdi/wcte11xp.c, drivers/dahdi/xpp/card_bri.c, drivers/dahdi/dahdi_dynamic.c, drivers/dahdi/wctdm24xxp/wctdm24xxp.h, drivers/dahdi/wctdm.c, drivers/dahdi/wct1xxp.c, drivers/dahdi/wctdm24xxp/xhfc.h, drivers/dahdi/dahdi_dummy.c: dahdi: Remove the 'pvt' member from dahdi_span. The vast majority of board drivers already keep the dahdi_span structure in a driver specific structure. The others were easily converted. This way board drivers can use the container_of macro to find what was previously pointed to by the "pvt" member of the span. One less thing to think about in the span structure. * drivers/dahdi/firmware/Makefile, drivers/dahdi/voicebus/GpakApi.c, drivers/dahdi/voicebus/gpakenum.h, drivers/dahdi/voicebus/GpakApi.h, drivers/dahdi/voicebus/GpakCust.c, drivers/dahdi/voicebus/gpakErrs.h: wcte12xp, wctdm24xxp: Updating VPMADT032 firmware to version to 1.25 The echo canceler will now monitor if the receive signal goes over a certain threshold, and if so, freezes its adaptation to prevent loss of convergence. I.e. Fixes conditions where blowing into your handset could result in echo. Additionally, 1.25 includes improvements for handling when line conditions change from echo free to containing echo. * drivers/dahdi/voicebus/voicebus.c, drivers/dahdi/voicebus/voicebus.h: wcte12xp, wctdm24xxp: Return buffer processing to interrupt handler. In revision 8095, I had moved most of the buffer processing out of the interrupt handler and into a tasklet. The intended result was to enable multiple cards to interleave with one another. But once again I was bitten by the fact that there are some systems that for one reason or another do not process their tasklets in a timely enough manner for the real-time nature of TDM processing. This commit moves this processing back into the interrupt handler by default. It also limits the number of frames that the interrupt handler will process at any given time which appears to achieve the same intended result. (closes issue #17289) Tested by: alecdavis * drivers/dahdi/wcte12xp/base.c, drivers/dahdi/voicebus/voicebus.c, drivers/dahdi/wctdm24xxp/base.c, drivers/dahdi/voicebus/voicebus.h: wcte12xp, wctdm24xxp: spin_lock_bh -> spin_lock_irqsave Will add an option to allow calling the deferred processing callback directly in the interrupt handler. It appears there are some systems which still are unable to process their tasklets in a timely fashion, especially if they get pushed out to the ksoftirqd daemon. * drivers/dahdi/wcte12xp/base.c: wcte12xp: Do not call destory_workqueue if the workqueue was not yet created. * drivers/dahdi/wcte12xp/base.c, drivers/dahdi/voicebus/voicebus.c, drivers/dahdi/wctdm24xxp/base.c: wcte12xp, wctdm24xxp: Add shutdown handlers. Make the drivers a little more kexec friendly. 2010-07-25 16:43 +0000 [r8975] Tzafrir Cohen * drivers/dahdi/xpp/card_pri.c: No need to worry about accidental "changes" in reg. 0x70 in E1 2010-07-22 15:28 +0000 [r8968-8969] Matthew Fredrickson * drivers/dahdi/wcb4xxp/base.c: Make sure we also change the deflaw of the span to ulaw if alawoverride is disabled. * drivers/dahdi/wct4xxp/base.c: Make sure we check max_latency to see if it's greater than the minimum required latency for the board in question. 2010-07-19 13:49 +0000 [r8943-8944] Tzafrir Cohen * README: Copy README section of kernel sources from Zaptel. Still needs some simplifications. Anybody? * drivers/dahdi/xpp/card_fxs.c: FXS - fix VMWI compatibility mode: * If we have vmwi_ioctl=N, we should initialize the vmwi_type of all channels. We initialize it to HVAC * Fix a regression, where curly braces around empty if()'s were removed. * Also fix the VMWI_TYPE() macro, so it actually uses the 3'rd parameter. (this didn't cause damage yet, as we only used HVAC so far) 2010-07-16 16:25 +0000 [r8939] Matthew Fredrickson * drivers/dahdi/wcb4xxp/base.c: Add alawoverride parameter to the wcb4xxp module to allow for ulaw and alaw mode. 2010-07-14 20:15 +0000 [r8935] Matthew Fredrickson * drivers/dahdi/wct4xxp/base.c: Make noburst parameter override burst flag. 2010-07-14 11:50 +0000 [r8872-8931] Tzafrir Cohen * drivers/dahdi/xpp/firmwares/PIC_TYPE_4.hex: PIC 4 rev. 7381: fix T1 returning signaling register in non-CAS This is the second part of the partial fix in r8872, though each of the two should work independently. * drivers/dahdi/xpp/firmwares/USB_FW.hex: Allow reading caps when twinstar watchdog set Fixes reading capabilities when the watchdog is set. In that case most of the data, as seen, e.g. in output of 'astribank_allow', was 0xFF. Xorcom rev: 7809 * drivers/dahdi/xpp/init_card_4_30, drivers/dahdi/xpp/card_pri.c: Set Astribank PRI before initialization This avoids most cases of sending garbage at startup by setting each port to tristate mode at init time (in the init script) and enable it back at DAHDI_STARTUO (end of dahdi_cfg). Upgrade note: if you have upgraded the files (including init script) but old module is still loaded, you may end up with the port not getting ever enabled and the line practically dead. In such a case, reload the new module. * drivers/dahdi/xpp/xpp_dahdi.c, drivers/dahdi/xpp/xbus-core.c, drivers/dahdi/xpp/xbus-core.h, drivers/dahdi/xpp/xbus-pcm.c: start migrating from xbus_num() to get_xbus()/put_xbus() * Now get_xbus() receive and xbus number (not poiner) and uses xbus_num() internally to map it to an xbus pointer + refcount increment. (this is atomic) * Migrate all obvious places that used xbus_num() to map bus number into a pointer, so now they use get_xbus() + put_xbus() to aquire and release an xbus. * drivers/dahdi/xpp/xpp_dahdi.c, drivers/dahdi/xpp/xproto.h, drivers/dahdi/xpp/card_pri.c, drivers/dahdi/xpp/xbus-pcm.h, drivers/dahdi/xpp/card_bri.c, drivers/dahdi/xpp/card_fxo.c, drivers/dahdi/xpp/xbus-core.c, drivers/dahdi/xpp/card_fxs.c, drivers/dahdi/xpp/xbus-core.h, drivers/dahdi/xpp/xbus-pcm.c: PRI Astribanks always sync AB (and independent) * PRI devices always get SYNC-AB (never PLL, not even for NT) * Fix Timing priority calculation accordingly. * On PRI layer1 changes, elect_syncer() is called, so we have re-election. * drivers/dahdi/xpp/xbus-core.c, drivers/dahdi/xpp/card_global.c, drivers/dahdi/xpp/xbus-core.h: prevent handling of duplicate Astribanks Don't let AB which are unplugged/replugged create duplicate XBUS's (if asterisk don't close the original channels). * drivers/dahdi/xpp/xbus-sysfs.c: Create /sys/devices/astribanks: * Astribank devices now reside under their own top-level device. * The USB device is still used as the 'transport'. * This means the astribanks parents are NOT the USB devices. * As a result, even after a USB disconnect, we have valid sysfs representation. * drivers/dahdi/xpp/xpd.h, drivers/dahdi/xpp/xpp_dahdi.c, drivers/dahdi/xpp/xbus-sysfs.c, drivers/dahdi/xpp/xbus-core.c, drivers/dahdi/xpp/xbus-core.h: Keep SYSFS objects after disconnect When the USB device disconnects, we keep references to them to make sure they don't disappear. * drivers/dahdi/xpp/card_pri.c: Don't reset span flag RBS on pri module Don't attempt to reset the span flag DAHDI_FLAG_RBS. At pre-registration we don't yet know if we're CAS or not. * drivers/dahdi/xpp/card_pri.c: don't send "duplicates" in E1 as in D4 Make sure we only consider T1-s to be potentially D4 (which requires sending the bits twice). This fixes occasional command-queue floods in E1 CAS. * drivers/dahdi/xpp/card_fxs.c: Put a space where it belongs * drivers/dahdi/xpp/xpd.h, drivers/dahdi/xpp/xpp_dahdi.c, drivers/dahdi/xpp/card_fxs.c: Basic support for DAHDI_VMWI_CONFIG * Supports only our current NEON notification. * No more global 'vmwineon' parameter: - We expect asterisk to tell us by channel. - If 'vmwi_ioctl' is not set (it is by default), that we revert to FSK searching (expensive) and call directly our NEON code (as before). * drivers/dahdi/xpp/xbus-core.c, drivers/dahdi/xpp/card_global.c: Solve race xbus_populate Fixes a crash resulting from a race between disconnecting and connecting Astribanks (on multi-core systems) * Use get_xbus()/put_xbus() arround xbus_populate(), so a disconnect in the middle won't release the xbus too early. * Aquire all XPDs before starting initialization and release them after it finishes (so we don't have up/down races among XPDs) * drivers/dahdi/xpp/xpp_dahdi.c, drivers/dahdi/xpp/xbus-sysfs.c, drivers/dahdi/xpp/xbus-core.c, drivers/dahdi/xpp/card_global.c, drivers/dahdi/xpp/xbus-core.h: put xbus->worker in xbus; wake_up_interruptible_all() * The worker member of 'struct xbus' is now an embedded struct xbus_workqueue. * Replace wake_up() to wake_up_interruptible_all(). * drivers/dahdi/xpp/xpd.h, drivers/dahdi/xpp/xpp_dahdi.c, drivers/dahdi/xpp/xbus-sysfs.c, drivers/dahdi/xpp/xbus-core.c: Cleanup: refcount_xpd() * Change refcount_xpd(): instead of returning a pointer to the atomic counter, return directly its value (just like refcount_xbus()) * Add a refcount_xbus and refcount_xpd attributes to sysfs (for debugging) * drivers/dahdi/xpp/xpp_dahdi.c, drivers/dahdi/xpp/xpp_usb.c, drivers/dahdi/xpp/xbus-pcm.h, drivers/dahdi/xpp/card_bri.c, drivers/dahdi/xpp/card_fxo.c, drivers/dahdi/xpp/xbus-core.c, drivers/dahdi/xpp/card_fxs.c, drivers/dahdi/xpp/xbus-core.h, drivers/dahdi/xpp/xbus-pcm.c: Fix building without CONFIG_PROC_FS defined This changeset should have no functional changes. * drivers/dahdi/xpp/init_card_4_30: Don't assume hardwired pri_protocol is E1 When initializing registers for the "PRI" (E1/T1) module, in the case the user has not explicitly asked for E1/T1 settings in xpp.conf (pri_protocol) fall back to the current value, which is the build-time fall-back. The value is read from sysfs. Previously we implicitly assumed this value is E1. * drivers/dahdi/xpp/init_card_4_30: partial fix of T1 returning signaling register in non-CAS mode 2010-07-12 18:45 +0000 [r8868] Shaun Ruffell * drivers/dahdi/dahdi-base.c, drivers/dahdi/dahdi_dummy.c: dahdi: Explicitly ensure we don't schedule a timer for the current tick. As best as I can tell, when CONFIG_NO_HZ is set along with CONFIG_HZ < 250, it is possible for the system timer to exceed MAX_SOFTIRQ_RESTART. Tony Mountifield alluded that this might be a problem in the below mailing list posting, but when I was originally testing, I wasn't using CONFIG_NO_HZ and HZ < 250. http://www.mail-archive.com/asterisk-dev@lists.digium.com/msg37384.html (closes issue #17620) Reported by: seanbright 2010-07-06 17:49 +0000 [r8853] Tzafrir Cohen * drivers/dahdi/wcb4xxp/base.c: Extra PCI ID for Junghanns PCI-E cards. 2010-07-02 18:58 +0000 [r8849] Matthew Fredrickson * drivers/dahdi/wct4xxp/base.c: Add support for max_latency module parameter in wct4xxp 2010-06-30 20:23 +0000 [r8841] Matthew Fredrickson * drivers/dahdi/wct4xxp/base.c: Fix for circumstances where the framer needs extra help to reset itself. 2010-06-29 20:20 +0000 [r8831-8832] Shaun Ruffell * drivers/dahdi/voicebus/voicebus.c: wctdm24xxp, wcte12xp: Fix "operation on may be undefined" warning. gcc 4.5.0 generates a warning on the changed lines and http://gcc.gnu.org/ml/gcc/2004-10/msg00032.html explains why. Essentially, the only thing guaranteed with the preincrement operator is that the value will be incremented before the assignment. It's undefined where in the sequence the mask will be applied. * drivers/dahdi/wctc4xxp/base.c: wctc4xxp: Fix "operation on may be undefined" warning. gcc 4.5.0 was generating a warning on the changed line, and the discussion at http://gcc.gnu.org/ml/gcc/2004-10/msg00024.html explains why. Essentially, the only thing guaranteed with the preincrement operator is that the value will be incremented before the assignment. It's undefined where in the sequence the mask will be applied. 2010-06-29 12:39 +0000 [r8809-8823] Tzafrir Cohen * README: Document DAHDI 2.3 and 2.2 incompatibilities * README: Fix the README "_V1" ioctls examples zap->dahdi and such. * build_tools/live_dahdi: live_dahdi: properly unload EC modules Copy sruffel's fix to the init.d script from -tools. * build_tools/live_dahdi: live_dahdi: regen config or restart asterisk without full reload Adds commands 'genconf' (for basically: dahdi_genconf; dahdi_cfg) and 'asterisk' (start asterisk) so doing those should not require a full restart. * include/dahdi/kernel.h: chan_notice() now works Make chan_notice() and does not complain about undefined 'chan'. 2010-06-24 21:02 +0000 [r8801-8805] Mike Spiceland * drivers/dahdi/wct4xxp/base.c: Fix trailing whitespace and make last change more readible. (sruffell suggestion) * drivers/dahdi/wct4xxp/base.c: Impliments a workaround for an errata in the qfalc v3.1 chip which caused RBS modes to be broken when using AMI coding. DAHDI-647. 2010-06-18 10:57 +0000 [r8784] Tzafrir Cohen * include/dahdi/dahdi_config.h: Disable DAHDI_AUDIO_NOTIFY by default It's still not tested well-enough, if one enables OPTIMIZE_CHANMUTE. 2010-06-14 21:34 +0000 [r8768] Mike Spiceland * drivers/dahdi/wct4xxp/base.c: Expose some dynamic latency options as module parameters for the wct4xxp driver latency - the default number of ms of buffering to start off with ms_per_irq - how often the card interrupts 2010-06-08 19:46 +0000 [r8751-8762] Tzafrir Cohen * drivers/dahdi/xpp/xpp_usb.c: Use usb_{alloc,free}_coherent instead of usb_buffer_{alloc,free}. usb_buffer_alloc has been replaced with usb_alloc_coherent , and likewise usb_buffer_free has been replaced with usb_free_coherent. in kernels 2.6.34 the older names are proxies for the new ones, and in 2.6.35 the older names are gone. This patch defines the new names for the old ones, for older kernel versions. (closes issue #17383) Reported by: Chainsaw * drivers/dahdi/voicebus/GpakCust.h: include semaphore.h explicitly for newer kernels With kernel version >= 2.6.35-rc1, building failed with: drivers/dahdi/voicebus/GpakCust.h:114: error: field ‘sem’ has incomplete type (closes issue #17382) Reported by: Chainsaw Patches: 07-semaphore-include-not-optional.diff uploaded by Chainsaw (license 723) * build_tools/live_dahdi: live_dahdi: load firmware_class if required Modprobe firmware_class for modules that may need it (and that we insmod later) 2010-05-25 19:23 +0000 [r8689] Shaun Ruffell * drivers/dahdi/wctdm24xxp/base.c: wctdm24xxp: Do not access memory after we free it. 2010-05-24 16:55 +0000 [r8680] Shaun Ruffell * drivers/dahdi/hpec/dahdi_echocan_hpec.c: hpec: #include Fix the same issue as in r8550 , for dahdi_echocan_hpec.c: With kernel 2.6.34 an explicit '#include ' is required for using kzalloc() and friends. 2010-05-23 12:17 +0000 [r8673-8674] Tzafrir Cohen * drivers/dahdi/dahdi_echocan_oslec.c: missing #include: fixes building with 2.6.34-rc5 Fix the same issue as in r8550 , for dahdi_echocan_oslec.c: With kernel 2.6.34-rc5 an explicit '#include ' is required for using kzalloc() and friends. * drivers/dahdi/dahdi_transcode.c: A typo (lintian) 2010-05-17 21:44 +0000 [r8653] Matthew Fredrickson * drivers/dahdi/wcb4xxp/base.c: Merge in pulse mask improvement patch for B410P. 2010-05-17 14:45 +0000 [r8641-8642] Shaun Ruffell * drivers/dahdi/wctdm24xxp/base.c: wctdm24xxp: dev_notice -> dev_info Modules that aren't installed should show at the same level as modules that are installed. It could be confusing if the console log level is set to 3 and only messages about which ports do not have any modules installed show up on the console. * drivers/dahdi/Kbuild, include/dahdi/kernel.h: dahdi: Check if wait_for_completion_timeout is backported. CentOS4 has this backported in their 2.6.9 kernel. 2010-05-14 Shaun Ruffell * dahdi-linux version 2.3.0.1 released. 2010-05-14 16:02 +0000 [r8621] Shaun Ruffell * drivers/dahdi/voicebus/GpakCust.h, /, drivers/dahdi/voicebus/GpakApi.c, drivers/dahdi/voicebus/voicebus.c, drivers/dahdi/voicebus/GpakCust.c: Merged revisions 8560,8575-8576 via svnmerge from https://origsvn.digium.com/svn/dahdi/linux/trunk ........ r8560 | sruffell | 2010-04-22 16:36:16 -0500 (Thu, 22 Apr 2010) | 11 lines wcte12xp, wctdm24xxp: Ensure writes to I/O registers are flushed. In revision 8176 I changed register access from I/O space to memory mapped registers. Unfortunately, when I made that change, I didn't account for posted writes. This change makes sure all the registers are read back to ensure that they are posted through any intermediate bridges. The most readily observable symptom were cards that were taking 2000 interrupts/second. The card reported that it handled an interrupt but the write to silence the card wasn't flushed through until the second time the interrupt handler run. DAHDI-602. ........ r8575 | sruffell | 2010-04-26 18:29:16 -0500 (Mon, 26 Apr 2010) | 4 lines wcte12xp, wctdm24xxp: Do not allow interruptible sleep on VPM lock. If the sleep is ever interrupted, 'up' will still be called in the GpakApi, essentially making the lock useless after that point. ........ r8576 | sruffell | 2010-04-26 18:29:17 -0500 (Mon, 26 Apr 2010) | 9 lines wcte12xp, wctdm24xxp: Retry if the VPMADT032 reports not ready. CheckDspReset can return -1 if the DSP is not ready to process any new commands. In this case we should retry a few times to give the DSP a chance to become ready. While I'm not ready to say this definitely fixes recently reported cases when the wcte12xp driver constantly resets, it eliminated communication failures to the DSP module when under stress (via the vpm_firmware_version sysfs attribute). However, I haven't let it run long enough to say that the issue is resolved. DAHDI-603. ........ 2010-04-22 11:03 +0000 [r8551] Tzafrir Cohen * /, drivers/dahdi/dahdi_echocan_jpah.c: missing #include: fixes building with 2.6.34-rc5 With kernel 2.6.34-rc5 an explicit '#include ' is required for using kzalloc() and friends. Merged revisions 8550 via svnmerge from http://svn.digium.com/svn/dahdi/linux/trunk 2010-04-19 19:42 +0000 [r8540-8545] Tzafrir Cohen * drivers/dahdi/xpp/xpp_debug, /, drivers/dahdi/xpp/card_pri.c, drivers/dahdi/wcb4xxp/Makefile, drivers/dahdi/xpp/card_bri.c, drivers/dahdi/xpp/card_global.c, drivers/dahdi/dahdi-base.c: typos, mostly unkown Merged revisions 8539 via svnmerge from http://svn.digium.com/svn/dahdi/linux/trunk * Makefile, /: Remove generation of kernel-doc API docs It's not really useful, and it breaks building 'docs' without a kernel tree. Merged revisions 8538 via svnmerge from http://svn.digium.com/svn/dahdi/linux/trunk * /: initialize svnmerge 2010-04-12 Shaun Ruffell * dahdi-linux version 2.3.0 released. 2010-04-06 23:19 +0000 [r8473-8494] Shaun Ruffell * drivers/dahdi/voicebus/voicebus.c: voicebus: Change WARN_ON_ONCE to BUG_ON. WARN_ON_ONCE is not defined in 2.6.9, and this condition would be catastrophic anyway if it were to occur. * drivers/dahdi/wcte12xp/base.c: wcte12xp: Load the VPM in startup, not spanconfig * drivers/dahdi/wcte12xp/base.c: wcte12xp: Check and dequeue/decipher the VPM commands atomically * drivers/dahdi/wcte12xp/base.c: wcte12xp: Make sure the interrupt is stopped before freeing the vpmadt032 * drivers/dahdi/wcte12xp/base.c: wcte12xp: Eliminate a trailing whitespace. * drivers/dahdi/wcte12xp/base.c: wcte12xp: Do not reconfigure the VPMADT032 if shutting down. If we try to unload the driver soon after a high latency event, it is possible to get stuck for several seconds reloading the firmware. DAHDI-573. * drivers/dahdi/wcte12xp/base.c: wcte12xp: Do not restart the timer on alarm poll if shutting down. * drivers/dahdi/wcte12xp/base.c: wcte12xp: Expose the maximum latency as a module parameter * drivers/dahdi/wcte12xp/base.c: wcte12xp: Reprogram the VPM only when neccessary. Only program the VPM in spanconfig if it either is not setup, or if it fails a ping test. Also, if the channel config fails (but ping would otherwise work), force a reset / reconfiguration if the VPM module. DAHDI-573. * drivers/dahdi/wcte12xp/base.c, drivers/dahdi/voicebus/GpakCust.c: wcte12xp: Try to reconfigure the VPM if we fail to configure the channels. Also, fall back to any software echocan configured for this channel for new calls while we're in the middle of a recovery. 2010-04-04 16:14 +0000 [r8454-8468] Shaun Ruffell * drivers/dahdi/wcte12xp/base.c, drivers/dahdi/voicebus/voicebus.c, drivers/dahdi/wcte12xp/wcte12xp.h, drivers/dahdi/voicebus/GpakCust.c, drivers/dahdi/voicebus/GpakCust.h: wcte12xp: Poll the VPM and reset it if necessary. When the transmit descriptor runs out completely, there (appears to be) a chance for a random command to be sent that results in the VPMADT032 to no longer respond, typically resulting in one way audio. This change introduces a poll of the VPM. If it fails the poll, it will be bypassed temporarily while the driver resets and reprograms it. Also, the VPM is initially programmed in the spanconfig callback instead of at driver load. This moves the potential for underruns until later in the boot process. DAHDI-573. * drivers/dahdi/voicebus/voicebus.c: wcte12xp, wctdm24xxp: If we're only one packet behind, just exit. This will make us two behind, which is fine, and eliminates a busy loop in atomic context. * drivers/dahdi/wcte12xp/base.c: wcte12xp: Use ARRAY_SIZE in a couple more places * drivers/dahdi/wcte12xp/base.c, drivers/dahdi/wctdm24xxp/base.c, drivers/dahdi/voicebus/GpakCust.h: wcte12xp, wtdm24xxp: Make sure the writes are retried. r8454 and r8460 introduced a change where writes are not retried when other module/framer commands are retried. This was an error and wasn't what was actually under test. This commit restores the behavior in wctdm24xxp and makes sure the vpm writes are retried in the wcte12xp. * drivers/dahdi/wcte12xp/base.c, drivers/dahdi/wctdm24xxp/base.c, drivers/dahdi/voicebus/GpakCust.h: wcte12xp, wctdm24xxp: Close a memory leak when processing VPM commands. Closes a memory leak when processing the VPM write commands introduced in r8454. * drivers/dahdi/wcte12xp/base.c, drivers/dahdi/wcte12xp/wcte12xp.h: wcte12xp: Use our own workqueue for the timer and maint events. When the latency is large and register reads can take 100s of milliseconds, the alarm polling function could tie up one of the global workqueue threads long enough to interfere with other system operations. Most noticeably the console. DAHDI-573 * drivers/dahdi/wcte12xp/base.c, drivers/dahdi/wctdm24xxp/base.c, drivers/dahdi/voicebus/GpakCust.h: wcte12xp: Resend both framer and VPM commands when reads may have been lost. Latency conditions could cause the driver to misconfigure the VPM which would result in one way audio. DAHDI-572. 2010-03-29 20:43 +0000 [r8443] Russ Meyerriecks * drivers/dahdi/dahdi-base.c: dahdi-base: Fix a bug preventing clobbering maint state Now the errror injection code prevents placing the driver into a loopback state in a less forceful way. 2010-03-25 16:23 +0000 [r8431] Shaun Ruffell * drivers/dahdi/voicebus/voicebus.c, drivers/dahdi/wctdm24xxp/base.c, drivers/dahdi/voicebus/voicebus.h: wctdm24xxp: Add an 'hx8' mode for buffer processing. The Hx8 series cards do not need any idle buffers and idle_buffers complicate processing when using the timing_cable. This change adds another mode of operation for the voicebus layer for the Hx8 cards that operates without the idle buffers. 2010-03-25 15:13 +0000 [r8421-8423] Tzafrir Cohen * drivers/dahdi/wcb4xxp/base.c, drivers/dahdi/wcb4xxp/wcb4xxp.h: wcb4xxp - add Swyx 4xS0 SX2 QuadBri PCI IDs (closes issue #16493) Reported by: nic_bellamy Patches: wcb4xxp_swyx_sx2_quadbri_pci_ids.patch uploaded by nic bellamy (license 299) * drivers/dahdi/wcb4xxp/base.c: Some more wcb4xxp PCI IDs for Junghanns cards Resolve two open issues. One of them that accidentally wasn't closed. (closes issue #15446) (closes issue #16447) Reported by: lpistone Tested by: okrief 2010-03-24 15:56 +0000 [r8410-8416] Shaun Ruffell * drivers/dahdi/wcte12xp/base.c: wcte12xp: Fix typo in last commit. Wouldn't compile on kernels >= 2.6.20. * drivers/dahdi/wcte12xp/base.c: wcte12xp: t1xxp_maint is also called with interrupts disabled from dahdi_ioctl So just push all the maintenance mode processing off to the workqueue. * drivers/dahdi/wcte12xp/base.c: wcte12xp: t1xxp_maint can be called from interrupt context. Since t1xxp_maint can be called from interrupt context with the DAHDI_MAINT_LOOPSTOP cmd, push the processing of that command to a workqueue since it may sleep in the t1_getreg call. DAHDI-560. 2010-03-24 12:07 +0000 [r8405] Tzafrir Cohen * README: document the header line of /proc/dahdi/NN 2010-03-23 21:56 +0000 [r8399-8400] Shaun Ruffell * drivers/dahdi/wcte12xp/base.c: wcte12xp: Fix potential race on command handling. If we timeout a command, don't free it right away unless we are the one who removed it from whatever list it was on. Also, increase the timeout (2 seconds wasn't enough when the firmware for the VPMOCT was being loaded on a system with 4K stacks) and check the return value from t1_getreg in case there were timeouts. DAHDI-560. * include/dahdi/kernel.h: dahdi: 'clamp' may already be backported. 2010-03-23 13:41 +0000 Russ Meyerriecks * dahdi-linux version 2.2.1.1 released. 2010-03-10 17:04 +0000 Russ Meyerriecks * dahdi-linux version 2.2.1.1-rc1 released. * wct4xxp: Added support for for qfalc v3.1 framer. * wct4xxp: Added ID tags for generation 5 firmware updates 2010-01-11 Shaun Ruffell * dahdi-linux version 2.2.1 released. 2010-01-11 13:40 +0000 [r7844] Tzafrir Cohen * drivers/dahdi/xpp/xbus-pcm.c, /: xpp: demote a message that generates some false alarms. Merged revisions 7843 via svnmerge from http://svn.digium.com/svn/dahdi/linux/trunk 2010-01-10 11:40 +0000 [r7806-7816] Tzafrir Cohen * /, drivers/dahdi/xpp/firmwares/USB_FW.hex: xpp: USB_FW rev 7578 Fixes various minor twinstar-related bugs. Merged revisions 7815 via svnmerge from http://svn.digium.com/svn/dahdi/linux/trunk * drivers/dahdi/xpp/xbus-pcm.c, /: xpp: fixes for drift calculation. Should help for the case of multiple quad-PRI Astribanks on a single system. xpp rev: 7666. Merged revisions 7807 via svnmerge from http://svn.digium.com/svn/dahdi/linux/trunk * drivers/dahdi/xpp/xbus-pcm.c, /, drivers/dahdi/xpp/xbus-pcm.h, drivers/dahdi/xpp/xbus-sysfs.c: xpp: Improved inter-Astribank drift calculation. Merged revisions 7625 via svnmerge from http://svn.digium.com/svn/dahdi/linux/trunk 2009-12-28 19:16 +0000 [r7733] Shaun Ruffell * drivers/dahdi/dahdi-base.c: dahdi-base: change dahdi_kernel_fpu_end to kernel_fpu_end dahdi_kernel_fpu_end is part of the MMX changes in trunk that was not committed into the 2.2 branch. This change snuck in as part of revision 6864 with the master span processing changes. 2009-12-22 17:53 +0000 [r7723] Shaun Ruffell * voicebus, wcte12xp: Only define SLAB_STORE_USER when CONFIG_SLUB is defined. On 2.6.22, there is was a bug in the SLUB allocator that required defining SLAB_STORE_USER, however this setting is only valid when CONFIG_SLUB is defined and not when using the previous slab allocator. DAHDI-424. 2009-12-11 23:22 +0000 [r7683-7684] Shaun Ruffell * dahdi-linux version 2.2.1-rc2 released. * dahdi-base: Do not wait for impulse when echotraining. Waiting here for the impulse on the transmit can cause the echotraining logic to stick the channel into muted state. This is especially apparent on systems that regularly do not service the interrupts every millisecond. DAHDI-387. * dahdi-base: Reduce the max allocation size in dahdi_reallocbufs. Lower the maximum contiguous chunk that DAHDI asks for from DAHDI_MAX_BUFFER_SIZE*2 to DAHDI_MAX_BUFFER_SIZE. With 4K pages, this can allow the kernel to try a little harder to find the memory it needs since the request goes from order 4 to order 3. 2009-11-23 19:20 +0000 [r7636] Shaun Ruffell * dahdi-linux version 2.2.1-rc1 released. * Even if we are debouncing the LOS declaration, we still expect the LED to turn red as soon as we unplug the physical cable. This impliments this on the wcte12xp just as it already does on the wct4xxp. 2009-11-22 11:43 +0000 [r7616-7620] Tzafrir Cohen * xpp firmware: fix FXS indirect register reading. xpp rev: 7498 Merged revisions 7614 via svnmerge from http://svn.digium.com/svn/dahdi/linux/trunk 2009-11-19 22:52 +0000 [r7610] Tzafrir Cohen * drivers/dahdi/xpp/xpp.rules, /: xpp: rules for loading USB firmware into 1163 devices as well Merged revisions 7595 via svnmerge from http://svn.digium.com/svn/dahdi/linux/trunk 2009-11-12 23:45 +0000 [r7572-7584] Shaun Ruffell * voicebus: Fix race when enabling/disabling hardware echocan. This closes a race condition where it was possible for the driver to believe it has enabled the VPMADT032 when in fact, it really has not. This fixes a regression introduced in dahdi-linux 2.2.0. (issue #15724) 2009-11-10 15:47 +0000 [r7539-7550] Shaun Ruffell * wcte12xp: Export features and operations for VPMADT032. Fixes a regression in dahdi-linux 2.2.0 where it was impossible for userspace to reset the state of a channel in the VPM. (issue #15724) Patches: mantis-15724-2.patch uploaded by sruffell (license 456) Tested by: alecdavis * Use the same mutex lock for channel allocation and license checking in dahdi_echocan_hpec, so that channel allocation won't happen while the license is being checked (or rechecked) * dahdi_dynamic: Release the dlock before calling accross modules. Resolves a hard lock due to a recursive spinlock grab at startup. Reported by: mapacheco (closes issue #15210) * echocan: Properly keep the reference counts for the echocan modules. (closes issue #13504) (closes issue #15327) Reported by: sruffell, tzafrir * wcb4xxp: support for other HFC-xS cards (info, not code) This commit includes skeleton for the support of other HFC-[248]S-based cards. It still does not include all the different cases for different cards. * wcb4xxp: B410P differences: Clock and NT/TE. * The B410P reads the NT/TE switches the other way around from other cards. * Its clock is also 1/2 of that of other cards, which causes wierd PCM on an unmodified driver. * wcb4xxp: Fix PCM handling for various cards. HFC-8S cards behave quite differently than HFC-4S cards here. * wcb4xxp: Fix LED handling in OpenVox cards (maybe also others) This commit adds extra functions to handle LEDs in the non-B410P cards. Only tested on OpenVox cards. OpenVox cards are known to have slightly different LEDs so this is likely to be slightly broken for others. * wctdm: Change proslic linefeed register setting Insure that proslic linefeed register is not transitioned from Active to On-Hook Transmission while the channel is off-hook. Replaced magic numbers assigned to linefeed associated variables with more descriptive constants. (issue #15352) Reported by: alecdavis Patches: wctdm_prevent_ohttimer_click.diff3.txt uploaded by dbailey (license 819) Tested by: alecdavis, dbailey, vmikhelson * wctdm24xxp, wctdm: Detect if our hookstate has been set back to the initial state. Check if our hookstate has been set back to the initial state, typically the result of a chanconfig, and if so, if we're an FXO port, forget our current battery state. This allows the driver to determine and report again what the hook state of the port is. (related to issue #14577) (closes issue #15429) * wcfxo: Reset the DAA on module initialization. The X100p and clones will sometimes work and sometimes not depending on wether the DAA powers up in running state- this seems to be related to the power supply. This problem is caused by the driver not reseting the DAA and may be the source of a great many intermittent problems with this card. (closes issue #14232) Reported by: tallen8840 Patch by: tallen8840 Tested by: explidous, Flavio * Silence spurious warnings when trying to remove Zaptel directories during install. (closes issue #15479) Reported by: pprindeville Patches: dahdi-linux-rm.patch uploaded by pprindeville (license 347) * dahdi-base: Reduce the stack usage of dahdi_common_ioctl. Split the DAHDI_GETGAINS and DAHDI_SETGAINS ioctls into their own functions and dynamically allocate the 'struct dahdi_gains' structure to reduce the pressure on the stack. * Fixed issue where the clear channel flags were not being set at the appropriate time causing a channel re-configure to mis-set the last channel in each span * wctdm24xxp: Race condition in handling writes to proslic LINEFEED register (64) The wctdm24xxp driver has a problem where a VMWI IOCTL call followed immediately by a ONHOOKTRANSFER IOCTL call will cause the ONHOOK transfer request to be dropped. This occurs if the write to the proslic's LINEFEED register for the VMWI ICTL call is not completed when the ONHOOK transfer request IOCTL is processed. I also cleaned out some magic numbers used in setting the linefeed register. (closes issue #15875) Reported by: dbailey Patches: 15875-wctdm24xxp.diff uploaded by dbailey (license 819) Tested by: dbailey * wctdm: WCTDM SPI clock off state polarity and read timing Change the off state of the SPI clock to high and provide more time for data to settle out on SPI reads. (closes issue #15261) Reported by: alecdavis Patches: wctdm_spi_clocking.diff2.txt uploaded by alecdavis (license 585) Tested by: alecdavis, dbailey * wct4xxp: Check the alarm state if we're debouncing a red alarm. This fixes a problem where if you set the alarmdebounce module parameter on gen2+ cards, you never detect when you go into red alarm. * dahdi-base: dahdi_ioctl_[get|set]gains should return the res value. In function dahdi_ioctl_getgains() and dahdi_ioctl_setgains() return value assigned to res variable, but these function always return 0 which is an error. (closes issue #15916.) Patch by: ys * wctdm: Add missing break A break was missing that caused DAHDI_ONHOOKTRANSFER ioctl call to fall into DAHDI_SETPOLARITY ioctl call. (issue #14261) Reported by: alecdavis Patches: wctdm_fix_ONHOOKTRANSFER.diff.txt uploaded by alecdavis (license 585) Tested by: alecdavis * dahdi-base: Do not allow jumps in system time to lock up the system w/core_timer Since dahdi coretimer uses the number of milliseconds that has actually passed to determine how many times to call dahdi_receive, it is possible that if the system time shifts after dahdi is started, that the system can appear to lock up while the core timer attempts to catch up. This change prevents soft lock ups under these conditions. This is brings the dahdi_dummy changes in r6933 into dahdi-base. (related to issue #15647) * wcte12xp, wctdm24xxp: VPMADT032 firmware update to 1.20. * wct4xxp: Debounce alarms by default for wct4xxp per AT&T 54016. Also, the various alarm conditions can be debounced separately. * voicebus: Increase the NLP converged threshold to 18. Brings in the change from r7065 that was on the team/sruffell/dahdi-linux-vpm119 branch. * wcte12xp: Adding alarm debounce to single span driver (wcte12xp). Debounce yellow alarm also. Change check alarm frequency to 100ms for better debounce granularity. Fix lines over 80 cols from last alarm debounce commit. * voicebus: Send 'idle' buffers when the transmit descriptor underruns. Previously, when the host system fails to service the interrupt in a timely fashion, the transmit descriptor ring for the voicebus card would "go empty" since the interface wouldn't have another descriptor to read in. The driver only knows that it went empty, not how far behind it actually was. Therefore, the driver could just increase the latency by a millisecond and keep going waiting for another bump. Additionally, when the transmit descriptor actually goes empty, there are some cases where an in process SPI transaction to one of the modules is interrupted, which may result in corrupted module register writes on rare occassions. This now makes it possible for the voicebus drivers to coexist with some devices that periodically lock interrupts for longer than 25ms. Before this patch, the latency would constantly increase until either the modules received a corrupted frame. This patch preconfigures all the receive descriptors to send an "idle" packet that will be transmitted to the onboard modules when the host doesn't service the interrupt within (latency - 2)ms. There are now two kinds of underruns, softunderuns where the driver can detect that these idlebuffers have made it to the TX FIFO, and the normal hard underrun where the part signals a transmit descriptor unavailable interrupt. DAHDI-278. * voicebus: Add function to lock the latency. Now that increases in the latency produce less undefined behavior on the SPI busses, provide an interface for client drivers to inform the voicebus library to not increase the latency if underruns are detected. This can speed up loads of the driver since latency bumps do not trigger a restart of the driver initialization. DAHDI-278. * wctdm24xxp, wcte12xp: Lock latency when loading We no longer need to retry board initialization if the latency would have increased during the initialization. DAHDI-278 * voicebus, wctdm24xxp, wcte12xp: Move a print out of the interrupt handler. This can be handled just as well in process context and printing to a serial console from the interrupt handler has the potential to cause long latencies. * voicebus: Be just a little more graceful if we cannot grab our interrupt line. * wcte12xp: use the dev_xxx macro for the debounce messages. We want to know which device is reporting the debounce when there are more than one card in the system. 2009-11-05 12:06 +0000 [r7485-7493] Tzafrir Cohen * backport a number of build fixes from trunk to 2.2 Merged revisions 7226,7356,7392 via svnmerge from http://svn.digium.com/svn/dahdi/linux/trunk * xpp: Use proper get/set for device->driver_data 2.6.32-rc1 broke direct access to the member 'driver_data' of 'struct device'. However direct access to wasn't proper in the first place. This commit replaces direct access to dev->driver_data with dev_get_drvdata() and dev_set_drvdata(). * dahdi-base: Include linux/sched.h Commit a99bba to the mainline kernel removed sched.h from poll.h. So dahdi-base.c needs to include sched.h directly now. http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a99bba * headers: sched.h was also removed from interrupts.h Commit d43c36 made it necessary to add sched.h to more of the board drivers. http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d43c36 * xpp: Add sysfs xpd attribute 'timing_priority' Merged revisions 7237 via svnmerge from http://svn.digium.com/svn/dahdi/linux/trunk * T1 CAS support in the xpp "pri" module Merged revisions 7244-7245,7266,7276,7457 via svnmerge from http://svn.digium.com/svn/dahdi/linux/trunk * xpp: make card_hooksig an optional card method. Done in preperation for T1 CAS support, as the PRI module will use RBS instead. * xpp: refactor pcm mask handling. * xpp: PRI PIC firmware: T1-CAS fixes * xpp: More E1/T1 CAS fixes. Mostly connect/disconnect xpp revs: mostly 7458, 7466 2009-08-19 16:44 +0000 [r7039] Kevin P. Fleming * Ensure that dahdi_scan correctly reports VPM presence. The wct4xxp driver (for the dual/quad span T1/E1 cards) and the wcte12xp driver (for the single span VoiceBus-based T1/E1 cards) did not properly update the 'devicetype' field reported by dahdi_scan when a VPM was found during the card startup process. As a result, dahdi_scan did not show that a VPM was present on the card, even if it was. 2009-08-13 22:04 +0000 [r7001] Tzafrir Cohen * xpp firmware: Fixes PCM issue with FXO that is not a timing source Fixes PCM issue with an Astribank2 (116x) FXO module that is installed alongside a PRI/BRI module. xpp: FPGA_1161.hex r7276 . Merged revisions 6938,6966 via svnmerge from http://svn.digium.com/svn/dahdi/linux/trunk 2009-08-06 17:35 +0000 [r6950] Shaun Ruffell * dahdi-base: Reduce the stack usage of ioctl_load_zone. * dahdi-base: Update formatting in ioctl_load_zone. Fixes checkpatch.pl formatting errors from the previous commit. 2009-08-04 16:38 +0000 [r6934-6937] Shaun Ruffell * wctc4xxp: Update to use struct net_device_ops. Accomodates a change in the linux kernel network device interface. * wctc4xxp: Make the wctc4xxp_netdev_ops structure static. * dahdi_dummy: Do not allow jumps in system time to lock up the system. Since dahdi_dummy uses the number of milliseconds that has actually passed to determine how many times to call dahdi_receive, it is possible that if the system time shifts after dahdi is started, that the system can appear to lock up while dahdi_dummy attempts to catch up. This change prevents soft lock ups under these conditions. (closes issue #15647) Reported by: missnebun 2009-07-21 18:11 +0000 [r6864] Shaun Ruffell * wcte12xp: Disable vpmadt032 companding by default. This fixes a regression in 2.2.0 where certain configurations will fail patloop test or have repeated HDLC aborts because the VPMADT032 is modifying the clear channel or d channel data streams. This restores the behavior to how it was in dahdi-linux 2.1.0.4. (closes issue #15498) Reported by: alecdavis Tested by: alecdavis * tor2: allow using port4 as timing source Fix a silly regression introduced when strict check on the timing parameter was added (sync-1 is the array index, not sync itself. And 0 is a special case). (closes issue #15408) Reported by: dferrer Patches: tor2-4th_sync.patch uploaded by dferrer (license 525) * Revert "wct4xxp, wcte11xp: Use the default configuration by default at startup." This reverts the change introduced by revision 6712. This change can cause problems when there is a VPM module installed on the quad-span digital cards. * dahdi-base: Add support for core timing. This essentially moves the function of dahdi_dummy into the core of DAHDI. It ensures that if DAHDI is loaded, it will always be able to provide timing, regardless of whether there are board drivers loaded, or if the board drivers are properly calling dahdi_receive. If there is a master span loaded which is calling dahdi_receive, then the behavior will be like it is normally. This functionality is off by default, uncomment CONFIG_DAHDI_CORE_TIMER in include/dahdi/config_dahdi.h in order to enable it. 2009-07-21 18:11 +0000 [r6858-6864] Shaun Ruffell * dahdi-linux version 2.2.0.2 released. * wcte12xp: Disable vpmadt032 companding by default. This fixes a regression in 2.2.0 where certain configurations will fail patloop test or have repeated HDLC aborts because the VPMADT032 is modifying the clear channel or d channel data streams. This restores the behavior to how it was in dahdi-linux 2.1.0.4. (closes issue #15498) Reported by: alecdavis Tested by: alecdavis * tor2: allow using port4 as timing source Fix a silly regression introduced when strict check on the timing parameter was added (sync-1 is the array index, not sync itself. And 0 is a special case). (closes issue #15408) Reported by: dferrer Patches: tor2-4th_sync.patch uploaded by dferrer (license 525) * Revert "wct4xxp, wcte11xp: Use the default configuration by default at startup." This reverts the change introduced by revision 6712. This change can cause problems when there is a VPM module installed on the quad-span digital cards. * dahdi-base: Add support for core timing. This essentially moves the function of dahdi_dummy into the core of DAHDI. It ensures that if DAHDI is loaded, it will always be able to provide timing, regardless of whether there are board drivers loaded, or if the board drivers are properly calling dahdi_receive. If there is a master span loaded which is calling dahdi_receive, then the behavior will be like it is normally. This functionality is off by default, uncomment CONFIG_DAHDI_CORE_TIMER in include/dahdi/config_dahdi.h in order to enable it. 2009-06-30 Shaun Ruffell * dahdi-linux version 2.2.0.1 released. * Fix for kernel panic when echotraining is enabled on echocan that does not support it. * Fix for kernel panic on RHEL4 when using VPMADT032. * Fix to allow wct4xxp, wcb4xxp, and wcte11xp to provide early timing. 2009-06-23 15:44 +0000 [r6695] Shaun Ruffell * dahdi-linux version 2.2.0 released. * README: Adding a known issues section to the README files. 2009-06-18 18:03 +0000 [r6692] Shaun Ruffell * drivers/dahdi/wcfxo.c, drivers/dahdi/wctdm.c, drivers/dahdi/wctdm24xxp/base.c: Fix calls to dahdi_hooksig. When JAPAN, AUDIO_RINGCHECK, or ZERO_BATT_RING compile time options are selected it is possible to get a kernel panic due to an invalid pointer passed to the dahdi_hooksig function. (closes issue #15350) Patch by: alecdavis 2009-06-12 22:30 +0000 [r6688] Jason Parker * drivers/dahdi/Kbuild: Make complex conditionals work with GNU make 3.80. Much uglier, but it works on RHEL4. 2009-06-04 21:14 +0000 [r6675] Shaun Ruffell * drivers/dahdi/dahdi-base.c: Fix bug in procfs handling. Fix bug in procfs handling where it was possible to get a warning in lib/vsprintf.c when reading from /proc/dahdi/x. Patch by: biohumanoid (closes issue #15252) 2009-05-27 Shaun Ruffell * dahdi-linux version 2.2.0-rc5 released. 2009-05-27 12:48 +0000 [r6659] Tzafrir Cohen * drivers/dahdi/xpp/card_pri.c, drivers/dahdi/xpp/card_bri.c, drivers/dahdi/xpp/card_fxo.c, drivers/dahdi/xpp/card_fxs.c, drivers/dahdi/xpp/card_global.c: Fix more 'owner' for 2.6.30 to be happy. Finishing the work of r6642. Completely shut issue #14964. 2009-05-25 08:23 +0000 [r6651-6653] Tzafrir Cohen * drivers/dahdi/xpp/firmwares/PIC_TYPE_3.hex, drivers/dahdi/xpp/firmwares/PIC_TYPE_4.hex, drivers/dahdi/xpp/firmwares/FPGA_1161.hex, drivers/dahdi/xpp/firmwares/PIC_TYPE_1.hex, drivers/dahdi/xpp/firmwares/PIC_TYPE_2.hex: xpp firmwares: fixes sync issues of FXO module in a BRI/PRI Astribank * Also fixes LED blinking issues in PRI modules * Various bugfixes in the PICs. * drivers/dahdi/xpp/firmwares/USB_FW.hex: USB_FW.hex: Allow setting caps. even when FPGA is loaded. Note that They will only take effect after a reset. Firmware rev. 7071. 2009-05-19 16:09 +0000 [r6635-6642] Tzafrir Cohen * drivers/dahdi/xpp/xpp_dahdi.c, drivers/dahdi/xpp/xpp_usb.c, drivers/dahdi/xpp/xbus-core.c, drivers/dahdi/xpp/xdefs.h: xpp: 'owner' property of procfs was dropped in 2.6.30. This adds a compatibility macro for older versions that is a noop for kernels >= 2.6.30. (closes issue #14964) * drivers/dahdi/xpp/xproto.h, drivers/dahdi/xpp/xbus-sysfs.c, drivers/dahdi/xpp/xbus-core.c, drivers/dahdi/xpp/card_global.c, drivers/dahdi/xpp/xproto.c, drivers/dahdi/xpp/xbus-core.h, drivers/dahdi/xpp/xbus-pcm.c: xpp: fix the Astribank state machine This generally is a case that would not happen in the wild, though. * drivers/dahdi/xpp/card_bri.c, drivers/dahdi/xpp/xdefs.h: xpp: report in sysfs if bri module uses hardhdlc support * drivers/dahdi/xpp/calibrate_slics (removed): xpp: remove obsolete script calibrate_slics * drivers/dahdi/xpp/card_pri.c, drivers/dahdi/xpp/mmapbus.c, drivers/dahdi/xpp/card_bri.c, drivers/dahdi/xpp/card_fxo.c, drivers/dahdi/xpp/mmapdrv.c, drivers/dahdi/xpp/xbus-sysfs.c, drivers/dahdi/xpp/Kbuild, drivers/dahdi/xpp/card_fxs.c, drivers/dahdi/xpp/xdefs.h: Replaece member bus_id with dev_name() and set_dev_name() As of 2.6.26 the macros dev_name() and set_dev_name() are used to read and set (respectively) the bus_id member in sysfs. As of 2.6.30 bus_id is gone. This patch provides comaptiobility macros for older kernel versions and removes direct usage of bus_id. (closes issue #14965) Patches: xpp_2630_dev_name.diff uploaded by tzafrir (license 46) * drivers/dahdi/voicebus, drivers/dahdi/vpmadt032_loader: ignore generated files in voicebus and vpmadt032_loader 2009-05-15 23:37 +0000 [r6625-6628] Shaun Ruffell * drivers/dahdi/voicebus/GpakCust.c: voicebus: Use '&' not '|' when checking for a bit. * drivers/dahdi/voicebus/GpakCust.c: voicebus: Make the enable/disable echocan messages debug again. I accidentally changed to print everytime. They should only be printed if DEBUG_ECHOCAN is specified in the debug module parameter. 2009-05-14 14:49 +0000 [r6621] Shaun Ruffell * drivers/dahdi/wcte12xp/base.c: wcte12xp: Set the syncsrc in the span appropriately. Before this commit, dahdi_tool would report "Internally clocked" for boards supported by the wcte12xp driver both when receiving timing from the span and providing it to the span. Now it reports "Internally clocked" if providing timeing to the span, and the card if receiving timeing from the span. DAHDI-65. 2009-05-12 22:30 +0000 [r6606-6610] Kevin P. Fleming * drivers/dahdi/Kbuild: use proper case for variable name :-) * drivers/dahdi/Kbuild: Allow VPMADT032 and HPEC binary modules to be used on platforms where ARCH is set to the new 'generic' x86 flavor available in recent Linux kernel releases * drivers/dahdi/Kbuild: emit warning messages when DAHDI is being built on a CPU architecture that does not support HPEC or the VPMADT032 firmware loader, so the user will know why they are not included clean up the conditional logic for these items in the Kbuild file * Makefile: remove another unused variable 2009-05-11 17:48 +0000 [r6589-6590] Shaun Ruffell * dahdi-linux version 2.2.0-rc4 released. * drivers/dahdi/wcte12xp/base.c: wcte12xp: Expose vpm parameters as module parameters. Expose the vpmnlptype, vpmnlpthresh, and vpmnlpmaxsupp as module parameters like for the wctdm24xxp. DAHDI-261 * drivers/dahdi/wcte12xp/base.c, drivers/dahdi/wctdm24xxp/base.c, drivers/dahdi/voicebus/GpakApi.h, drivers/dahdi/voicebus/GpakCust.c, drivers/dahdi/voicebus/GpakCust.h: voicebus: Update the default vpmadt032 parameters. Move the echo can channel parameters into a common location for both the wcte12xp and wctdm24xxp drivers that use the voicebus module. This is intended to make it clearer which differences are required between the clients. Additionally, update the default parameters to the new recommended values. VPMADT032-37 2009-05-07 19:42 +0000 [r6572] Shaun Ruffell * drivers/dahdi/wcte12xp/base.c, drivers/dahdi/wctdm24xxp/base.c, drivers/dahdi/voicebus/GpakCust.c, drivers/dahdi/voicebus/GpakCust.h: voicebus: Create workqueue for each vpmadt032 instance. Depending on the system latency, the deferred work for the vpmadt032 can take up to 200ms. This change allows each vpmadt032 to use its own workqueue, and not the global system workqueue. This prevents vpm operations from blocking the main system workqueue for extended periods. This restores the behavior to the way it was before the common vpmadt032 code was moved out of the wctdm24xxp and wcte12xp drivers. DAHDI-260 voicebus-squash: Adding the wq name. 2009-05-07 19:42 +0000 [r6568-6572] Shaun Ruffell * dahdi-linux version 2.2.0-rc3 released. * drivers/dahdi/wcte12xp/base.c, drivers/dahdi/wctdm24xxp/base.c, drivers/dahdi/voicebus/GpakCust.c, drivers/dahdi/voicebus/GpakCust.h: voicebus: Create workqueue for each vpmadt032 instance. Depending on the system latency, the deferred work for the vpmadt032 can take up to 200ms. This change allows each vpmadt032 to use its own workqueue, and not the global system workqueue. This prevents vpm operations from blocking the main system workqueue for extended periods. This restores the behavior to the way it was before the common vpmadt032 code was moved out of the wctdm24xxp and wcte12xp drivers. * drivers/dahdi/wcte12xp/base.c, drivers/dahdi/wctdm24xxp/base.c, drivers/dahdi/voicebus/GpakCust.h: voicebus: Changing default NLP type to 'suppression'. The 'suppression' default for the NLP provides better echo canceling performance. Also ensures that the wctdm24xxp and wcte12xp driver use the same default values. 2009-05-05 17:32 +0000 [r6564] Shaun Ruffell * drivers/dahdi/voicebus/GpakCust.c: voicebus: Use the companding type on the span when enabling echocan. 2009-05-04 20:36 +0000 [r6562] Doug Bailey * drivers/dahdi/voicebus/GpakCust.c: Insure that vpmnlptype, vpmnlpmaxsupp, and vpmnlpthresh are set back to module level defaults when echo can is freed. (Previously they were zero'd out) DAHDI-257 2009-05-02 07:53 +0000 [r6556] Kevin P. Fleming * Makefile: Remove explicit passing of ARCH to kernel build system There is no value in setting a value for ARCH and passing it to the kernel build system; the configured kernel headers/sources already have an architecture specified and can't be used for any other architecture anyway. 2009-05-01 16:43 +0000 [r6549-6554] Shaun Ruffell * drivers/dahdi/dahdi-base.c: dahdi-base: define __RW_LOCK_UNLOCKED() Linux 2.6.9 does not contain that definition, but the older definition is deprecated since it defeats lock state checking. DAHDI-253 * drivers/dahdi/voicebus/Makefile (added): voicebus: Need Makefile to build on 2.6.9 DAHDI-253 * drivers/dahdi/wcb4xxp/base.c: wcb4xxp: Define mmiowb if not already defined. Linux kernel 2.6.9 does not define mmiowb. DAHDI-253 * drivers/dahdi/wctc4xxp/base.c: wctc4xxp: spin_trylock_irqsave is not defined on some kernels. DAHDI-253 * drivers/dahdi/wctc4xxp/base.c: wctc4xxp: Defined gfp_t for earlier kernels. This definition was just copied from the xpp driver. DAHDI-253 * drivers/dahdi/wctc4xxp/base.c: wctc4xxp: Fix inclusion of linux/io.h on 2.6.9 kernels. DAHDI-253 2009-04-30 20:59 +0000 [r6544-6546] Kevin P. Fleming * include/dahdi/user.h: Fix compilation of applications that use DAHDI ioctls Defining ioctl codes in this file requires that linux/ioctl.h be included first. * drivers/dahdi/wcte12xp/base.c, drivers/dahdi/wct4xxp/base.c, drivers/dahdi/wctdm24xxp/base.c: Ensure that vpmsupport=0 module parameter takes proper effect For these drivers, when the vpmsupport module parameter is set to zero, don't even register the span as supporting echo cancellation. DAHDI-250 2009-04-30 13:59 +0000 [r6542] Tzafrir Cohen * drivers/dahdi/xpp/firmwares/FPGA_1161.hex: xpp: A new FPGA firmware to hopefully help with BRI/FXO. 2009-04-29 18:24 +0000 [r6523-6529] Shaun Ruffell * dahdi-linux version 2.2.0-rc2 released. * drivers/dahdi/dahdi_echocan_kb1.c, drivers/dahdi/wcte12xp/base.c, include/dahdi/user.h, include/dahdi/kernel.h, drivers/dahdi/adt_lec.c, drivers/dahdi/dahdi_echocan_jpah.c, drivers/dahdi/wct4xxp/base.c, drivers/dahdi/ecdis.h, drivers/dahdi/wctdm24xxp/base.c, drivers/dahdi/dahdi_echocan_mg2.c, drivers/dahdi/wcte12xp/wcte12xp.h, drivers/dahdi/voicebus/GpakCust.c, drivers/dahdi/hpec/hpec.h, drivers/dahdi/wcb4xxp/wcb4xxp.h, drivers/dahdi/dahdi_echocan_sec2.c, drivers/dahdi/voicebus/GpakCust.h, drivers/dahdi/hpec/dahdi_echocan_hpec.c, include/dahdi/dahdi_config.h, drivers/dahdi/wcb4xxp/base.c, drivers/dahdi/wctdm24xxp/wctdm24xxp.h, drivers/dahdi/dahdi_echocan_oslec.c, drivers/dahdi/dahdi-base.c, drivers/dahdi/dahdi_echocan_sec.c: echocan: Improve interface for echo cancelers. Echo cancelers are now able to report if they are able to automatically disable their NLP portions in the presence of tones in the audio stream. Also, the interface is changed to allow user space to just disable the NLP portion of the echo canceler. These changes improve fax and modem handling in DAHDI. This commit merges in the changes on http://svn.digium.com/svn/dahdi/linux/team/kpfleming/echocan_work Patch by: kpfleming Also contains improvements to CED tone detection. (closes issue #13286) Reported by: viniciusfontes * drivers/dahdi/wct4xxp/base.c: wct4xxp: Fix problem when timing source is via external cable. * drivers/dahdi/wcte12xp/base.c, drivers/dahdi/wcte12xp/voicebus.c (removed), drivers/dahdi/wcte12xp/vpmadt032.c (removed), drivers/dahdi/voicebus (added), drivers/dahdi/voicebus/voicebus.c (added), drivers/dahdi/wctdm24xxp/base.c, drivers/dahdi/Kconfig, drivers/dahdi/wcte12xp/wcte12xp.h, drivers/dahdi/wcte12xp/GpakErrs.h (removed), drivers/dahdi/wctdm24xxp/GpakApi.c (removed), drivers/dahdi/wcte12xp/vpmadt032.h (removed), drivers/dahdi/wctdm24xxp/voicebus.c (removed), drivers/dahdi/voicebus/voicebus.h (added), Makefile, drivers/dahdi/wctdm24xxp/GpakApi.h (removed), drivers/dahdi/vpmadt032_loader/dahdi_vpmadt032_loader.c (added), drivers/dahdi/wcte12xp/Kbuild, drivers/dahdi/voicebus/Kbuild (added), drivers/dahdi/wctdm24xxp/GpakHpi.h (removed), drivers/dahdi/wctdm24xxp/Kbuild, drivers/dahdi/voicebus.c (removed), drivers/dahdi/voicebus.h (removed), drivers/dahdi/vpmadt032_loader (added), drivers/dahdi/wcte12xp/GpakApi.c (removed), drivers/dahdi/wcte12xp/gpakenum.h (removed), drivers/dahdi/Kbuild, drivers/dahdi/voicebus/gpakenum.h (added), drivers/dahdi/voicebus/GpakApi.c (added), drivers/dahdi/adt_lec.c, drivers/dahdi/wcte12xp/GpakApi.h (removed), drivers/dahdi/voicebus/GpakApi.h (added), drivers/dahdi/voicebus/GpakCust.c (added), drivers/dahdi/wctdm24xxp/gpakenum.h (removed), drivers/dahdi/voicebus/gpakErrs.h (added), drivers/dahdi/wctdm24xxp/GpakCust.c (removed), drivers/dahdi/voicebus/GpakCust.h (added), drivers/dahdi/voicebus/GpakHpi.h (added), drivers/dahdi/wctdm24xxp/gpakErrs.h (removed), drivers/dahdi/firmware/Makefile, drivers/dahdi/voicebus/vpmadtreg.c (added), drivers/dahdi/wctdm24xxp/GpakCust.h (removed), drivers/dahdi/voicebus/vpmadtreg.h (added), drivers/dahdi/wctdm24xxp/wctdm24xxp.h: voicebus: Move common vpmadt032 interface into voicebus module. The voicebus library was previously linked into both the wcte12xp and wctdm24xxp drivers. It is now broken out into it's own module and the common parts of the vpmadt032 interface are now located in that module to reduce duplication between the wcte12xp and wctdm24xxp drivers. * drivers/dahdi/wctc4xxp/base.c: wctc4xxp: Change netif_rx_xxx to napi_xxx The netif_rx_xxx functions were dropped from the linux kernel source on 2009-01-21 in commit 288379f050284087578b77e04f040b57db3db3f8. (closes issue #14963) Reported by: tzafrir * drivers/dahdi/wcte12xp/base.c, drivers/dahdi/wcte12xp/vpmadt032.c, drivers/dahdi/wcte12xp/wcte12xp.h: wcte12xp: Update cmdqueue processing. The command queue for reading from the registers on the framer is now stored in a linked_list instead of an array. Allows for the locks to protect this structure to be held for shorter periods of time and reduces the need to cycle through all the elements in the array to decide if there is a command in the queue to process. Remove the usecount and dead members from struct t1 since the module reference count will allow us to know when it's safe to free up the memory. This change also moves alarm processing out of the interrupt handler and removes the need for special interrupt handling of commands. * drivers/dahdi/dahdi_dummy.c: dahdi_dummy: Remove real-time clock support. This removes support for using the real-time clock as a timing source in dahdi_dummy. Instead, the normal kernel timers method is now more accurate since it keeps track of how much real time has passed to determine how many times to call dahdi_receive and dahdi_transmit. This method was originally suggested by bmd. (closes issue #13930) (closes issue #14884) Reported by: tzafrir Tested by: dbackeberg, ask * drivers/dahdi/voicebus.c: voicebus: Removing unused code blocks and space in flag definitions. 2009-04-27 20:03 +0000 [r6513] Tzafrir Cohen * drivers/dahdi/xpp/card_bri.c, drivers/dahdi/xpp/Kbuild: xpp: hard_hdlc support for the BRI module. The BRI module will now use hardhdlc unless the DAHDI tree has been patched with the bri_dchan patch, in which case the old "bristuffed" code will be used. Thus it is now built by default. 2009-04-25 16:35 +0000 [r6487] Tzafrir Cohen * build_tools/live_dahdi: adapt live_dahdi to current xpp tools * More varibles to set through the environment * Different way to list drivers 2009-04-23 15:11 +0000 [r6457-6466] Tzafrir Cohen * drivers/dahdi/xpp/firmwares/PIC_TYPE_3.hex, drivers/dahdi/xpp/firmwares/PIC_TYPE_4.hex, drivers/dahdi/xpp/firmwares/USB_FW.hex, drivers/dahdi/xpp/firmwares/FPGA_1161.hex, drivers/dahdi/xpp/firmwares/PIC_TYPE_1.hex, drivers/dahdi/xpp/firmwares/PIC_TYPE_2.hex: Don't set the Id keyword on firmwares; restore original ID The Id SVN keyword is set locally in Xorcom and used as an identifier. That Id should not be overriden by this SVN repository. * drivers/dahdi/xpp/firmwares/FPGA_1161.hex: xpp: FPGA_1161.hex: fix FXO PCM issues (new boards only) FPGA_1161.hex rev. 7024. 2009-04-22 12:53 +0000 [r6444] Kevin P. Fleming * drivers/dahdi/dahdi-base.c: don't refer to macros from dahdi_config.h until after it has been included use the proper type for the flags variable in dahdi_ppp_xmit() 2009-04-21 22:16 +0000 [r6430] Tzafrir Cohen * include/dahdi/user.h, include/dahdi/kernel.h: Move DAHDI_DEFAULT_MTU_MRU from kernel.h to user.h The macro DAHDI_DEFAULT_MTU_MRU needs to be exposed to userspace to build tools/ppp/dahdi.c . 2009-04-20 10:49 +0000 [r6407-6409] Tzafrir Cohen * drivers/dahdi/xpp/firmwares/PIC_TYPE_3.hex, drivers/dahdi/xpp/firmwares/PIC_TYPE_4.hex, drivers/dahdi/xpp/firmwares/FPGA_1161.hex, drivers/dahdi/xpp/firmwares/PIC_TYPE_1.hex, drivers/dahdi/xpp/firmwares/PIC_TYPE_2.hex: xpp firmware: stability fixes for firmwares of new Astribanks FPGA_1161.hex: xpp rev 7007 PIC_TYPE_*.hex: xpp rev 7000 * drivers/dahdi/xpp/xpp_dahdi.c, drivers/dahdi/xpp/xproto.h, drivers/dahdi/xpp/card_pri.c, drivers/dahdi/xpp/card_bri.c, drivers/dahdi/xpp/card_fxo.c, drivers/dahdi/xpp/xpp_dahdi.h, drivers/dahdi/xpp/xbus-core.c, drivers/dahdi/xpp/card_fxs.c: xpp: Do use information about number of ports the Astribank provides * drivers/dahdi/xpp/init_card_1_30: xpp: Fix FXS calibration (dec rather than hex) 2009-04-16 19:35 +0000 [r6376-6393] Tzafrir Cohen * drivers/dahdi/xpp/card_fxs.c, drivers/dahdi/xpp/init_card_1_30, drivers/dahdi/xpp/init_card_2_30: xpp fxs/fxo: PCM and DTMF fixes * drivers/dahdi/xpp/card_fxs.c: xpp fxs: Notify the user just one about wrong VMWI config From xpp rev. 6974. * drivers/dahdi/xpp/card_fxs.c: xpp fxs: Ignore registers of disabled SLICs From xpp rev. 6979 * drivers/dahdi/xpp/card_bri.c: xpp bri: explicitly turn off leds on startup If NT/TE was changed (e.g: happened because of firmware bug) We would be left with a lit led we don't know about. From xpp rev. 6990 2009-04-10 09:53 +0000 [r6344] Tzafrir Cohen * drivers/dahdi/xpp/astribank_hook.sample (removed): Move astribank_hook from linux to tools. Install it by default 2009-04-04 14:22 +0000 [r6325] Tzafrir Cohen * Makefile: Also install dahdi_config.h to /usr/include/dahdi 2009-04-02 20:34 +0000 [r6301-6312] Tzafrir Cohen * drivers/dahdi/xpp/astribank_hook.sample: Update the sample udev astribank_hook for TwinStar * drivers/dahdi/xpp/firmwares/PIC_TYPE_3.hex (added), drivers/dahdi/xpp/xpp.rules, drivers/dahdi/xpp/firmwares/PIC_TYPE_4.hex (added), drivers/dahdi/xpp/.version, drivers/dahdi/xpp/firmwares/FPGA_1161.hex (added), drivers/dahdi/xpp/firmwares/USB_FW.hex, drivers/dahdi/xpp/firmwares/Makefile, drivers/dahdi/xpp/firmwares/PIC_TYPE_1.hex (added), drivers/dahdi/xpp/firmwares/PIC_TYPE_2.hex (added): XPP: support for 116x Astribanks. * New software to load in the udev rules * New control protocol ("MPP") * More modular FPGA firmware From Xorcom rev. 6963. * drivers/dahdi/xpp/xbus-pcm.c: Reduce the rate for a potentially annoying message This message is used when an xpp span is a DAHDI sync master but also set to take timing from the DAHDI master. This means wrong settings: user is wasting CPU cycles. However notifying the user about it every second is still too much. 2009-04-02 17:27 +0000 [r6285-6294] Kevin P. Fleming * drivers/dahdi/dahdi-base.c: ensure that the structure being returned by DAHDI_GET_BUFINFO is completely initialized 2009-03-26 18:33 +0000 [r6262] Wendell Thompson * drivers/dahdi/voicebus.c: Fixes DAHDI-214 crash on driver unload. Affects wcte12xp and wctdm24xxp modules. 2009-03-24 19:08 +0000 [r6237-6246] Shaun Ruffell * drivers/dahdi/wctc4xxp/base.c: Eliminate unnecessary checks for NULL before freeing memory. * drivers/dahdi/wctc4xxp/base.c: Do not allocate more memory than is needed when sending packets. * drivers/dahdi/wctc4xxp/base.c: Block runt packets from the transcoder. Tested by: Walter Klomp * drivers/dahdi/wctc4xxp/base.c: Do not define the debug flags if CONFIG_SLUB is not set. Some versions of the kernel (2.6.18-92.1.22.el5) have patches in them to panic if a slab cache is created with unsupported flags. 2009-03-24 15:59 +0000 [r6236] Tzafrir Cohen * drivers/dahdi/dahdi-base.c: Make sure the requested echo canceller name is NULL-terminated. Make sure that the that the name of the echo canceller requested in the DAHDI ioctl DAHDI_ATTACH_ECHOCAN is NULL-terminated. 2009-03-23 23:49 +0000 [r6217-6228] Shaun Ruffell * drivers/dahdi/wctc4xxp/base.c: Verify checksum on the RTP IP header before queueing. * drivers/dahdi/wctc4xxp/base.c: Poll the card in a kernel timer when several channels are open. Polling the driver increases overall system throughput when there are several transcoding channels open by reducing the number of interrupts the the TC400M generates. * drivers/dahdi/wctc4xxp/base.c: Optionally show total number of packets dropped when channel is closed. * drivers/dahdi/wctc4xxp/base.c: Do not handle duplicate reponses. It is possible for system activity to prevent the wctc4xxp driver from responding the the firmware on the TC400M for a period of time. If this occurs, the TC400M will resend a response to a command that we sent. This duplicate reponse will then sometimes confuse the driver. Normally this would manifest as an attempt to connect the same channel together in a transcoding session. * drivers/dahdi/wctc4xxp/base.c: Set TX_COMPLETE atomically with changes to the waiting_for_response_list. This change is to catch a condition where it is possible, for whatever reason, for a response to come in before the request is marked tx complete. If this happened, it was possible to leak the response packet and double complete the command. * drivers/dahdi/wctc4xxp/base.c: split send_trans_connect into a connect / disconnect pair. Trivial change that makes the code read more naturally. Also changes the order of members in the channel_pvt structure. For more natural alignment. Both non-functional changes. * drivers/dahdi/wctc4xxp/base.c: If the driver fails to register, make sure we cleanup the command cache. * drivers/dahdi/wctc4xxp/base.c: Setup the TC400M to poll the own bit on the descriptor ring. On certain systems having the hardware poll the descriptor ring provides more reliable operation that strobbing the transmit demand poll and receive demand poll register. * drivers/dahdi/wctc4xxp/base.c: Make sure that messages sitting in the outbound queue cause the timer to reschedule. * drivers/dahdi/wctc4xxp/base.c: Refactor channel command handling. Makes commands and reponses clearer and easier to trouble shoot, reduces pressure on the stack, and brings driver closer to kernel coding standards. 2009-03-18 18:48 +0000 [r6201] Jason Parker * drivers/dahdi/dahdi_dynamic_loc.c: Fix a typo 2009-03-17 17:59 +0000 [r6170-6191] Tzafrir Cohen * drivers/dahdi/xpp/firmwares/USB_FW.hex: xpp USB_FW.hex rev 6885: fixes reading label from USB Previous USB_FW.hex, 6770, has failed to properly read the USB iSerial field ("Label" in xpp terms). This is fixed here. * include/dahdi/dahdi_config.h (added), include/dahdi/kernel.h, drivers/dahdi/xpp/Kbuild, drivers/dahdi/dahdi-base.c, drivers/dahdi/dahdi_config.h (removed): Move dahdi_config.h to be under include/dahdi/ This makes dahdi_config.h part of the "offcial" interface to external modules. Practically most of its configuration items are internal to dahdi-base. But some are intended for other drivers. * drivers/dahdi/biquad.h, include/dahdi/kernel.h, drivers/dahdi/ecdis.h, drivers/dahdi/dahdi-base.c: Make ecdis.h used by dahdi-base.h alone ecdis.h is no longer #include-d in kernel.h . it was there because of decleration of some structs that are part of struct dahdi_chan. The declerations of those structs were moved into kernel.h directly. 2009-03-13 10:21 +0000 [r6134-6147] Tzafrir Cohen * drivers/dahdi/dahdi-base.c: Fix handling of 'w' in a pulse dial string Make the special "digit" 'w' work in pulse dialing as it works with tone dialing (a delay of 0.5 second till the next digit). Note that the digit gets uppercased before it gets to this function. (closes issue #13999) Reported by: IgorG Patches: dahdi-base.c.pulse2.diff uploaded by tzafrir (license 46) Tested by: litnimax * drivers/dahdi/xpp/xpp.conf: A better sample xpp.conf * drivers/dahdi/xpp/init_card_3_30, drivers/dahdi/xpp/init_card_4_30, drivers/dahdi/xpp/init_card_1_30, drivers/dahdi/xpp/init_card_2_30: xpp init_card_* scripts now less verbose * Demote some messages to be debug messages. * Rephrase the message about defaults for the PRI module (the driver's defaults are used, which is OK) * drivers/dahdi/dahdi-base.c: Fix handling of DAHDI_GETGAINS_V1 missing from r6124 . 2009-03-11 14:51 +0000 [r6113-6126] Shaun Ruffell * drivers/dahdi/voicebus.c: Allow 10ms for voicebus hardware to settle after reset. The voicebus hardware needs more time to settle after a reset. The short settle time explains why there was frequently one IRQ miss reported in the proc file for the spans. Reported by: jsloan * drivers/dahdi/wct4xxp/base.c: Relax ident wheel requirements. Do not require the first card to be set to 0 and allow skips in the ident wheel numbers. The ident wheel allows a user to determine the order that cards register there spans with DAHDI. (closes issue #13078) Reported by: opticron Patch by: opticron * include/dahdi/user.h, drivers/dahdi/dahdi-base.c: Fix direction bits on several ioctls. (related to issue #14499) Reported by: ys * include/dahdi/kernel.h, drivers/dahdi/dahdi_transcode.c: Keep transcoders on a list in registration order. This fixes a bug where it was possible for there to be a transcoder in position "1" but not in position "0" if a transcoder hardware driver was loaded, unloaded, and reloaded again without also reloading dahdi_transcode. The result is that codec_dahdi fails to enumerate all the transcoders in the system. (closes issue #14627) Reported by: xblurone * drivers/dahdi/dahdi-base.c: Eliminating an unused parameter to dahdi_specchan_open. 2009-03-06 21:43 +0000 [r6096] Wendell Thompson * drivers/dahdi/xpp/xpp_usb.c, drivers/dahdi/wctc4xxp/base.c, drivers/dahdi/voicebus.c: Workarounds for SLUB sysfs problems in kernel 2.6.22 with CONFIG_SLUB and CONFIG_SLUB_DEBUG, as in Fedora Core 6. Fixes kernel oops when loading/unloading dahdi modules. DAHDI-226 2009-03-05 18:53 +0000 [r6079] Tzafrir Cohen * drivers/dahdi/xpp/firmwares/FPGA_1141.hex, drivers/dahdi/xpp/firmwares/FPGA_1151.hex, drivers/dahdi/xpp/firmwares/FPGA_FXS.hex: xpp: FPGA firmwares 6799 New FPGA firmware with a number of bug fixes. 2009-03-01 13:56 +0000 [r6046] Tzafrir Cohen * drivers/dahdi/xpp/init_card_3_30, drivers/dahdi/xpp/xpp_dahdi.c, drivers/dahdi/xpp/xproto.h, drivers/dahdi/xpp/.version, drivers/dahdi/xpp/card_fxo.c, drivers/dahdi/xpp/xpp_dahdi.h, drivers/dahdi/xpp/firmwares/USB_FW.hex, drivers/dahdi/xpp/xbus-sysfs.c, drivers/dahdi/xpp/xframe_queue.c, drivers/dahdi/xpp/xbus-core.c, drivers/dahdi/xpp/card_global.c, drivers/dahdi/xpp/xbus-core.h, drivers/dahdi/xpp/Changelog_xpp, drivers/dahdi/xpp/card_global.h, drivers/dahdi/xpp/xbus-pcm.c: New XPP code: xpp rev 6795: * Fix cases where the command_queue overflowed during initialization. - Also add a 'command_queue_length' parameter to xpp.ko * More migrations to sysfs: - Add a 'transport' attribute to our astribank devices which points to the usb device we use. E.g: /sys/bus/astribanks/devices/xbus-00/transport is symlinked to ../../../../../../devices/pci0000:00/0000:00:10.4/usb5/5-4 - Move /proc/xpp/XBUS-??/XPD-??/span to /sys/bus/xpds/devices/??:?:?/span - Migrate from /proc/xpp/sync to: /sys/bus/astribanks/drivers/xppdrv/sync - New 'offhook' attribute in: /sys/bus/xpds/devices/??:?:?/offhook * PRI: change the "timing" priority to match the convention used by other PRI cards -- I.e: lower numbers (not 0) have higher priority. * FXO: - Power denial: create two module parameters instead of hard-coded constants (power_denial_safezone, power_denial_minlen). For sites that get non-standard power-denial signals from central office on offhook. - Don't hangup on power-denial, just notify Dahdi and wait for - Fix caller-id detection for the case central office sends it before first ring without any indication before. Asterisk's desicion. * USB_FW.hex: - Fixes cases where firmware loading would fail. 2009-02-11 05:41 +0000 [r6005] Shaun Ruffell * drivers/dahdi/wctc4xxp/base.c: Use the proper pci_device when handling dma buffers. 2009-02-10 14:07 +0000 [r5997] Matthew Fredrickson * drivers/dahdi/wcb4xxp/base.c: Set default alarm debounce time to 500ms to debounce NT L1 deactivations 2009-02-09 06:03 +0000 [r5987] Tzafrir Cohen * drivers/dahdi/xpp/xproto.c: Fix building DAHDI with module unloading disabled As moduel_refcount is only used for debugging, disable it in this non-common case. (Closes issue #14402) 2009-02-02 14:13 +0000 [r5936] Kevin P. Fleming * drivers/dahdi/dahdi_echocan_kb1.c, drivers/dahdi/hpec/dahdi_echocan_hpec.c, include/dahdi/kernel.h, drivers/dahdi/dahdi_echocan_jpah.c, drivers/dahdi/dahdi_echocan_mg2.c, drivers/dahdi/dahdi_echocan_oslec.c, drivers/dahdi/dahdi-base.c, drivers/dahdi/dahdi_echocan_sec.c, drivers/dahdi/hpec/hpec.h, drivers/dahdi/dahdi_echocan_sec2.c: Array-style echo canceller updates first appeared in Zaptel, because HPEC only supports that mode. However, when the function for doing array-style updates was written, the argument names were reversed. In Zaptel this did no harm, because HPEC was the only module that used array-style updates. When DAHDI was created, non-array-style updates were removed, and the existing modules were converted to using array-style updates. Unfortunately the new code was written based on the argument names, which were incorrect. This caused all the echo cancellers to be broken (except HPEC, although we did not know that at the time), and it was corrected by reversing the order of the arguments passed when the array-style update function was called (leading to a confusing mismatch). This fixed all the non-HPEC modules, but left HPEC broken, which was just discovered. This commit corrects all these problems, so that the argument names and the data passed actually make sense, and all the modules work properly. 2009-01-30 23:42 +0000 [r5924] Matthew Fredrickson * drivers/dahdi/wcb4xxp/base.c: Make sure that we pass alarm notification up the stack whenever alarms occur on the B410P 2009-01-30 16:53 +0000 [r5916] Mike Spiceland * drivers/dahdi/wctdm24xxp/base.c: Do a stricter test for FXS modules. FXO modules will be hi-z during this time and the value will be undefined. This test ensures that FXO modules will not falsely trigger during FXS probes. The value of 0x88 from register 1 has been confirmed during this stage on quad and single port modules. 2009-01-28 23:17 +0000 [r5895] Richard Mudgett * include/dahdi/user.h: Minor comment rearangement to avoid possible confusion. 2009-01-28 04:41 +0000 [r5870] Shaun Ruffell * drivers/dahdi/wcb4xxp/base.c: Ensure the teignorered parameter is exposed as a module parameter. Related to issue #14031 . 2009-01-27 Shaun Ruffell * dahdi-linux version 2.1.0.4 released. * Fix for a kernel panic regression when heavily using pseudo channels (issue #14183) (merged r5811 and r5819 from the trunk) * Fix the safety check in tor2 to be for SPANS_PER_CARD (issue #13954) (merged r5590 from the trunk). 2008-12-17 Shaun Ruffell * dahdi-linux version 2.1.0.3 released. 2008-12-17 15:57 +0000 [r5535-5576] Shaun Ruffell * drivers/dahdi/wcb4xxp/base.c: Do not propogate received HDLC frames on channels that are not configured. Issue: DAHDI-217 * drivers/dahdi/wcb4xxp/base.c: Use %p to print out pointer values. * drivers/dahdi/wcb4xxp/base.c: Remove an endless while loop. * drivers/dahdi/wcte12xp/base.c: Quiet some warnings about possible use of uninitialized variables. * build_tools/live_dahdi: live_dahdi: Use the nonrelative path for the dahdi-tools folder in live_dahdi. 2008-12-15 Shaun Ruffell * dahdi-linux version 2.1.0.2 released. 2008-12-15 20:31 +0000 [r5534-5535] Shaun Ruffell * build_tools/live_dahdi: live_dahdi: Use the nonrelative path for the dahdi-tools folder in live_dahdi. * drivers/dahdi/wcte12xp/base.c: wcte12xp: do not release a spinlock that we did not acquire. 2008-12-12 14:32 +0000 [r5523] Kevin P. Fleming * drivers/dahdi/dahdi-base.c: use a format string for request_module, so the compiler will do the right thing 2008-12-11 Shaun Ruffell * dahdi-linux version 2.1.0.1 released. 2008-12-11 21:46 +0000 [r5509] Shaun Ruffell * include/dahdi/kernel.h: Add definition of dev_notice for kernels < 2.6.17. 2008-12-11 21:03 +0000 [r5498-5504] Tzafrir Cohen * drivers/dahdi/xpp/xbus-sysfs.c: One more place whe old-but-not-ancient hotplug is used. * drivers/dahdi/dahdi_echocan_oslec.c: Send all samples to OSLEC, rather than just the first. (closes issue #14036) Reported by: marcotasto Patches: dahdi_echocan_oslec.patch uploaded by marcotasto (license 635) * drivers/dahdi/xpp/xbus-sysfs.c, drivers/dahdi/xpp/xbus-core.h, drivers/dahdi/xpp/xdefs.h: Add a separate case for hotplug of kernels <= 2.6.9 . 2008-12-11 20:19 +0000 [r5497] Shaun Ruffell * drivers/dahdi/dahdi_dummy.c: If we're using the system tick, don't use the hrtimer interface. 2008-12-11 18:57 +0000 [r5482-5492] Tzafrir Cohen * drivers/dahdi/xpp/xbus-sysfs.c: Fix the xpp OLD_HOTPLUG fix. * drivers/dahdi/dahdi_dummy.c: Fix building dahdi_dummy for kernels 2.6.13, 2.6.14: Those kernels don't have RTC yet. * drivers/dahdi/wcb4xxp: Yet Another directory in which to ignore modules.order * drivers/dahdi/wcb4xxp/base.c: Remove an include that is not available before 2.6.15 and is not needed * drivers/dahdi/xpp/xbus-sysfs.c, drivers/dahdi/xpp/xbus-core.h: A bit less maigc with OLD_HOTPLUG_SUPPORT * drivers/dahdi/dahdi-base.c: Fixed a typo that broke building dahdi-base with kernels < 2.6.13 2008-12-11 16:43 +0000 [r5481] Shaun Ruffell * drivers/dahdi/wctc4xxp/base.c: Fix compilation issues on 2.6.15 and below kernels. Thanks tzafrir. 2008-12-09 Shaun Ruffell * dahdi-linux version 2.1.0 released. 2008-12-09 18:49 +0000 [r5453] Tzafrir Cohen * live_dahdi (added): live_dahdi - test dahdi without fully installing it. 2008-12-06 22:23 +0000 [r5444] Tzafrir Cohen * drivers/dahdi/xpp, drivers/dahdi/wcte12xp, drivers/dahdi, drivers/dahdi/wct4xxp, drivers/dahdi/wctc4xxp, drivers/dahdi/wctdm24xxp: Ignore modules.order in modules directories. 2008-12-04 20:57 +0000 [r5433-5434] Shaun Ruffell * drivers/dahdi/wctc4xxp/base.c: Fix an erroneous warning and ensure that the sample size is set correctly when decoding G723 packets. Issue: DAHDI-198 * drivers/dahdi/dahdi_transcode.c: Do not use an already built channel if the source and destination formats do not match the formats we want. This fixes a regression introduced by the new transcoder interface where a translation path from one complex codec to another can result in garbled audio. 2008-12-01 17:58 +0000 [r5413-5420] Shaun Ruffell * drivers/dahdi/wctc4xxp/base.c: Service the transmit descriptor ring before the receive descriptor ring so that commands that are still sitting on the transmit descriptor ring are not completed twice. 2008-11-27 09:59 +0000 [r5397-5403] Tzafrir Cohen * Makefile: dahdi-linux: Remove README.Astribank.html generation. * drivers/dahdi/xpp/README.Astribank (removed): Moving README.Astribank to dahdi-tools . * drivers/dahdi/xpp/README.Astribank: Fixes and some work in progress on DAHDI Astribank README. 2008-11-25 20:00 +0000 [r5384] Shaun Ruffell * drivers/dahdi/wcte11xp.c, drivers/dahdi/wct1xxp.c: Validate the timing priority on the wcte11xp and wct1xxp driver. 2008-11-25 Shaun Ruffell * dahdi-linux version 2.1.0-rc5 released. 2008-11-25 20:00 +0000 [r5383-5384] Shaun Ruffell * drivers/dahdi/wcte11xp.c, drivers/dahdi/wct1xxp.c: Validate the timing priority on the wcte11xp and wct1xxp driver. * drivers/dahdi/tor2.c: Validate that the span priority is valid in the tor2 driver. Patch provided by tzafrir. 2008-11-24 05:32 +0000 [r5367-5374] Shaun Ruffell * drivers/dahdi/wcb4xxp/base.c: Additional debugging code. Patch provided by akohlsmith. Issue DAHDI-173. * drivers/dahdi/wcb4xxp/base.c: Add a 'spanfilter' module parameter in order to isolate debugging information to just the spans of interest. Patch provided by akohlsmith. Issue DAHDI-173. * drivers/dahdi/wcb4xxp/base.c, drivers/dahdi/wcb4xxp/wcb4xxp.h: Use counter of pending HDLC frames in order to eliminate the need to send a zero-byte frame to kick start the transmission process. Patch provided by akohlsmith. Issue DAHDI-173. * drivers/dahdi/wcb4xxp/base.c, drivers/dahdi/wcb4xxp/wcb4xxp.h: Do not make assumptions about the number of ready HDLC frames on HDLC RX interrupt. This prevents libpri from becoming confused when many HDLC frames arrive before the driver can service them or a false RX interrupt is received. Patch provided by akolsmith. Issue DAHDI-173. 2008-11-21 20:15 +0000 [r5360] Jason Parker * drivers/dahdi/dahdi-base.c: Fix a think-o in numeric comparison. Swap order to make it more clear. (closes issue #13813) Reported by: ys 2008-11-21 04:42 +0000 [r5350-5355] Shaun Ruffell * drivers/dahdi/dahdi-base.c: Convert some uses of sprintf to snprintf in dahdi_proc_read in order to eliminate a buffer overrun. Issue: DAHDI-209 * drivers/dahdi/wcb4xxp/base.c: Force the FIFO to reset when the file handle is closed. Patch provided by akohlsmith. Issue: DAHDI-178 2008-11-20 12:31 +0000 [r5340-5345] Tzafrir Cohen * drivers/dahdi/tor2.c: Make tor2 load properly. Seems to fix #13487. Thanks to heyuqi for the testing. * drivers/dahdi/xpp/README.Astribank: * Some extrra Zap->DAHDI (and Dahdi->DAHDI) fixes in the Astribank README. * Some extra asciidoc formatting fixes. 2008-11-19 21:25 +0000 [r5335] Kevin P. Fleming * drivers/dahdi/wcb4xxp/Makefile (added): support wcb4xxp build on kernels that don't directly use Kbuild 2008-11-17 18:17 +0000 [r5321] Shaun Ruffell * drivers/dahdi/wctc4xxp/base.c: - Fix for race condition of encoder and decoder are allocated at the same time in the driver. This would result in -EBUSY returns from the DAHDI_TC_ALLOCATE ioctl. - Increase the length of the receive descriptor ring from 8 to 32 to reduce the probability of running out of receive descriptors. 2008-11-17 Shaun Ruffell * dahdi-linux version 2.1.0-rc4 released. 2008-11-17 18:17 +0000 [r5321] Shaun Ruffell * drivers/dahdi/wctc4xxp/base.c: - Fix for race condition of encoder and decoder are allocated at the same time in the driver. This would result in -EBUSY returns from the DAHDI_TC_ALLOCATE ioctl. - Increase the length of the receive descriptor ring from 8 to 32 to reduce the probability of running out of receive descriptors. 2008-11-17 18:01 +0000 [r5320] Tzafrir Cohen * drivers/dahdi/xpp/init_card_4_30, drivers/dahdi/xpp/card_pri.c: xpp_pri: Fix T1 CRC initialization Clock synchronization when sync is not from first port. 2008-11-17 17:44 +0000 [r5315] Shaun Ruffell * drivers/dahdi/wcb4xxp/base.c, drivers/dahdi/wcb4xxp/wcb4xxp.h: A fix for an issue with corruption on the D-Channels. Patch provided by akohlsmith. Issue: DAHDI-173. 2008-11-16 19:30 +0000 [r5310] Tzafrir Cohen * drivers/dahdi/xpp/firmwares/USB_FW.hex: Fixed USB firmware that caused some bad bioses to hang on boot. The BIOSes included in a number of motherboards could hang from an Astribank firmware newer than 1.2.20.1 / 1.4.5.1 . This was due to an some incorrect USB information in the firmware. This firmware fixes it. Merged Zaptel revisions 4580 via svnmerge from http://svn.digium.com/svn/zaptel/branches/1.2 2008-11-13 22:10 +0000 [r5303] Shaun Ruffell * drivers/dahdi/wcte12xp/base.c, drivers/dahdi/wctdm24xxp/base.c, drivers/dahdi/voicebus.c, drivers/dahdi/voicebus.h: Make a message about the host cacheline size being unsupported a debug only message. The voicebus interface still works whether the cacheline size is supported or not, but the message is confusing to users. 2008-11-10 20:37 +0000 [r5288] Tzafrir Cohen * drivers/dahdi/xpp/init_card_2_30: xpp init_card_2_30: no need to check environment in verify mode. Fixes #13832 in Zaptel. 2008-11-10 Shaun Ruffell * dahdi-linux version 2.1.0-rc3 released. 2008-11-10 19:48 +0000 [r5275] Shaun Ruffell * drivers/dahdi/wcte12xp/base.c, drivers/dahdi/dahdi-base.c: - Do not hold any locks while calling close_channel, which can result in calls to the echocan modules which do not necesarrily assume they are being called in atomic context. - Remove the bigzaplock around calls to psuedo_alloc and pseudo_free. The structures protected by this lock are already protected by the chan_lock in these two cases. - Remove calls to in_atomic() that were previously added to work around this, but did not cover all the cases. Issue: DAHDI-195, DAHDI-170 2008-11-09 00:33 +0000 [r5269-5270] Sean Bright * drivers/dahdi/dahdi-base.c: We only use print_debug_writebuf when CONFIG_DAHDI_NET or CONFIG_DAHDI_PPP are defined, so only define it in those cases as well. Reported & Tested by: KP7 via #asterisk-dev * drivers/dahdi/dahdi-base.c: Add missing semi-colon. Reported & Tested by: KP7 via #asterisk-dev 2008-11-05 23:45 +0000 [r5249-5257] Shaun Ruffell * drivers/dahdi/wcb4xxp/base.c: Whitespace changes for the coding standard. * drivers/dahdi/wcb4xxp/base.c: rate limiting a diagnostic printk. 2008-11-05 Shaun Ruffell * dahdi-linux version 2.1.0-rc2 released. 2008-11-05 20:17 +0000 [r5230-5237] Shaun Ruffell * drivers/dahdi/wctc4xxp/base.c: Fix warning messages in order to build on 2.6.27. (Closes issue #13757) Patch provided by tzafrir. * drivers/dahdi/wcte12xp/vpmadt032.c, drivers/dahdi/wctdm24xxp/GpakCust.c: Check the return value of the down_interruptible call in order to quiet a warning. This semaphore does not protect any host data structures, but only accesses to the VPMADT032 module. The worse thing that could happen is that the internal state of the VPM module is corrupted, and then would only happen on module loading because otherwise access because that is the only time this function is called in the context of a user process. In this case, the module would need to be reloaded again anyway. (Closes issue #13742) Reported by smurfix * drivers/dahdi/wcb4xxp/base.c: Remove the loopback module parameter since it's not implemented yet. * drivers/dahdi/wcb4xxp/base.c: Allow the wcb4xxp to take all the signalling types. 2008-11-03 Shaun Ruffell * dahdi-linux version 2.1.0-rc1 released. 2008-11-03 12:01 +0000 [r5203-5211] Tzafrir Cohen * drivers/dahdi/dahdi_dummy.c: Adjust DAHDI to the new timers interface of kernel 2.6.28 * drivers/dahdi/dahdi-base.c: dahdi-base: hw_echocancel_off: return 0 if no hardware EC If the span has no hardware EC, return 0, rather than a random uninitialized value (which was no harm, as that return value is always ignored anyway). * README: README: no need to generate Kbuild for OSLEC. No need to create a Kbuild file. staging/echo has a Makefile that works fine for us. 2008-10-31 22:23 +0000 [r5196] Shaun Ruffell * drivers/dahdi/wcb4xxp/base.c: Changing the spantype to indicate whether it is a TE or NT BRI port. 2008-10-31 21:33 +0000 [r5195] Matthew Fredrickson * drivers/dahdi/wcb4xxp/base.c: Fix the FIFO configuration to use the data from the EC correctly 2008-10-31 21:05 +0000 [r5190-5191] Tzafrir Cohen * drivers/dahdi/wcb4xxp/base.c: wcb4xxp: Set the spantype to "BRI" (to show e.g. in dahdi_scan) * drivers/dahdi/wcb4xxp/base.c: wcb4xxp: Claim to provide DACS for dahdi_scan dahdi_scan can tell that a span is digital if its first channel has DACS signalling capability. While this is probably not supported by the current driver, it is also harmless. Without this, dahdi_scan shows the spans of this card as analog. (Done after consulting with sruffel) 2008-10-31 17:11 +0000 [r5186] Shaun Ruffell * drivers/dahdi/wcb4xxp/base.c: Fix for a case where a span might not always come back up after a disconnect. Patch provided by akohlsmith. Issue: DAHDI-174 2008-10-30 19:16 +0000 [r5179-5180] Tzafrir Cohen * drivers/dahdi/dahdi-base.c: Use correct length for the, well, dahdi transcoder device name. * drivers/dahdi/dahdi-base.c: Use ! to hint udev about directory separator. Udev knows how to convert a '!' in the device name to a directory separator. Thus the name 'dahdi!ctl' will create the device /dev/dahdi/ctl . We still keep older udev rules in this release for compatibility, but eventually we'll only need them to set permissions. 2008-10-29 16:48 +0000 [r5171-5175] Shaun Ruffell * drivers/dahdi/wcb4xxp/base.c: The /proc/wcb4xxp should not be created once for each card but rather once for all cards. * drivers/dahdi/wcb4xxp/base.c: By default, do not create the procfs entry for the wcb4xxp driver. 2008-10-29 15:09 +0000 [r5167] Tzafrir Cohen * drivers/dahdi/xpp/xbus-core.c: xpp: Increase the maximal size of the command queue to 500 . Temporarily increase the maximal size of the command queue from 300 to 500 as a workaround of an issue at initialization time (mainly of BRI+FXS). 2008-10-28 21:59 +0000 [r5156-5163] Kevin P. Fleming * drivers/dahdi: update to latest octasic_api tag with NULL definition fix * drivers/dahdi/tor2.c, drivers/dahdi/wcfxo.c, drivers/dahdi/wcte12xp/base.c, drivers/dahdi/wcte12xp/GpakApi.c, drivers/dahdi/pciradio.c, drivers/dahdi/wct4xxp/base.c, drivers/dahdi/wcte12xp/vpmadt032.c, drivers/dahdi/wctc4xxp/base.c, drivers/dahdi/dahdi_echocan_mg2.c, drivers/dahdi/wctdm24xxp/base.c, drivers/dahdi/wctdm24xxp/GpakApi.c, drivers/dahdi/wcte12xp/vpmadt032.h, drivers/dahdi/wctdm24xxp/GpakCust.c, drivers/dahdi/wcb4xxp/base.c, drivers/dahdi/dahdi_dynamic_loc.c, drivers/dahdi/dahdi_transcode.c, drivers/dahdi/wcte11xp.c, drivers/dahdi/dahdi_dynamic.c, drivers/dahdi/dahdi_dynamic_eth.c, drivers/dahdi/wct1xxp.c, drivers/dahdi/wctdm.c, drivers/dahdi/wcb4xxp, drivers/dahdi/voicebus.c, drivers/dahdi/dahdi-base.c, drivers/dahdi/dahdi_dummy.c: fix a large number of warnings found by sparse, the kernel code sanity checking tool. some of these fixes are non-optimal (casting 'unsigned long' to '__user void *'), but are unavoidable in many cases. started from tzafrir's patch, did most of the work myself. (closes issue #13763) Reported by: tzafrir Patches: sparse_fixes_1.diff uploaded by tzafrir (license 46) * README: various cleanups, primarily proper capitalization 2008-10-28 18:26 +0000 [r5148-5150] Shaun Ruffell * drivers/dahdi/wcb4xxp/Kbuild (added), drivers/dahdi/Kbuild, drivers/dahdi/wcb4xxp/base.c (added), drivers/dahdi/wcb4xxp (added), drivers/dahdi/wcb4xxp/wcb4xxp.h (added), README: Adding the wcb4xxp driver, a native dahdi driver for the B410P module. 2008-10-27 19:27 +0000 [r5127-5138] Tzafrir Cohen * README: dahdi linux README: Clarify OSLEC EC build procedure. * drivers/dahdi/xpp/card_fxo.c: xpp fxo: Add sysfs battery attribute. * drivers/dahdi/xpp/xpp_dahdi.c, drivers/dahdi/xpp/xbus-core.c, drivers/dahdi/xpp/xbus-core.h: xpp: remove an unused manual reference count field. * drivers/dahdi/xpp/xpp_dahdi.c, drivers/dahdi/xpp/xbus-sysfs.c: xpp: Make some definitions static, as per sparse. Fixes the xpp warnings of #13763 (except some false alarms). * drivers/dahdi/xpp/card_pri.c, drivers/dahdi/xpp/card_bri.c, drivers/dahdi/xpp/card_fxo.c, drivers/dahdi/xpp/xbus-sysfs.c, drivers/dahdi/xpp/card_fxs.c, drivers/dahdi/xpp/xbus-core.h, drivers/dahdi/xpp/xdefs.h: Fix xpp compile problems on kernel < 2.6.16 Support for kernels that use the older hotplug support rather than the newer uevent. Fixes the xpp issue from #13427. * include/dahdi/kernel.h: kernel.h: cleanup DAHDI_FLAG_* defines, no functional change. Define the DAHDI_FLAG_* using the DAHDI_FLAGBIT_* enum values. 2008-10-22 18:49 +0000 [r5121-5124] Jason Parker * build_tools/genudevrules: Need to make sure we check for udevadm in addition to udevinfo. Some silly person (or people) decided that it wasn't useful to have in their distro... *cough* * drivers/dahdi/wctdm.c: Fix building on big endian machines. (closes issue #13754) Reported by: shrift Patches: wctdm-powerpc.patch uploaded by irroot (license 52) Tested by: shrift 2008-10-22 11:44 +0000 [r5105-5118] Tzafrir Cohen * drivers/dahdi/wct1xxp.c: wct1xxp: fix error handling at device startup. And also give more useful error messages if things go bad. (closes issue #13607) Patches: wct1xxp_pci.diff uploaded by tzafrir (license 46) Tested by: klaus3000 * drivers/dahdi/xpp/init_card_1_30: xpp FXS init script: Do use high-pass filter. * drivers/dahdi/Kbuild, drivers/dahdi/dahdi_echocan_oslec.c (added), README: An experimental OSLEC echocan module. * /: dahdi-trunk: ignore the generated README.html . * README: dahdi-linux README: better place for build requirements. (We'll have to put a content there one of these days) * README: Fix headers numbering. 2008-10-16 17:40 +0000 [r5097] Tzafrir Cohen * drivers/dahdi/xpp/xpp.rules, drivers/dahdi/xpp/xpp_usb.c, drivers/dahdi/xpp/card_pri.c, drivers/dahdi/xpp/card_fxo.c, drivers/dahdi/xpp/xframe_queue.c, drivers/dahdi/xpp/xbus-sysfs.c, drivers/dahdi/xpp/Kbuild, drivers/dahdi/xpp/card_fxs.c, drivers/dahdi/xpp/card_global.c, drivers/dahdi/xpp/xproto.c, drivers/dahdi/xpp/xframe_queue.h, drivers/dahdi/xpp/astribank_hook.sample (added), drivers/dahdi/xpp/init_card_1_30, drivers/dahdi/xpp/xbus-pcm.c, drivers/dahdi/xpp/init_card_2_30, drivers/dahdi/xpp/card_global.h, drivers/dahdi/xpp/init_card_3_30, drivers/dahdi/xpp/xproto.h, drivers/dahdi/xpp/xpp_dahdi.c, drivers/dahdi/xpp/xpd.h, drivers/dahdi/xpp/init_card_4_30, drivers/dahdi/xpp/xpp_dahdi.h, drivers/dahdi/xpp/card_bri.c, drivers/dahdi/xpp/mmapdrv.c, drivers/dahdi/xpp/xbus-core.c, drivers/dahdi/xpp/xbus-core.h, drivers/dahdi/xpp/xdefs.h: xpp: start migration from procfs to sysfs. * Sysfs representation for XPDs: /sys/bus/xpds/devices/:: * Astribanks sysfs directories now include the XPDs as subdirectories: e.g. /sys/bus/astribanks/devices/xbus-00/00:3:0 * procfs control interface deprecated: conditioned by OLD_PROC (defaults to off). Control functionality moved to sysfs: * xbus attributes: cls connector label status timing waitfor_xpds xbus_state * XPDs can have driver-specific attributes. Common attriubtes: blink chipregs span * PRI-specific attributes: pri_clocking pri_dchan pri_cas pri_alarms pri_layer1 pri_localloop pri_protocol * The Astribank attribute "xbus_state" is read/write. Reading it shows the current state of the Astribank. Writing "start" or "stop" allows a software equivalent of connect or disconnect respectively. * When an Astribank is ready it sends an "online" event. Whenever its not ready (e.g. at the time of disconnect) it sends an "offline" event. Use astribank_hook.sample to handle those. 2008-10-14 22:11 +0000 [r5090] Shaun Ruffell * drivers/dahdi/wcte12xp/base.c: If the vpmadt032 firmware needs to be reloaded, make sure we use the same slot in the ifaces array. 2008-10-10 22:38 +0000 [r5084] Shaun Ruffell * drivers/dahdi/dahdi_transcode.c, drivers/dahdi/wctc4xxp/base.c: - Ensure that the source format is considered when selecting a transcoder. - When a command is to be retried, turn off the TX_COMPLETE flag before resubmitting it to the hardware. This should elimate some of the warnings printed to the kernel log in the wctc4xxp_transmit_cmd function. 2008-10-09 02:54 +0000 [r5068] Kevin P. Fleming * drivers/dahdi/dahdi-base.c: a micro-optimization found while creslin and i spent four or five hours tracking down a very complex problem 2008-10-06 20:52 +0000 [r5064] Kevin P. Fleming * drivers/dahdi/dahdi-base.c: use the same logic here as elsewhere for releasing echocan module references 2008-10-06 17:48 +0000 [r5060] Shaun Ruffell * drivers/dahdi/wctc4xxp/base.c: Embed room for the complete packet to the DTE in the transcoder buffer structure. Simplifies alignment management at the cost of a little wasted memory, but the end results is that operation is more reliable on more systems. 2008-10-06 16:55 +0000 [r5056] Sean Bright * drivers/dahdi/dahdi-base.c: Fix a few compile errors that only show up when CONFIG_DAHDI_PPP is defined. (closes issue #13608) Reported by: Nik Soggia Fix suggested by: Nik Soggia Tested by: seanbright 2008-10-03 20:32 +0000 [r5046-5051] Tzafrir Cohen * drivers/dahdi/dahdi-base.c: Fix building with CONFIG_DAHDI_NET in kernel 2.6.22 The leftovers of issues #13542 (which was mostly resolved in previous committ. This closes it. * drivers/dahdi/dahdi-base.c: Fix building with CONFIG_DAHDI_NET . It builds, but will it run? Patch dahdi-base.c.hdlc.patch by biohumanoid that fixes some aparant copy&paste errors. 2008-10-03 20:09 +0000 [r5045] Sean Bright * drivers/dahdi/dahdi-base.c, drivers/dahdi/dahdi_config.h: Fix some compilation problems that show up when CONFIG_DAHDI_DEBUG is defined. 2008-10-03 15:39 +0000 [r5021-5034] Shaun Ruffell * drivers/dahdi/wctc4xxp/base.c: There are two possible valid statues when booting the TC400M. * drivers/dahdi/wctc4xxp/base.c: Keep hold of the channel lock when setting the data_ready flag for the channel after writing to the receive queue. Prevents a warning that data was on the recieve queue but the data ready flag was not set. Issue: DAHDI-42 * drivers/dahdi/wctc4xxp/base.c: wctc4xxp_cleanup_channel_private needs a pointer to the zt_transcoder_channel and not just the private portion now in order to manage the data ready flag state. * drivers/dahdi/wctc4xxp/base.c: Mark that there is not any data waiting whenever we cleanup the private channel structures. Issue: DAHDI-42 * drivers/dahdi/dahdi-base.c: DAHDI should always make data received from the PSTN available to user mode immediately. Only allow the transmit buffering policy to be changed in order to reduce the chance of underruns to the PSTN. 2008-09-30 20:29 +0000 [r5017] Shaun Ruffell * drivers/dahdi/wctc4xxp/base.c: Removing references to setup_timer in pre 2.6.18 kernels. 2008-09-29 Shaun Ruffell * dahdi-linux 2.0.0 released. 2008-09-28 17:29 +0000 [r5002-5007] Shaun Ruffell * drivers/dahdi/wctdm.c: Improve reliablity of UK caller ID for the TDM400P by not allowing the ringdebounce to be decremented when it is at 0 already. Related to issue #12531. Reported mattbrown, fix suggested by benbrown. * drivers/dahdi/wcte12xp/base.c: Fixed type of flags parameter to spin_lock_irqsave functions. Fixes compilation issues on platforms where int and long do not have the same size. Closes Issues #0013575. Reported by Ulmo. * drivers/dahdi/dahdi_echocan_kb1.c, drivers/dahdi/dahdi_echocan_mg2.c, drivers/dahdi/dahdi-base.c, drivers/dahdi/dahdi_echocan_sec.c, drivers/dahdi/dahdi_echocan_sec2.c: Fixes failure of modular echo cancelers in DAHDI. Reported by lots of people, fix suggested by mattf. 2008-09-26 03:20 +0000 [r4990] Shaun Ruffell * drivers/dahdi/dahdi-base.c: The channel master should not be set to 0, but rather should be 'cleared' by setting the channel to be it's own master. (related to issue 11611) 2008-09-25 16:50 +0000 [r4979-4986] Tzafrir Cohen * drivers/dahdi/xpp/firmwares/FPGA_1151.hex: XPP firmware: Only send out CAS D-channel messages when in CAS mode. * drivers/dahdi/xpp/init_card_3_30, drivers/dahdi/xpp/card_global.c, drivers/dahdi/xpp/init_card_1_30, drivers/dahdi/xpp/init_card_2_30: Fix display of indirect registers and streamline their setting. * This commit fixes display of indirect registers through the chipregs (formly "slics") procfs file. Only the low byte was displayed. * It also deprecates previous {RW}S in favour of {RW}I. The prevois style is still allowed but deprecated, and thus previous scripts will still work. * drivers/dahdi/xpp/card_fxo.c: XPP FXO: Add caller-id workaround for ESTI-DTMF (for #9096) * Also rename the CID_STYLE_* constants to formal names. 2008-09-24 06:15 +0000 [r4971] Shaun Ruffell * drivers/dahdi/wctc4xxp/base.c: Adding back in the mode module parameter for the wctc4xxp driver. This is primarily used to increase the number of channels available when only transcoding to/from g729 by setting it to 'g729'. 2008-09-18 21:23 +0000 [r4957] Shaun Ruffell * drivers/dahdi/wcte12xp/base.c: Adding a needed header for the in_atomic call. 2008-09-18 21:23 +0000 [r4956-4957] Shaun Ruffell * drivers/dahdi/wcte12xp/base.c, drivers/dahdi/dahdi-base.c: close_channel is called with a spin_lock held, which means that GFP_KERNEL can not be used for the memory allocations down that call path. Have allocations in this call path check if they are in atomic context and use the appropriate flags. Issue: DAHDI-195 2008-09-17 19:07 +0000 [r4917-4930] Shaun Ruffell * README: Just moved a note into it's own paragraph so that asciidoc can make the appropriate callout. * README: Added a note about installing support for the B410P in the installation section of the README file. * drivers/dahdi/dahdi-base.c: Turn off reference counting on the echo canceller modules in order to prevent misconfigurations from preventing the drivers from unloading. NOTE: This is only a temporary workaround, since it also means that the echocanceller can be unloaded by an administrator while in use, which would most likely result in a kernel oops. Related to issue #13504. 2008-09-15 20:49 +0000 [r4905-4909] Shaun Ruffell * drivers/dahdi/wctdm.c, drivers/dahdi/dahdi-base.c: Edit some comments and error strings. Issue: DAHDI-13 * drivers/dahdi/wcte12xp/vpmadt032.c, drivers/dahdi/wctdm24xxp/base.c: Fixed two typos. 2008-09-11 23:00 +0000 [r4894-4900] Tzafrir Cohen * drivers/dahdi/dahdi-base.c: Fix a type used in nethdlc mode, as pointed out in #13427 . * drivers/dahdi/xpp/xpp.rules (added), Makefile: Move udev rules xpp.rules from dahdi-tools to dahdi-linux . 2008-09-08 Russell Bryant * dahdi-linux version 2.0.0-rc4 released. 2008-09-06 20:27 +0000 [r4868-4870] Matthew Fredrickson * drivers/dahdi/dahdi-base.c: Fix buglet in #define for 2.6.9 * drivers/dahdi/wct4xxp/base.c: Revert unnecessary default hardhdlc mode from 56K to 64K * drivers/dahdi/wct4xxp/base.c, drivers/dahdi/dahdi-base.c: Fix class_simple on old 2.6.9 kernels 2008-09-04 21:42 +0000 [r4865] Matthew Fredrickson * include/dahdi/fasthdlc.h: Some picky switches require the LSB to be 1 for 56k links 2008-09-04 21:29 +0000 [r4861-4864] Shaun Ruffell * drivers/dahdi/wct4xxp/base.c: Remove a couple of 'magic numbers' to make it clear all the ports of the framer should be configured. * drivers/dahdi/wct4xxp/base.c: Fixes an issue where the dual-span cards are not properly configured which can cause data loss. Fix provided by opticron and possibly related to issue #0013393. 2008-08-29 21:46 +0000 [r4856] Matthew Fredrickson * drivers/dahdi/dahdi-base.c: Remove useless kzalloc 2008-08-27 17:12 +0000 [r4848-4849] Kevin P. Fleming * drivers/dahdi/dahdi_dummy.c: remove some more ztdummy references * drivers/dahdi/wcfxo.c, drivers/dahdi/wcte12xp/base.c, drivers/dahdi/wct4xxp/base.c, drivers/dahdi/wcte11xp.c, drivers/dahdi/wct1xxp.c, drivers/dahdi/wctc4xxp/base.c, drivers/dahdi/wctdm.c, drivers/dahdi/wctdm24xxp/base.c, README: a bit of attribution cleanup 2008-08-27 16:48 +0000 [r4847] Jason Parker * Makefile: Set a list of headers to install/uninstall, so the lists don't get out of sync (note the previously missing fasthdlc.h in the uninstall-include target) 2008-08-26 13:04 +0000 [r4829-4841] Tzafrir Cohen * Makefile: "docs" target to generate documentation. Generate docs with asciidoc. * drivers/dahdi/xpp/README.Astribank: Fix asciidoc. * Makefile: Don't try to clean modules if there's no kernel source available (like in Zaptel). * README: Reverting unwanted changes in the README (from r4830) Also fixed ZT references in the ABI compatibility section. The numerical ioctl values need to be recalculated, though. * README: Make the README file more relevant to modules. * drivers/dahdi/Kbuild, Makefile: Support MODULES_EXTRA and SUBDIRS_EXTRA to add extra modules from the make command line. 2008-08-25 17:50 +0000 [r4828] Jason Parker * Makefile: Make sure we remove headers that we installed in install-include 2008-08-25 14:54 +0000 [r4823] Shaun Ruffell * drivers/dahdi/wctc4xxp/base.c: Remove this warning, which could occur if the driver is loaded on a system without a wctc4xxp, and then subsequently unloaded. 2008-08-24 05:53 +0000 [r4817] Matthew Fredrickson * include/dahdi/user.h, include/dahdi/kernel.h, drivers/dahdi/dahdi-base.c, include/dahdi/fasthdlc.h: Add support for 56 KB HDLC as well as selectable rate via ioctl 2008-08-20 22:20 +0000 [r4805] Kevin P. Fleming * drivers/dahdi/dahdi_dynamic.c: use the new separate allocation method for channel structures here too replace "ZTD" references in channel/span names with "DYN" (closes issue #13302) Reported by: KNK 2008-08-20 Kevin P. Fleming * dahdi-linux version 2.0.0-rc3 released. 2008-08-20 22:20 +0000 [r4801-4805] Kevin P. Fleming * drivers/dahdi/dahdi_dynamic.c: use the new separate allocation method for channel structures here too replace "ZTD" references in channel/span names with "DYN" (closes issue #13302) Reported by: KNK * drivers/dahdi/dahdi_dynamic.c: update code to match version in Zaptel * drivers/dahdi/xpp/xpd.h, drivers/dahdi/wctdm24xxp/wctdm24xxp.h, drivers/dahdi/wcte12xp/vpmadt032.c, drivers/dahdi/wctdm24xxp/base.c, drivers/dahdi/wctdm24xxp/GpakApi.c, drivers/dahdi/dahdi-base.c, drivers/dahdi/wctdm24xxp/GpakCust.c: improve compatibility with 2.6.26 and 2.6.27 kernels (closes issue #13253) Reported by: raiden Patches: zap-dev.patch uploaded by smurfix on issue #13277 (license 547) zap-sema.patch uploaded by smurfix on issue #13277 (license 547) 2008-08-20 19:31 +0000 [r4798] Shaun Ruffell * drivers/dahdi/wctc4xxp/base.c: Change to support both 5.3kbps and 6.3kbps bit rates when using the G723.1 codec. 2008-08-19 20:49 +0000 [r4795] Kevin P. Fleming * drivers/dahdi/firmware/Makefile: port over improvements to firmware Makefile from Zaptel 2008-08-19 20:25 +0000 [r4791-4794] Shaun Ruffell * drivers/dahdi/wctc4xxp/base.c: Fixed calculation of the timestamp. * include/dahdi/kernel.h, drivers/dahdi/dahdi_transcode.c, drivers/dahdi/wctc4xxp/base.c: Couple of fixes for the transcoder: - In dahdi_transcode.c, Embed the identifiation number, assigned sequentially when the transcoders are registered, in the transcoder structure. This allows DAHDI_TC_GETINFO to work as expected even though the transcoders are rotated on the list in order to spread the load. - In wctc4xxp, fix bug where all transcoders are named tc400b0. 2008-08-18 23:24 +0000 [r4788] Kevin P. Fleming * Makefile: minor cleanups, and allow DAHDI_BUILD_ALL to be overriden on the command line 2008-08-14 21:37 +0000 [r4776-4784] Tzafrir Cohen * drivers/dahdi/xpp/.version, drivers/dahdi/xpp/Changelog_xpp: Set xpp version to 6056 and reset XPP changelog. * drivers/dahdi/xpp/firmwares/Makefile (added), Makefile: Also install Astribank firmwares and init scripts to /usr/share/dahdi . * drivers/dahdi/xpp/card_fxo.c: xpp: FXO: display signed voltage values (from xpp r6055) This is only an issue with the displayed value. In case you wondered why you have battery voltage of more than 220V. 2008-08-14 01:09 +0000 [r4773] Kevin P. Fleming * drivers/dahdi/dahdi_transcode.c: remove devfs support, and use consistent include file path 2008-08-13 21:04 +0000 [r4770] Doug Bailey * drivers/dahdi/wctdm24xxp/wctdm24xxp.h, drivers/dahdi/wctdm24xxp/base.c: import the neon mwi detection 2008-08-11 16:22 +0000 [r4758-4761] Tzafrir Cohen * drivers/dahdi/xpp/card_pri.c, drivers/dahdi/xpp/card_bri.c, drivers/dahdi/xpp/firmwares/FPGA_1151.hex, drivers/dahdi/xpp/xbus-core.c, drivers/dahdi/xpp/card_global.c, drivers/dahdi/xpp/xbus-pcm.c: xpp: CAS/E1 support in the PRI module, and minor fixes. * Add support for CAS in the PRI module. Use firmware rev. 5975. * Debugging parameter pcmtx_chan now accepts a dahdi channel number. * Do initialize a reserved protocol field (card_global). * The name DAHDI as used in proc/xpp/sync has 5 (not 6) letters. * Fix DTMF "channel leak" regression in the FXS module. * drivers/dahdi/xpp/card_fxo.c: xpp: fxo: Fix support for CID_STYLE_PASS_ALWAYS * drivers/dahdi/xpp/Kbuild: A more robust test for bri_dchan support. * drivers/dahdi/xpp/xpd.h, drivers/dahdi/xpp/xpp_dahdi.c: xpp_blink is a bit mask of ports, and not boolean anymore. 2008-08-08 Kevin P. Fleming * dahdi-linux version 2.0.0-rc2 released. 2008-08-07 20:21 +0000 [r4742] Shaun Ruffell : * drivers/dahdi/dahdi_transcode.c: Make sure types are same size on 64-bit machines. 2008-08-06 Kevin P. Fleming * dahdi-linux version 2.0.0-rc1 released.