branch Attitude Adjustment packages
[12.09/packages.git] / utils / pcmciautils / files / etc / hotplug.d / pcmcia / pcmcia.agent
1 #!/bin/sh
2 # Copyright (C) 2008 OpenWrt.org
3
4 case "$ACTION" in
5         add)
6                 SYSFS=/sys/bus/pcmcia/devices/
7                 DEVPATH=$SOCKET_NO.$((0x$DEVICE_NO))
8
9                 # check whether the CIS is completely broken
10                 if [ ! -h $SYSFS$DEVPATH/driver ]; then
11                         CISFILE=$(/usr/sbin/pcmcia-check-broken-cis $SOCKET_NO)
12                         echo PCMCIA: $CISFILE;
13                         if [ ! -z $CISFILE ]; then
14                                 if [ -f /lib/firmware/$CISFILE ]; then
15                                         cat /lib/firmware/$CISFILE > $SYSFS/class/pcmcia_socket/pcmcia_socket$(SOCKET_NO)/cis
16                                 fi;
17                         fi;
18                 fi;
19
20                 # allow a match solely based on the "function ID" field
21                 if [ ! -h $SYSFS$DEVPATH/driver ]; then
22                         if [ -w $SYSFS$DEVPATH/allow_func_id_match ]; then
23                                 echo PCMCIA: allowing func_id based match for PCMCIA device $SOCKET_NO.$DEVICE_NO
24                                 echo -n "42" > $SYSFS$DEVPATH/allow_func_id_match;
25                         fi;
26                 fi;
27                 ;;
28 esac