blob: 260b77822cedd53f50f7a7206411d0fd1763f2ce (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
#!/bin/ash
if [ -n "$FIRMWARE" ] && [ "$SUBSYSTEM" = "firmware" ] && [ -n "$DEVPATH" ] && [ -e "/sys/$DEVPATH/data" ]; then
echo "Kernel requests firmware $FIRMWARE" > "/dev/kmsg"
printf "1" > "/sys/$DEVPATH/loading"
if cat "/lib/firmware/$FIRMWARE" > "/sys/$DEVPATH/data" \
|| cat "/lib/firmware/$(uname -r)/$FIRMWARE" > "/sys/$DEVPATH/data"; then
printf "0" > "/sys/$DEVPATH/loading"
else
printf "%s" "-1" "/sys/$DEVPATH/loading"
fi
fi
[ "$ACTION" != "add" ] && exit 0
[ -z "$MODALIAS" ] && exit 0
[ "${MODALIAS:0:5}" != "pci:v" ] && exit 0 # Ignore everything but PCI devices
ID="${MODALIAS:9:4}:${MODALIAS:18:4}"
LINE="$( lspci -n | grep -oEi "[0-9]{4}: $ID" | cut -c1-2 )"
[ "$LINE" = "03" ] && exit 0 # Skip GFX, handled by other module
modprobe "$MODALIAS"
|