summaryrefslogtreecommitdiff
path: root/packages/mdev/mdev-1.2.1
diff options
context:
space:
mode:
Diffstat (limited to 'packages/mdev/mdev-1.2.1')
-rw-r--r--packages/mdev/mdev-1.2.1/firmware14
-rw-r--r--packages/mdev/mdev-1.2.1/mdevfirmware.patch20
-rw-r--r--packages/mdev/mdev-1.2.1/slugos/loadmicrocode.sh29
-rw-r--r--packages/mdev/mdev-1.2.1/slugos/mdev.conf2
4 files changed, 35 insertions, 30 deletions
diff --git a/packages/mdev/mdev-1.2.1/firmware b/packages/mdev/mdev-1.2.1/firmware
new file mode 100644
index 0000000000..c88d3fbe22
--- /dev/null
+++ b/packages/mdev/mdev-1.2.1/firmware
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+firmwaredir=/lib/firmware
+
+if test "$SUBSYSTEM" = "firmware" -a "$ACTION" = "add"; then
+ if test -f $firmwaredir/$FIRMWARE; then
+ echo 1 > /sys/$DEVPATH/loading
+ cat $firmwaredir/$FIRMWARE > /sys/$DEVPATH/data
+ echo 0 > /sys/$DEVPATH/loading
+ else
+ echo -1 > /sys/$DEVPATH/loading
+ fi
+fi
+
diff --git a/packages/mdev/mdev-1.2.1/mdevfirmware.patch b/packages/mdev/mdev-1.2.1/mdevfirmware.patch
new file mode 100644
index 0000000000..8dae2a9921
--- /dev/null
+++ b/packages/mdev/mdev-1.2.1/mdevfirmware.patch
@@ -0,0 +1,20 @@
+--- busybox-1.2.1/util-linux/mdev.c.orig 2006-07-01 00:42:13.000000000 +0200
++++ busybox-1.2.1/util-linux/mdev.c 2006-09-26 17:42:38.414162744 +0200
+@@ -255,7 +255,16 @@
+ bb_show_usage();
+
+ sprintf(temp, "/sys%s", env_path);
+- if (!strcmp(action, "add")) make_device(temp,0);
++ if (!strcmp(action, "add")) {
++ struct stat st;
++ make_device(temp,0);
++ sprintf(temp, "/lib/mdev/%s", getenv("SUBSYSTEM"));
++ if (stat(temp, &st) == 0) {
++ if ((st.st_mode & S_IXUSR) && S_ISREG(st.st_mode)) {
++ system(temp);
++ }
++ }
++ }
+ else if (!strcmp(action, "remove")) make_device(temp,1);
+ }
+
diff --git a/packages/mdev/mdev-1.2.1/slugos/loadmicrocode.sh b/packages/mdev/mdev-1.2.1/slugos/loadmicrocode.sh
deleted file mode 100644
index ad1a9e7a44..0000000000
--- a/packages/mdev/mdev-1.2.1/slugos/loadmicrocode.sh
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/sh
-
-# Manual firmware loading with firmware_class
-# Reason: Because I can (or because mdev doesn't support firmware loading)
-# Trigger: Creation of the /dev/ixp4xx_ucode device (this is hacky too, unfortunately)
-
-sleep 1
-
-# Cancel NPE-A microcode upload
-echo -1 > /sys/class/firmware/ixp4xx_npe.0/loading
-
-sleep 1
-
-# Test for NPE-B presence
-
-if test -f /lib/firmware/NPE-B; then
- # Upload NPE-B microcode
- echo 1 > /sys/class/firmware/ixp4xx_npe.1/loading
- cat /lib/firmware/NPE-B > /sys/class/firmware/ixp4xx_npe.1/data
- echo 0 > /sys/class/firmware/ixp4xx_npe.1/loading
-else
- # Cancel NPE-B microcode upload
- echo -1 > /sys/class/firmware/ixp4xx_npe.1/loading
-fi
-
-sleep 1
-
-# Cancel NPE-C microcode upload
-echo -1 > /sys/class/firmware/ixp4xx_npe.2/loading
diff --git a/packages/mdev/mdev-1.2.1/slugos/mdev.conf b/packages/mdev/mdev-1.2.1/slugos/mdev.conf
index eaf77e64d7..751663e53e 100644
--- a/packages/mdev/mdev-1.2.1/slugos/mdev.conf
+++ b/packages/mdev/mdev-1.2.1/slugos/mdev.conf
@@ -9,4 +9,4 @@ ptmx 0:5 666
tty 0:5 0660
ttyS* 0:20 640
event0 0:0 660 @ln -sf /dev/event0 /dev/buzzer
-ixp4xx_ucode root:root 600 @/lib/mdev/loadmicrocode.sh \ No newline at end of file
+ixp4xx_ucode root:root 600