[Pommed-commits] r531 - in trunk: . pommed

jblache at alioth.debian.org jblache at alioth.debian.org
Sun Dec 21 14:51:37 UTC 2008


Author: jblache
Date: 2008-12-21 14:51:36 +0000 (Sun, 21 Dec 2008)
New Revision: 531

Modified:
   trunk/ChangeLog
   trunk/pommed/pommed.c
   trunk/pommed/pommed.h
Log:
Add new path for fnmode setting for 2.6.28.


Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2008-12-11 15:01:27 UTC (rev 530)
+++ trunk/ChangeLog	2008-12-21 14:51:36 UTC (rev 531)
@@ -2,6 +2,7 @@
 --------------------
 
 version 1.24:
+	- pommed: add new path for fnmode setting for 2.6.28.
 
 version 1.23:
 	- pommed: add backlight support for late 2008 laptops.

Modified: trunk/pommed/pommed.c
===================================================================
--- trunk/pommed/pommed.c	2008-12-11 15:01:27 UTC (rev 530)
+++ trunk/pommed/pommed.c	2008-12-21 14:51:36 UTC (rev 531)
@@ -409,24 +409,31 @@
 void
 kbd_set_fnmode(void)
 {
-  int errno1;
+  char *fnmode_node[] =
+    {
+      "/sys/module/hid_apple/parameters/fnmode", /* 2.6.28 & up */
+      "/sys/module/hid/parameters/pb_fnmode",    /* 2.6.20 & up */
+      "/sys/module/usbhid/parameters/pb_fnmode"
+    };
   FILE *fp;
+  int i;
 
   if ((general_cfg.fnmode < 1) || (general_cfg.fnmode > 2))
     general_cfg.fnmode = 1;
 
-  fp = fopen(KBD_FNMODE_FILE, "a");
-  if (fp == NULL)
+  for (i = 0; i < sizeof(fnmode_node) / sizeof(*fnmode_node); i++)
     {
-      errno1 = errno;
+      logdebug("Trying %s\n", fnmode_node[i]);
 
-      fp = fopen(KBD_FNMODE_FILE2620, "a");
-      if (fp == NULL)
-        {
-          logmsg(LOG_INFO, "Could not open %s: %s", KBD_FNMODE_FILE, strerror(errno1));
-          logmsg(LOG_INFO, "Could not open %s: %s", KBD_FNMODE_FILE2620, strerror(errno));
-          return;
-        }
+      fp = fopen(fnmode_node[i], "a");
+      if (fp != NULL)
+	break;
+
+      if (errno == ENOENT)
+	continue;
+
+      logmsg(LOG_INFO, "Could not open %s: %s", fnmode_node[i], strerror(errno));
+      return;
     }
 
   fprintf(fp, "%d", general_cfg.fnmode);

Modified: trunk/pommed/pommed.h
===================================================================
--- trunk/pommed/pommed.h	2008-12-11 15:01:27 UTC (rev 530)
+++ trunk/pommed/pommed.h	2008-12-21 14:51:36 UTC (rev 531)
@@ -85,9 +85,6 @@
 #define PIDFILE                "/var/run/pommed.pid"
 #define CONFFILE               "/etc/pommed.conf"
 
-#define KBD_FNMODE_FILE        "/sys/module/usbhid/parameters/pb_fnmode"
-#define KBD_FNMODE_FILE2620    "/sys/module/hid/parameters/pb_fnmode"
-
 #define STEP_UP                 1
 #define STEP_DOWN               -1
 




More information about the Pommed-commits mailing list