1#!/bin/sh -e
2
3FIRMWARE_DIRS="/lib/firmware /usr/local/lib/firmware"
4
5err() {
6    echo "$@" >&2
7    if [ -x /bin/logger ]; then
8	/bin/logger -t "${0##*/}[$$]" "$@"
9    fi
10}
11
12if [ ! -e /sys$DEVPATH/loading ]; then
13    err "udev firmware loader misses sysfs directory"
14    exit 1
15fi
16
17for DIR in $FIRMWARE_DIRS; do
18    [ -e "$DIR/$FIRMWARE" ] || continue
19    echo 1 > /sys$DEVPATH/loading
20    cat "$DIR/$FIRMWARE" > /sys$DEVPATH/data
21    echo 0 > /sys$DEVPATH/loading
22    exit 0
23done
24
25echo -1 > /sys$DEVPATH/loading
26err "Cannot find  firmware file '$FIRMWARE'"
27exit 1
28