summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xdahdi.init2
-rwxr-xr-xxpp/waitfor_xpds33
2 files changed, 21 insertions, 14 deletions
diff --git a/dahdi.init b/dahdi.init
index 5a7a728..5c1a3f0 100755
--- a/dahdi.init
+++ b/dahdi.init
@@ -89,8 +89,6 @@ unload_module() {
# Initialize the Xorcom Astribank (xpp/) using perl utiliites:
xpp_startup() {
# do nothing if there are no astribank devices:
- if ! grep -q connected /proc/xpp/xbuses 2>/dev/null; then return 0; fi
-
if ! /usr/share/dahdi/waitfor_xpds; then return 0; fi
# overriding locales for the above two, as perl can be noisy
diff --git a/xpp/waitfor_xpds b/xpp/waitfor_xpds
index ebac3a0..71c5187 100755
--- a/xpp/waitfor_xpds
+++ b/xpp/waitfor_xpds
@@ -26,22 +26,32 @@
set -e
ab_list() {
+ # Only check /sys info (don't use /proc anymore).
ab=`find /sys/bus/astribanks/devices/xbus-*/ -name waitfor_xpds 2> /dev/null || :`
- if [ "$ab" = "" ]; then
- ab=`find /proc/xpp/XBUS-[0-9]*/ -name waitfor_xpds 2> /dev/null || :`
- procfiles=1
- fi
- if [ "$ab" = "" ]; then
- echo 1>&2 "$0: No XBUSES to wait for. Aborting..."
- exit 1
- fi
- if [ -n "$procfiles" ]; then
- echo 1>&2 "$0: No /sys attributes, fallback to /proc interface..."
- fi
echo $ab
}
+# Any hardware?
+if [ "`dahdi_hardware | grep xpp_usb`" = "" ]; then
+ exit 0
+fi
+
+# Wait for driver and first device
+echo -n 1>&2 "Astribanks detection "
+tries=10
+while [ ! -e "/sys/bus/astribanks/devices/xbus-00" ]
+do
+ if [ "$tries" -le 0 ]; then
+ exit 1
+ fi
+ echo -n 1>&2 "."
+ sleep 1
+ ((tries--))
+done
+echo ""
+# Wait for device to stabilize and XPD's to finish initalizations
+echo 1>&2 "Astribanks initalization "
while
if ! ab=`ab_list`; then
exit 1
@@ -49,6 +59,5 @@ while
test "$oldab" != "$ab"
do
oldab="$ab"
- echo 1>&2 "Waiting for XPDS"
cat $ab
done