[dahdi-commits] dahdi/tools.git branch "2.10.y" created.

SVN commits to the DAHDI project dahdi-commits at lists.digium.com
Thu Jun 4 08:13:40 CDT 2015


branch "2.10.y" has been created
        at  3693ad815b1a1676760f46def94a165df562cc70 (commit)

- Log -----------------------------------------------------------------
commit 3693ad815b1a1676760f46def94a165df562cc70
Author: Tzafrir Cohen <tzafrir.cohen at xorcom.com>
Date:   Tue Mar 31 22:37:10 2015 +0300

    xpp_fxloader: handle empty span-type.conf
    
    If we have /etc/dahdi/span-types.conf but it doesn't have any
    line, we should avoid using the option -S to astribank_hexload.
    Fix the test for this.
    
    Signed-off-by: Tzafrir Cohen <tzafrir.cohen at xorcom.com>
    (cherry picked from commit 77730a90597091263570944818599bf33f31030e)

diff --git a/xpp/xpp_fxloader b/xpp/xpp_fxloader
index ce5133a..5135ebf 100644
--- a/xpp/xpp_fxloader
+++ b/xpp/xpp_fxloader
@@ -319,8 +319,9 @@ load_fw_device() {
 					if [ "$pri_spec_wildcard" != '' ]; then
 						debug "ECHO($dev_short): Found definitions for wildcard -- $pri_spec_wildcard"
 					fi
-					pri_spec=`echo "$pri_spec_wildcard $pri_spec" | tr -s ' \t\n' ','`
-					if [ "$pri_spec" != '' ]; then
+					pri_spec_params=""
+					if [ "$pri_spec$pri_spec_wildcard" != '' ]; then
+						pri_spec=`echo "$pri_spec_wildcard $pri_spec" | tr -s ' \t\n' ','`
 						pri_spec_params="-S $pri_spec"
 						debug "ECHO($dev_short): pri_spec_params='$pri_spec_params'"
 					fi

commit e9a04c7a500fac22ff09e6c38672f0aa6b83ca61
Author: Tzafrir Cohen <tzafrir.cohen at xorcom.com>
Date:   Wed Jan 21 18:43:19 2015 +0200

    no astribank_is_starting with hotplug asterisk
    
    Don't run the final astribank_is_starting if asterisk is hotpluggable.
    
    Likewise, if there's no xpp_order file, waiting is pointless as the hook
    can't count Astribanks.
    
    Signed-off-by: Tzafrir Cohen <tzafrir.cohen at xorcom.com>
    (cherry picked from commit 3f55dd78debd0c0146240c6f65ee5d9e8e93539e)

diff --git a/xpp/waitfor_xpds b/xpp/waitfor_xpds
index fa7ab4f..876a0c8 100755
--- a/xpp/waitfor_xpds
+++ b/xpp/waitfor_xpds
@@ -148,11 +148,15 @@ cat /sys/bus/astribanks/devices/*/waitfor_xpds 2> /dev/null || :
 
 # Wait for device to stabilize and XPD's to finish initalizations
 echo 1>&2 "Astribanks initializing spans"
-if [ "$XPP_HOTPLUG_DAHDI" = yes ]; then
-	if [ "$CALLED_FROM_ATRIBANK_HOOK" = '' ]; then
+if [ "$XPP_HOTPLUG_DAHDI" = yes -a "$CALLED_FROM_ATRIBANK_HOOK" = '' -a \
+		"$ASTERISK_SUPPORTS_DAHDI_HOTPLUG" != 'yes'  ]; then
+	if [ -f /etc/dahdi/xpp_order ]; then
 		# Now we can wait until the hotplug run would remove the semaphore
 		echo -n 1>&2 "Other DAHDI initializations... "
 		astribank_is_starting -v -w 1>&2
+	else
+		echo 1>&2 "WARNING: No ASTERISK_SUPPORTS_DAHDI_HOTPLUG" \
+			" and no /etc/dahdi/xpp_order"
 	fi
 fi
 # All Astribanks initialized -- remove semaphore

commit b37bcfb3b4fe198c2e50905c2308ce5a7265bbb2
Author: Tzafrir Cohen <tzafrir.cohen at xorcom.com>
Date:   Sun Dec 7 11:51:19 2014 +0200

    astribank_hook: remove useless 'time'
    
    * 'time' was added here for debugging and never actually needed.
    * It actually causes a minor bashism issue.
    
    Signed-off-by: Tzafrir Cohen <tzafrir.cohen at xorcom.com>
    (cherry picked from commit 283f01bd675a38bfaf1edc469cda45bb952143f1)

diff --git a/xpp/astribank_hook b/xpp/astribank_hook
index 05d1c17..fdfa82a 100755
--- a/xpp/astribank_hook
+++ b/xpp/astribank_hook
@@ -96,10 +96,10 @@ wait_for_udev() {
 	echo "Waiting for udev to settle down..."
 	if [ -x /sbin/udevsettle ]; then
 		# Old system, stand-alone udevsettle command
-		time /sbin/udevsettle --timeout="$UDEV_SETTLE_MAX_TIME"
+		/sbin/udevsettle --timeout="$UDEV_SETTLE_MAX_TIME"
 	elif [ -x /sbin/udevadm ]; then
 		# Assume modern system, udevadm has settle parameter
-		if ! time /sbin/udevadm settle --timeout="$UDEV_SETTLE_MAX_TIME"
+		if ! /sbin/udevadm settle --timeout="$UDEV_SETTLE_MAX_TIME"
 		then
 			echo "udevadm failed ($?)."
 			echo "Fallback to sleep $UDEV_SETTLE_MAX_TIME seconds."

commit 42f3e120ff1b19db7b56cae15f80df3d349d88d4
Author: Oron Peled <oron.peled at xorcom.com>
Date:   Tue Oct 28 13:56:10 2014 -0400

    xpp: waitfor_xpds: Always remove Astribank semaphore
    
    If we waited -- no Astribanks are "in initialization"
    
    Signed-off-by: Tzafrir Cohen <tzafrir.cohen at xorcom.com>
    (cherry picked from commit 631d32680fe1dbb257916ee3a0cb2baea3062c19)

diff --git a/xpp/waitfor_xpds b/xpp/waitfor_xpds
index 2d08013..fa7ab4f 100755
--- a/xpp/waitfor_xpds
+++ b/xpp/waitfor_xpds
@@ -154,7 +154,6 @@ if [ "$XPP_HOTPLUG_DAHDI" = yes ]; then
 		echo -n 1>&2 "Other DAHDI initializations... "
 		astribank_is_starting -v -w 1>&2
 	fi
-else
-	# Non-hotplug -- Sequential initialization, remove semaphore
-	astribank_is_starting -v -r 1>&2
 fi
+# All Astribanks initialized -- remove semaphore
+astribank_is_starting -v -r 1>&2

commit 48bb9e54f7fa7f91c0a63d6ef3ad316122114db1
Author: Oron Peled <oron.peled at xorcom.com>
Date:   Tue Oct 28 13:43:48 2014 -0400

    xpp/astribank_hook: remove Astribank initialization
    
    If this is the last seen Astribank
    
    Signed-off-by: Tzafrir Cohen <tzafrir.cohen at xorcom.com>
    (cherry picked from commit 44fe560f3be4993339918a71a81fc50e52c2731a)

diff --git a/xpp/astribank_hook b/xpp/astribank_hook
index 59c79ea..05d1c17 100755
--- a/xpp/astribank_hook
+++ b/xpp/astribank_hook
@@ -172,6 +172,13 @@ old_synchronous_stop() {
 	fi
 }
 
+ab_list() {
+	find /sys/devices -name idVendor 2>/dev/null | \
+		xargs grep -H  'e4e4' 2>/dev/null | \
+		sed -e 's/idVendor.*/idProduct/' | xargs grep -H '11[3456]' | \
+		sed 's,/[^/]*$,,' || :
+}
+
 tws_watchdog_enable() {
 	devdir="/sys$DEVPATH"
 	label=`cat "$devdir/label"`
@@ -197,6 +204,11 @@ case "$ACTION" in
 add)
 	;;
 remove)
+	ab=`ab_list | wc -l`
+	if [ "$ab" -eq 0 ]; then
+		$LOGGER "$prefix: No more Astribanks -- remove astribank_is_starting semaphore"
+		astribank_is_starting -v -r 2>&1 | $LOGGER
+	fi
 	;;
 online)
 	if can_full_async; then

commit 605914d817c94eb882021f4e3bc2a4195de33aad
Author: Oron Peled <oron.peled at xorcom.com>
Date:   Tue Oct 28 13:50:30 2014 -0400

    xpp: waitfor_xpds: documentation
    
    Signed-off-by: Tzafrir Cohen <tzafrir.cohen at xorcom.com>
    (cherry picked from commit 1a78b71fac5d27b24781fa0bee0e40d02108ff92)

diff --git a/xpp/waitfor_xpds b/xpp/waitfor_xpds
index 4f60f5d..2d08013 100755
--- a/xpp/waitfor_xpds
+++ b/xpp/waitfor_xpds
@@ -95,10 +95,12 @@ if ! dahdi_hardware="`which dahdi_hardware 2>/dev/null`"; then
 	exit 0
 fi
 
+# Just make sure
 if [ "`$dahdi_hardware | grep xpp_usb`" != "" ]; then
 	astribank_is_starting -v -a
 fi
 if ! astribank_is_starting; then
+	# No Astribanks ever seen -- nothing to do
 	exit 0
 fi
 

commit bcd25eea3688e0b03ac75a54fad3aacae120b00a
Author: Oron Peled <oron.peled at xorcom.com>
Date:   Wed Oct 22 15:02:58 2014 -0400

    xpp: can use modern Asterisk hotplug support
    
    * New asynchronous behavior is used only when two conditions are met:
      - Finding new $ASTERISK_SUPPORTS_DAHDI_HOTPLUG=yes in /etc/dahdi/init.conf
        This should be set only when Asterisk support hotplug and configured
        to use it (no_failed_channels==1).
      - DAHDI auto_assign_spans==0
    
    * Adapt /usr/share/dahdi/astribank_hook:
      - Refactor old twinstar behavior into functions
      - Add new behavior in a function (just enable the Asrribank watchdog)
      - Call the correct function.
    
    * Adapt init script:
      If asynchronous behavior is on, don't wait for all Astribanks to
      finish initialization (it's enough that we saw all/some of them)
    
    Signed-off-by: Tzafrir Cohen <tzafrir.cohen at xorcom.com>
    Acked-by: Russ Meyerriecks <rmeyerriecks at digium.com>
    (cherry picked from commit f11b93765902777e011f4e667fd048bbcf1fd92e)

diff --git a/dahdi.init b/dahdi.init
index 2b77fd3..68420c7 100755
--- a/dahdi.init
+++ b/dahdi.init
@@ -144,6 +144,14 @@ hotplug_exit_after_load() {
 
 # Initialize the Xorcom Astribank (xpp/) using perl utiliites:
 xpp_startup() {
+	if [ "$ASTERISK_SUPPORTS_DAHDI_HOTPLUG" = yes ]; then
+		aas_param='/sys/module/dahdi/parameters/auto_assign_spans'
+		aas=`cat "$aas_param" 2>/dev/null`
+		if [ "$aas" = 0 ]; then
+			echo 1>&2 "Don't wait for Astribanks (use Asterisk hotplug-support)"
+			return 0
+		fi
+	fi
 	# do nothing if there are no astribank devices:
 	if ! /usr/share/dahdi/waitfor_xpds; then return 0; fi
 
diff --git a/init.conf.sample b/init.conf.sample
index e431f1a..6bbb199 100644
--- a/init.conf.sample
+++ b/init.conf.sample
@@ -17,6 +17,7 @@
 #XPP_FIRMWARE_DIR=/usr/share/dahdi
 #XPP_HOTPLUG_DISABLED=yes
 #XPP_HOTPLUG_DAHDI=yes
+#ASTERISK_SUPPORTS_DAHDI_HOTPLUG=yes
 
 # Disable udev handling:
 #DAHDI_UDEV_DISABLE_DEVICES=yes
diff --git a/xpp/astribank_hook b/xpp/astribank_hook
index 0888733..59c79ea 100755
--- a/xpp/astribank_hook
+++ b/xpp/astribank_hook
@@ -16,6 +16,8 @@ PATH="$dir:/usr/sbin:/sbin:/usr/bin:/bin"
 
 set -e
 
+LOCK="/var/lock/twinstar_startup"
+
 [ -r /etc/dahdi/init.conf ] && . /etc/dahdi/init.conf
 
 # For lab testing
@@ -32,17 +34,38 @@ if [ "$XPP_HOTPLUG_DAHDI" != yes ]; then
 fi
 
 export XPPORDER_CONF="$dahdi_conf/xpp_order"
-if [ ! -r "$XPPORDER_CONF" ]; then
-	(
-		echo "Skip($ACTION): No '$XPPORDER_CONF'"
-		echo "Removing uneeded startup semaphore"
-		astribank_is_starting -v -r 2>&1
-	) 2>&1 | $LOGGER
-	exit 0
-fi
 export DAHDI_CFG_CMD="dahdi_cfg -c $dahdi_conf/system.conf"
 export CALLED_FROM_ATRIBANK_HOOK=yes
 
+can_full_async() {
+	# Can we work aynchronously:
+	#    - Need modern Asterisk that accept hotplug DAHDI devices.
+	#    - Need DAHDI with "auto_assign_spans" == 0
+	if [ "$ASTERISK_SUPPORTS_DAHDI_HOTPLUG" = yes ]; then
+		aas_param='/sys/module/dahdi/parameters/auto_assign_spans'
+		aas=`cat "$aas_param" 2>/dev/null`
+		if [ "$aas" = 0 ]; then
+			return 0
+		else
+			$LOGGER "No async operation ($aas_param != 0)"
+		fi
+	else
+		$LOGGER "No async operation (ASTERISK_SUPPORTS_DAHDI_HOTPLUG!=yes)"
+	fi
+	return 1
+}
+
+check_xpporder_conf() {
+	if [ ! -r "$XPPORDER_CONF" ]; then
+		(
+			echo "Skip($ACTION): No '$XPPORDER_CONF'"
+			echo "Removing uneeded startup semaphore"
+			astribank_is_starting -v -r 2>&1
+		) 2>&1 | $LOGGER
+		exit 0
+	fi
+}
+
 clean_lines() {
 	sed -e 's/#.*//' -e 'y/\t/ /' -e 's/^ *//' -e 's/ *$//' -e '$s/$/\n/' "$XPPORDER_CONF"
 }
@@ -64,10 +87,6 @@ matched_devices() {
 	done
 }
 
-NUM_WANTED=`clean_lines | sed '/^$/d' | wc -l`
-NUM_GOOD=`matched_devices | wc -l`
-LOCK="/var/lock/twinstar_startup"
-
 # Wait until udev finished processing our requests
 # so we know the device files were actually created
 # before trying dahdi_cfg et-al.
@@ -110,13 +129,9 @@ start_dahdi() {
 	rm -f "$LOCK"
 }
 
-#echo "$0: $ACTION($XBUS_NAME)" | $LOGGER
-case "$ACTION" in
-add)
-	;;
-remove)
-	;;
-online)
+old_synchronous_start() {
+	NUM_GOOD=`matched_devices | wc -l`
+	NUM_WANTED=`clean_lines | sed '/^$/d' | wc -l`
 	echo "$ACTION($XBUS_NAME): $NUM_GOOD/$NUM_WANTED from $XPPORDER_CONF" | $LOGGER
 	if [ "$NUM_GOOD" -eq "$NUM_WANTED" ]; then
 		(
@@ -142,8 +157,11 @@ online)
 			fi
 		) < /dev/null 2>&1 | $LOGGER &
 	fi
-	;;
-offline)
+}
+
+old_synchronous_stop() {
+	NUM_GOOD=`matched_devices | wc -l`
+	NUM_WANTED=`clean_lines | sed '/^$/d' | wc -l`
 	echo "$ACTION($XBUS_NAME): $NUM_GOOD/$NUM_WANTED from $XPPORDER_CONF" | $LOGGER
 	if [ "$NUM_GOOD" -eq 0 ]; then
 		echo "All Astribanks offline" | $LOGGER
@@ -152,6 +170,47 @@ offline)
 		fi
 		rm -f "$LOCK"
 	fi
+}
+
+tws_watchdog_enable() {
+	devdir="/sys$DEVPATH"
+	label=`cat "$devdir/label"`
+	connector=`cat "$devdir/connector"`
+	xbus=`echo "$devdir" | sed 's,.*/,,'`
+	prefix="${xbus}: [${label}] @${connector}"
+	TWS_NOAUTOJUMPFILE="$TWS_DIR/twinstar_no_autojump"
+	if [ -e "$TWS_NOAUTOJUMPFILE" ]; then
+		$LOGGER "$prefix: ignore wd (found $TWS_NOAUTOJUMPFILE)"
+	else
+		# Re-arm Astribank watchdog
+		transportdir="$devdir/transport"
+		busnum=`cat "$transportdir/busnum" 2>/dev/null || :`
+		devnum=`cat "$transportdir/devnum" 2>/dev/null || :`
+		devaddr=`printf "%03d/%03d" "$busnum" "$devnum"`
+		$LOGGER "$prefix: enabling twinstar watchdog"
+		astribank_tool -D "$devaddr" -w 1 2>&1 | $LOGGER
+	fi
+}
+
+#echo "$0: $ACTION($XBUS_NAME)" | $LOGGER
+case "$ACTION" in
+add)
+	;;
+remove)
+	;;
+online)
+	if can_full_async; then
+		tws_watchdog_enable
+	else
+		old_synchronous_start
+	fi
+	;;
+offline)
+	if can_full_async; then
+		:	# Nothing to do
+	else
+		old_synchronous_stop
+	fi
 	;;
 *)
 	echo "$0: Unknown ACTION='$ACTION'" | $LOGGER

commit c7dc48e534e87c9ff16b6b811247df3c9922d94c
Author: Oron Peled <oron.peled at xorcom.com>
Date:   Tue Oct 28 13:48:16 2014 -0400

    xpp: waitfor_xpds: assume astribank_is_starting exists
    
    It's in the same package (dahdi-tools) for a long time
    
    Signed-off-by: Tzafrir Cohen <tzafrir.cohen at xorcom.com>
    (cherry picked from commit cd6083b6ce65ea83f76aacac774e1315233c254d)

diff --git a/xpp/waitfor_xpds b/xpp/waitfor_xpds
index 8a46a1d..4f60f5d 100755
--- a/xpp/waitfor_xpds
+++ b/xpp/waitfor_xpds
@@ -94,10 +94,7 @@ if ! dahdi_hardware="`which dahdi_hardware 2>/dev/null`"; then
 	echo >&2 "$0: Missing dahdi_hardware"
 	exit 0
 fi
-if ! astribank_is_starting="`which astribank_is_starting 2>/dev/null`"; then
-	echo >&2 "$0: Missing astribank_is_starting"
-	exit 0
-fi
+
 if [ "`$dahdi_hardware | grep xpp_usb`" != "" ]; then
 	astribank_is_starting -v -a
 fi

commit 0ae73f0497103f4d1defeae3ae79d40d0cdde434
Author: Oron Peled <oron.peled at xorcom.com>
Date:   Tue Oct 28 11:53:29 2014 -0400

    xpp: waitfor_xpds: expansion error with no ABs
    
    Fix an exansion error in case there were no Astribanks on the system.
    
    Signed-off-by: Tzafrir Cohen <tzafrir.cohen at xorcom.com>
    (cherry picked from commit 0eb77e626ef5d71804825d7701432ec6d68c5e6e)

diff --git a/xpp/waitfor_xpds b/xpp/waitfor_xpds
index 79e2806..8a46a1d 100755
--- a/xpp/waitfor_xpds
+++ b/xpp/waitfor_xpds
@@ -52,7 +52,7 @@ ab_serial_nums() {
 }
 
 detected_serial_nums() {
-	for i in /sys/bus/astribanks/devices/*/transport; do
+	for i in `ls -1d /sys/bus/astribanks/devices/*/transport 2>/dev/null`; do
 		s=`cat "$i/serial" 2>/dev/null` || :
 		if [ "$s" = '' ]; then
 			echo "NO-SERIAL"

commit 93f85f7e6f3f0e876ca021de82a88a6d536994eb
Author: Oron Peled <oron.peled at xorcom.com>
Date:   Tue Oct 28 13:28:04 2014 -0400

    xpp: astribank_is_starting: improve '-v' output
    
    Do print a message if no semaphore exists. It means that either there
    are no Astribanks, or existing Astribanks were already initialized.
    
    Signed-off-by: Tzafrir Cohen <tzafrir.cohen at xorcom.com>
    (cherry picked from commit 2e1c15baa3f8696178ca63c53458ae8040a210c9)

diff --git a/xpp/astribank_is_starting.c b/xpp/astribank_is_starting.c
index 072004f..da565c9 100644
--- a/xpp/astribank_is_starting.c
+++ b/xpp/astribank_is_starting.c
@@ -125,6 +125,8 @@ static int absem_detected(void)
 	if((absem = absem_get(0)) < 0) {
 		if(debug)
 			fprintf(stderr, "%s: absem does not exist\n", progname);
+		if(verbose)
+			printf("No Astribanks are initializing\n");
 		return absem;
 	}
 	if(debug)

commit e14958442dd1e0d84eea73ba6b77615a63cef594
Author: Russ Meyerriecks <rmeyerriecks at digium.com>
Date:   Tue Aug 19 15:22:30 2014 -0500

    tonezone: Fix regression in Australian tone patch
    
    Initialize db to 1.0 instead of doing it in a few, but not all, logic contexts.
    
    Reported-by: Tzafrir Cohen <tzafrir.cohen at xorcom.com>
    Signed-off-by: Russ Meyerriecks <rmeyerriecks at digium.com>
    Signed-off-by: Shaun Ruffell <sruffell at digium.com>
    (cherry picked from commit 094bb2c1e80ec09e8964b5819ad62be3840efad7)

diff --git a/tonezone.c b/tonezone.c
index 8987061..e31a803 100644
--- a/tonezone.c
+++ b/tonezone.c
@@ -89,7 +89,8 @@ static int build_tone(void *data, size_t size, struct tone_zone_sound *t, int *c
 	int firstnobang = -1;
 	int freq1, freq2, time;
 	int modulate = 0;
-	float db, gain;
+	float db = 1.0;
+	float gain;
 	int used = 0;
 	dup = strdup(t->data);
 	s = strtok(dup, ",");
@@ -112,16 +113,13 @@ static int build_tone(void *data, size_t size, struct tone_zone_sound *t, int *c
 		} else if (sscanf(s, "%d+%d", &freq1, &freq2) == 2) {
 			PRINT_DEBUG("f1+f2 format: %d, %d\n", freq1, freq2);
 			time = 0;
-			db = 1.0;
 		} else if (sscanf(s, "%d*%d", &freq1, &freq2) == 2) {
 			PRINT_DEBUG("f1+f2 format: %d, %d\n", freq1, freq2);
 			modulate = 1;
 			time = 0;
-			db = 1.0;
 		} else if (sscanf(s, "%d/%d", &freq1, &time) == 2) {
 			PRINT_DEBUG("f1/time format: %d, %d\n", freq1, time);
 			freq2 = 0;
-			db = 1.0;
 		} else if (sscanf(s, "%d@/%d", &freq1, &time) == 2) {
 			/* The "@" character has been added to enable an
  			 * approximately -20db tone generation of any frequency This has been done
@@ -136,7 +134,6 @@ static int build_tone(void *data, size_t size, struct tone_zone_sound *t, int *c
 			firstnobang = *count;
 			freq2 = 0;
 			time = 0;
-			db = 1.0;
 		} else {
 			fprintf(stderr, "tone component '%s' of '%s' is a syntax error\n", s,t->data);
 			return -1;

commit f3b18f7832655c728c9703bdacfc63dbe61bb71d
Author: Oron Peled <oron.peled at xorcom.com>
Date:   Sun Aug 17 17:07:19 2014 +0300

    xpp: revert USB "clear_halt" change and better overrides.
    
    Why:
     * Doing "clear_halt" is normally the right thing to do on startup.
     * The original observed problem is better fixed via USB bios settings.
     * Defaulting to no "clear_halt" cause more problems on other platform
       combinations (hardware/kernel).
    
    The change:
     * We now reverted to do "clear_halt" by default.
     * The XTALK_OPTIONS may now contain either "use-clear-halt" (the default)
       or "no-use-clear-halt" to override for debugging/testing.
    
    Original commit: ca7c04e9cbdfc182c9c9672dec884f5ac87f90b9
    
    Signed-off-by: Tzafrir Cohen <tzafrir.cohen at xorcom.com>
    (cherry picked from commit 9aee76a3a557fb9fed06c4df73dfebe4837a3abd)

diff --git a/xpp/xtalk/xusb.c b/xpp/xtalk/xusb.c
index dcc694a..d33f013 100644
--- a/xpp/xtalk/xusb.c
+++ b/xpp/xtalk/xusb.c
@@ -67,6 +67,8 @@ static void xusb_init();
  *     variable of that name. Existing options:
  *
  *     - "use-clear-halt" -- force USB "clear_halt" operation during
+ *                           device initialization (this is the default)
+ *     - "no-use-clear-halt" -- force no USB "clear_halt" operation during
  *                           device initialization
  *     - "no-lock" -- prevent using global sempahore to serialize libusb
  *                    initialization. Previously done via "XUSB_NOLOCK"
@@ -888,7 +890,7 @@ static void xusb_init()
 }
 
 /* XTALK option handling */
-static int use_clear_halt = 0;
+static int use_clear_halt = 1;
 static int libusb_no_lock = 0;
 
 static int xtalk_one_option(const char *option_string)
@@ -897,6 +899,10 @@ static int xtalk_one_option(const char *option_string)
 		use_clear_halt = 1;
 		return 0;
 	}
+	if (strcmp(option_string, "no-use-clear-halt") == 0) {
+		use_clear_halt = 0;
+		return 0;
+	}
 	if (strcmp(option_string, "no-lock") == 0) {
 		libusb_no_lock = 1;
 		return 0;

-----------------------------------------------------------------------


-- 
dahdi/tools.git



More information about the dahdi-commits mailing list