]> pilppa.org Git - familiar-h63xx-build.git/blob - org.handhelds.familiar/packages/linux-hotplug/files/sleeve.agent
OE tree imported from monotone branch org.openembedded.oz354fam083 at revision 8b12e3...
[familiar-h63xx-build.git] / org.handhelds.familiar / packages / linux-hotplug / files / sleeve.agent
1 #!/bin/sh
2 #
3 # H3600 Sleeve hotplug policy agent for Linux 2.4 kernels
4 #
5 # Kernel NET hotplug params include:
6 #       
7 #       ACTION=%s [add or remove]
8 #       VENDOR_ID=%s
9 #       DEVICE_ID=%x
10 #       DEVICE_NAME=%s
11 #
12
13 . /etc/hotplug/hotplug.functions
14 #DEBUG=yes export DEBUG
15
16 if [ "$DEBUG" != "" ]; then
17     mesg "Executing $0 action=$ACTION, device=$DEVICE_NAME ($VENDOR_ID,$DEVICE_ID)"
18 fi
19
20 COMPACTFLASH_TIMING_INCREMENT=0
21 PCMCIA_TIMING_INCREMENT=0
22 DUAL_PCMCIA_TIMING_INCREMENT=0
23 NAVMAN_TIMING_INCREMENT=0
24 BACKPAQ_TIMING_INCREMENT=-100
25
26 if [ -f /etc/sysconfig/hotplug ] ; then
27     . /etc/sysconfig/hotplug
28 fi
29
30 case $ACTION in
31 add)
32     case $DEVICE_NAME in 
33     "Compaq Mercury Backpaq")
34         mkdir -p /backpaq
35         echo $BACKPAQ_TIMING_INCREMENT > /proc/sys/backpaq/pcmcia/timing_increment_ns
36         ## mount -t jffs2 /dev/mtdblock/4 /backpaq
37         modprobe h3600_backpaq_fpga || mesg 'could not load backpaq fpga driver'
38         modprobe h3600_backpaq_camera || mesg 'could not load backpaq camera driver'
39         if [ -c /dev/v4l/video0 ] ; then
40             ln -s /dev/v4l/video0 /dev/video0
41             ln -s /dev/v4l/video0 /dev/video
42         fi
43         CAMERATYPE=`/bin/grep "CameraType" /proc/backpaq/camera | /bin/sed -e 's/.*: //'`
44         BACKPAQ_NUMBER=`/bin/grep "Major revision" /proc/backpaq/eeprom | /bin/sed -e 's/.*0x//'`
45         FPGA_NUMBER=`/bin/grep "FPGA version" /proc/backpaq/eeprom | /bin/sed -e 's/.*0x//'`
46         CAMERA_NUMBER=`/bin/grep "Camera" /proc/backpaq/eeprom | /bin/sed -e 's/.*0x//'`
47         
48         echo "CAMERA_TYPE = $CAMERATYPE"
49         echo "BACKPAQ_NUMBER = $BACKPAQ_NUMBER"
50         echo "FPGA_NUMBER = $FPGA_NUMBER"
51         echo "CAMERA_NUMBER = $CAMERA_NUMBER"
52         echo "looking for file: /etc/fpga_B${BACKPAQ_NUMBER}_F${FPGA_NUMBER}_C${CAMERA_NUMBER}.bin"
53         if [ -e /etc/fpga_B${BACKPAQ_NUMBER}_F${FPGA_NUMBER}_C${CAMERA_NUMBER}.bin ] ; then
54                     cat /etc/fpga_B${BACKPAQ_NUMBER}_F${FPGA_NUMBER}_C${CAMERA_NUMBER}.bin > /dev/backpaq/fpga
55         elif [ -e /etc/fpga_$CAMERATYPE.bin ] ; then
56             cat /etc/fpga_$CAMERATYPE.bin > /dev/backpaq/fpga
57         elif [ -e /etc/fpga.bin ] ; then
58             cat /etc/fpga.bin > /dev/backpaq/fpga
59         else
60             mesg 'unable to program the backpaq fpga'
61         fi
62         modprobe h3600_backpaq_accel || mesg 'could not load backpaq accelerometer driver'
63         mesg 'BackPAQ drivers loaded'
64         ;;
65     "Compaq CompactFlash Sleeve")
66         mesg 'CompactFlash drivers loaded'
67         echo $COMPACTFLASH_TIMING_INCREMENT > /proc/sys/bus/pcmcia/timing_increment_ns
68         ;;
69     "Compaq PC Card Sleeve")
70         mesg 'PC card sleeve drivers loaded'
71         echo $PCMCIA_TIMING_INCREMENT > /proc/sys/bus/pcmcia/timing_increment_ns
72         ;;
73     "Compaq Dual PC Card Sleeve")
74         mesg 'Dual PC card sleeve drivers loaded'
75         echo $DUAL_PCMCIA_TIMING_INCREMENT > /proc/sys/bus/pcmcia/timing_increment_ns
76         ;;
77     "Navman GPS/CF Sleeve")
78         mesg 'Navman GPS sleeve drivers loaded'
79         echo $NAVMAN_TIMING_INCREMENT > /proc/sys/bus/pcmcia/timing_increment_ns
80         start-stop-daemon --start --exec /usr/sbin/gpsd.bin -- -p /dev/tts/0 -s 57600
81         ;;
82     *)
83         mesg "$1 $ACTION event not handled for $DEVICE_NAME"
84         ;;
85     esac
86     ;;
87
88 remove)
89     case $DEVICE_NAME in 
90     "Compaq Mercury Backpaq")
91         mesg 'Unloading BackPAQ drivers'
92         ## umount /backpaq
93         rmmod h3600_backpaq_camera
94         rmmod h3600_backpaq_accel
95         rmmod h3600_backpaq_fpga
96         ;;
97     "Compaq CompactFlash Sleeve")
98         mesg 'Unloading CompactFlash sleeve'
99         ;;
100     "Compaq PC Card Sleeve")
101         mesg 'Unloading PC Card sleeve'
102         ;;
103     "Compaq Dual PC Card Sleeve")
104         mesg 'Unloading Dual PC Card sleeve'
105         ;;
106     "Navman GPS/CF Sleeve")
107         mesg 'Unloading Navman GPS sleeve'
108         start-stop-daemon --stop --name gpsd.bin
109         ;;
110     *)
111         mesg $1 $ACTION event not handled for $DEVICE_NAME
112         ;;
113     esac
114     ;;
115
116 *)
117     mesg "$1 $ACTION event not supported"
118     exit 1 ;;
119
120 esac