summaryrefslogtreecommitdiffstats
path: root/Documentation/usb
diff options
context:
space:
mode:
authorFelipe Zimmerle <felipe.zimmerle@indt.org.br>2008-09-17 16:34:42 +0100
committerDavid Vrabel <dv02@dv02pc01.europe.root.pri>2008-09-17 16:54:35 +0100
commitf1fa035f2bcb2b03cb90249e05ec2ae6927a7302 (patch)
tree410e7355c919c8c9384b9a3db497f83ca46170a9 /Documentation/usb
parentc8cf2465fcfc16877f4f9e8dccc6b89b543fa2c5 (diff)
downloadlinux-f1fa035f2bcb2b03cb90249e05ec2ae6927a7302.tar.bz2
wusb: wusb-cbaf (CBA driver) sysfs ABI simplification
Simplify the sysfs ABI of the wusb-cbaf (Cable Based Association) driver: use one value per file and cause the write of the CHID to fetch the CDID (instead of requiring a separate read). Update the example wusb-cbaf script to work with this revised ABI. Signed-off-by: Felipe Zimmerle <felipe.zimmerle@indt.org.br> Signed-off-by: David Vrabel <david.vrabel@csr.com>
Diffstat (limited to 'Documentation/usb')
-rw-r--r--Documentation/usb/wusb-cbaf60
1 files changed, 33 insertions, 27 deletions
diff --git a/Documentation/usb/wusb-cbaf b/Documentation/usb/wusb-cbaf
index a385478ba12e..2e78b70f3adc 100644
--- a/Documentation/usb/wusb-cbaf
+++ b/Documentation/usb/wusb-cbaf
@@ -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)