[Pommed-commits] r524 - trunk/pommed

jblache at alioth.debian.org jblache at alioth.debian.org
Thu Dec 11 14:07:26 UTC 2008


Author: jblache
Date: 2008-12-11 14:07:26 +0000 (Thu, 11 Dec 2008)
New Revision: 524

Modified:
   trunk/pommed/pommed.c
   trunk/pommed/sysfs_backlight.c
Log:
Wire up nv8600mgt backlight driver for late 2008 laptops.


Modified: trunk/pommed/pommed.c
===================================================================
--- trunk/pommed/pommed.c	2008-12-11 14:04:24 UTC (rev 523)
+++ trunk/pommed/pommed.c	2008-12-11 14:07:26 UTC (rev 524)
@@ -242,25 +242,6 @@
 
 #else
 
-int
-dummy_backlight_probe(void)
-{
-  return 0;
-}
-
-void
-dummy_backlight_step(int dir)
-{
-  return;
-}
-
-void
-dummy_backlight_toggle(int lvl)
-{
-  return;
-}
-
-
 struct machine_ops mb_mops[] = {
   /* MacBook Pro machines */
 
@@ -298,9 +279,9 @@
 
   {  /* MacBookPro5,1 (15" & 17", Core2 Duo, October 2008) */
     .type = MACHINE_MACBOOKPRO_5,
-    .lcd_backlight_probe = dummy_backlight_probe,
-    .lcd_backlight_step = dummy_backlight_step,
-    .lcd_backlight_toggle = dummy_backlight_toggle,
+    .lcd_backlight_probe = nv8600mgt_backlight_probe,
+    .lcd_backlight_step = nv8600mgt_backlight_step,
+    .lcd_backlight_toggle = nv8600mgt_backlight_toggle,
     /* .evdev_identify = evdev_is_wellspring3, */
   },
 
@@ -340,9 +321,9 @@
 
   {  /* MacBook5,1 (Core2 Duo, October 2008) */
     .type = MACHINE_MACBOOK_5,
-    .lcd_backlight_probe = dummy_backlight_probe,
-    .lcd_backlight_step = dummy_backlight_step,
-    .lcd_backlight_toggle = dummy_backlight_toggle,
+    .lcd_backlight_probe = nv8600mgt_backlight_probe,
+    .lcd_backlight_step = nv8600mgt_backlight_step,
+    .lcd_backlight_toggle = nv8600mgt_backlight_toggle,
     /* .evdev_identify = evdev_is_wellspring3, */
   },
 
@@ -358,9 +339,9 @@
 
   {  /* MacBookAir2,1 (October 2008) */
     .type = MACHINE_MACBOOKAIR_2,
-    .lcd_backlight_probe = dummy_backlight_probe,
-    .lcd_backlight_step = dummy_backlight_step,
-    .lcd_backlight_toggle = dummy_backlight_toggle,
+    .lcd_backlight_probe = nv8600mgt_backlight_probe,
+    .lcd_backlight_step = nv8600mgt_backlight_step,
+    .lcd_backlight_toggle = nv8600mgt_backlight_toggle,
     /* .evdev_identify = evdev_is_wellspring3, */
   }
 };

Modified: trunk/pommed/sysfs_backlight.c
===================================================================
--- trunk/pommed/sysfs_backlight.c	2008-12-11 14:04:24 UTC (rev 523)
+++ trunk/pommed/sysfs_backlight.c	2008-12-11 14:07:26 UTC (rev 524)
@@ -36,10 +36,16 @@
 #include "dbus.h"
 
 
-#define SYSFS_DRIVER_NONE      0
-#define SYSFS_DRIVER_ATY128    1
-#define SYSFS_DRIVER_RADEON    2
-#define SYSFS_DRIVER_NVIDIA    3
+enum {
+  SYSFS_DRIVER_NONE,
+#ifdef __powerpc__
+  SYSFS_DRIVER_ATY128,
+  SYSFS_DRIVER_RADEON,
+  SYSFS_DRIVER_NVIDIA,
+#else
+  SYSFS_DRIVER_MBP,
+#endif
+};
 
 
 /* sysfs backlight driver in use */
@@ -49,27 +55,39 @@
 static char *actual_brightness[] =
   {
     "/dev/null",
+#ifdef __powerpc__
     "/sys/class/backlight/aty128bl0/actual_brightness",
     "/sys/class/backlight/radeonbl0/actual_brightness",
-    "/sys/class/backlight/nvidiabl0/actual_brightness"
+    "/sys/class/backlight/nvidiabl0/actual_brightness",
+#else
+    "/sys/class/backlight/mbp_backlight/actual_brightness",
+#endif
   };
 
 /* sysfs brightness node path */
 static char *brightness[] =
   {
     "/dev/null",
+#ifdef __powerpc__
     "/sys/class/backlight/aty128bl0/brightness",
     "/sys/class/backlight/radeonbl0/brightness",
-    "/sys/class/backlight/nvidiabl0/brightness"
+    "/sys/class/backlight/nvidiabl0/brightness",
+#else
+    "/sys/class/backlight/mbp_backlight/brightness",
+#endif
   };
 
 /* sysfs max_brightness node path */
 static char *max_brightness[] =
   {
     "/dev/null",
+#ifdef __powerpc__
     "/sys/class/backlight/aty128bl0/max_brightness",
     "/sys/class/backlight/radeonbl0/max_brightness",
-    "/sys/class/backlight/nvidiabl0/max_brightness"
+    "/sys/class/backlight/nvidiabl0/max_brightness",
+#else
+    "/sys/class/backlight/mbp_backlight/max_brightness",
+#endif
   };
 
 
@@ -232,6 +250,7 @@
 }
 
 
+#ifdef __powerpc__
 /* When brightness keys are handled by the kernel itself,
  * we're only updating our internal buffers
  */
@@ -254,6 +273,7 @@
 {
   return;
 }
+#endif /* __powerpc__ */
 
 
 /* We can't fix the config until we know the max backlight value,
@@ -324,6 +344,8 @@
   return 0;
 }
 
+
+#ifdef __powerpc__
 int
 aty128_sysfs_backlight_probe(void)
 {
@@ -341,3 +363,32 @@
 {
   return sysfs_backlight_probe(SYSFS_DRIVER_NVIDIA);
 }
+#else
+int
+mbp_sysfs_backlight_probe(void)
+{
+  int ret;
+
+  ret = sysfs_backlight_probe(SYSFS_DRIVER_MBP);
+
+  if (ret < 0)
+    {
+      switch (mops->type)
+	{
+	  case MACHINE_MACBOOKPRO_3:
+	  case MACHINE_MACBOOKPRO_4:
+	  case MACHINE_MACBOOKPRO_5:
+	  case MACHINE_MACBOOK_5:
+	  case MACHINE_MACBOOKAIR_2:
+	    logmsg(LOG_INFO, "sysfs backlight probe failed, falling back to native");
+	    return zobe;
+
+	default:
+	  logmsg(LOG_ERR, "sysfs backlight probe failed, no fallback for this machine");
+	  return -1;
+	}
+    }
+
+  return 0;
+}
+#endif




More information about the Pommed-commits mailing list