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>
This commit is contained in:
committed by
David Vrabel
parent
c8cf2465fc
commit
f1fa035f2b
@@ -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)
|
||||
|
Reference in New Issue
Block a user