wusb: wusb-cbaf (CBA driver) sysfs ABI simplification
[linux-2.6.git] / Documentation / usb / wusb-cbaf
index a385478ba12ecd591d6f6d8b583b956b5e358989..2e78b70f3adccf8bc5f16c13990d042ec8c2b03f 100644 (file)
@@ -70,32 +70,42 @@ EOF
 # FIXME: CHID should come from a database :), band group from the host
 host_CHID="00 11 22 33 44 55 66 77 88 99 aa bb cc dd ee ff"
 host_band_group="0001"
-host_name="Linux-WUSB"
+host_name=$(hostname)
 
 devs="$(echo /sys/bus/usb/drivers/wusb-cbaf/[0-9]*)"
-hdevs="$(find /sys -name wusb_chid -printf "%h\n")"
+hdevs="$(for h in /sys/class/uwb_rc/*/wusbhc; do readlink -f $h; done)"
 
 result=0
 case $1 in
     start)
         for dev in ${2:-$hdevs}
           do
-          uwb_rc=$(find $(dirname $(dirname $dev)) -iname uwb_rc:uwb*)
-          if cat $uwb_rc/uwb_rc/beacon | grep -q "channel: -1"
+          uwb_rc=$(readlink -f $dev/uwb_rc)
+          if cat $uwb_rc/beacon | grep -q -- "-1"
               then
-              echo 13 0 | cat > $uwb_rc/uwb_rc/beacon
-              echo I: started beaconing on ch 13 in host $(basename $uwb_rc)
+              echo 13 0 > $uwb_rc/beacon
+              echo I: started beaconing on ch 13 on $(basename $uwb_rc) >&2
           fi
-          echo $host_CHID | cat > $dev/wusb_chid
-          echo I: started host $(basename $dev)
+          echo $host_CHID > $dev/wusb_chid
+          echo I: started host $(basename $dev) >&2
+        done
+        ;;
+    stop)
+        for dev in ${2:-$hdevs}
+          do
+          echo 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > $dev/wusb_chid
+          echo I: stopped host $(basename $dev) >&2
+          uwb_rc=$(readlink -f $dev/uwb_rc)
+          echo -1 | cat > $uwb_rc/beacon
+          echo I: stopped beaconing on $(basename $uwb_rc) >&2
         done
         ;;
     set-chid)
         shift
-        for dev in ${2:-$devs}
-          do
-          echo "${2:-$host_CHID}" "${3:-$host_band_group}" "${4:-$host_name}" \
-              | cat > $dev/wusb_host_info
+        for dev in ${2:-$devs}; do
+            echo "${4:-$host_name}" > $dev/wusb_host_name
+            echo "${3:-$host_band_group}" > $dev/wusb_host_band_groups
+            echo ${2:-$host_CHID} > $dev/wusb_chid
         done
         ;;
     get-cdid)
@@ -105,21 +115,17 @@ case $1 in
         done
         ;;
     set-cc)
-        for dev in ${2:-$devs}
-          do
-          shift
-          CDID="$(head --bytes=16 /dev/urandom  | od -tx1 -An)"
-          CK="$(head --bytes=16 /dev/urandom  | od -tx1 -An)"
-          cat > $dev/wusb_cc <<EOF
-CDID:$CDID
-CK:$CK
-EOF
-          cat <<EOF
-I: CC set
-CHID: $host_CHID
-CDID:$CDID
-CK:  $CK
-EOF
+        for dev in ${2:-$devs}; do
+            shift
+            CDID="$(head --bytes=16 /dev/urandom  | od -tx1 -An)"
+            CK="$(head --bytes=16 /dev/urandom  | od -tx1 -An)"
+            echo "$CDID" > $dev/wusb_cdid
+            echo "$CK" > $dev/wusb_ck
+
+            echo I: CC set >&2
+            echo "CHID: $(cat $dev/wusb_chid)"
+            echo "CDID:$CDID"
+            echo "CK:  $CK"
         done
         ;;
     help|h|--help|-h)