diff options
author | Tzafrir Cohen <tzafrir.cohen@xorcom.com> | 2009-05-19 16:33:50 +0000 |
---|---|---|
committer | Tzafrir Cohen <tzafrir.cohen@xorcom.com> | 2009-05-19 16:33:50 +0000 |
commit | 096417e3731173f0a70625d413b4d68a449adec1 (patch) | |
tree | 3460b4dfe1e47dfc87936aa9b4537b9077d99611 /xpp/waitfor_xpds | |
parent | ebc8c8a972baf07c0020f8b582b4efa01f801286 (diff) |
dahdi.init: moved test for astribanks into waitfor_xpds
If the system starts with an Astribank with no firmware, the firmware
loading may take a while and the Astribank only becomes ready some time
after the DAHDI init script starts.
This means that the test at the beginning of xpp_startup() in dahdi.init
fails to find an Astribank, and the init script simply continues
ignoring this.
This changeset moves the testing inside the script waitfor_xpds. The
script now:
1. Tests for an Astribank using dahdi_hardware and exists immediately
if none found.
2. A loop (of maximum 10 seconds) waits for the first Astribank to
be detected by the driver.
3. Waiting for the initialization of all the Astribanks to complete (The
original waitfor_xpds)
The support for the old procfs iinterface has been removed, as it has
never been used with DAHDI.
git-svn-id: http://svn.asterisk.org/svn/dahdi/tools/trunk@6646 a0bf4364-ded3-4de4-8d8a-66a801d63aff
Diffstat (limited to 'xpp/waitfor_xpds')
-rwxr-xr-x | xpp/waitfor_xpds | 33 |
1 files changed, 21 insertions, 12 deletions
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 |