summaryrefslogtreecommitdiffstats
path: root/meta/packages/apmd/apmd-3.2.2/zaurus24.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/packages/apmd/apmd-3.2.2/zaurus24.patch')
-rw-r--r--meta/packages/apmd/apmd-3.2.2/zaurus24.patch50
1 files changed, 50 insertions, 0 deletions
diff --git a/meta/packages/apmd/apmd-3.2.2/zaurus24.patch b/meta/packages/apmd/apmd-3.2.2/zaurus24.patch
new file mode 100644
index 0000000000..5df016ab77
--- /dev/null
+++ b/meta/packages/apmd/apmd-3.2.2/zaurus24.patch
@@ -0,0 +1,50 @@
1Index: apmd-3.2.2.orig/apm.c
2===================================================================
3--- apmd-3.2.2.orig.orig/apm.c 2006-01-26 15:15:27.000000000 +0100
4+++ apmd-3.2.2.orig/apm.c 2006-01-26 17:50:14.000000000 +0100
5@@ -24,10 +24,12 @@
6 #include <unistd.h>
7 #include <sys/types.h>
8 #include <sys/stat.h>
9+#include <sys/utsname.h>
10 #include <fcntl.h>
11 #include <errno.h>
12 #include <time.h>
13 #include <getopt.h>
14+#include <signal.h>
15 #include "apm.h"
16
17 static int verbose = 0;
18@@ -43,6 +45,9 @@
19 int fd;
20 time_t then, now;
21 int error;
22+ FILE* pid_file;
23+ int apmd_pid;
24+ struct utsname uname_ver;
25
26 fd = open(APM_DEVICE, O_WRONLY);
27 if (fd < 0)
28@@ -54,6 +59,22 @@
29 switch (mode)
30 {
31 case SUSPEND:
32+ if(0 == system("grep -i hardware /proc/cpuinfo|grep -i SHARP"))
33+ {
34+ uname(&uname_ver);
35+
36+ if(0 == strncmp("2.4", uname_ver.release, 3))
37+ {
38+ pid_file = fopen("/var/run/apmd.pid", "r");
39+ if(pid_file)
40+ {
41+ fscanf(pid_file, "%d", &apmd_pid);
42+ fclose(pid_file);
43+ }
44+
45+ kill(apmd_pid, SIGKILL);
46+ }
47+ }
48 error = apm_suspend(fd);
49 break;
50 case STANDBY: