[Pommed-commits] [SCM] pommed - hotkeys handler for Apple laptops branch, master, updated. 1.34-3-g709bc80

Julien BLACHE jb at jblache.org
Tue Oct 26 17:48:11 UTC 2010


The following commit has been merged in the master branch:
commit 709bc80d7a32a5cf33a433c756323357d5651bd2
Author: Julien BLACHE <jb at jblache.org>
Date:   Tue Oct 26 18:21:35 2010 +0200

    MacBook Air 11" & 13" (Core2 Duo, October 2010) support

diff --git a/ChangeLog b/ChangeLog
index 7b84018..c910213 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,6 +3,7 @@ ChangeLog for pommed
 
 version 1.35:
 	- pommed: fix crash if no fnmode sysfs node found.
+	- pommed: add support for the MacBookAir3,1 & 3,2 (October 2010).
 
 version 1.34:
 	- pommed: be more careful when invoking eject (Alioth #312213).
diff --git a/README b/README
index 0070007..98cb83a 100644
--- a/README
+++ b/README
@@ -34,6 +34,7 @@ Supported machines:
    * MacBook Core2 Duo Santa Rosa (November 2007)
    * MacBook Core2 Duo (February 2008, October 2008, October 2009)
    * MacBook Air Core2 Duo (January 2008, October 2008)
+   * MacBook Air Core2 Duo 11" & 13" (October 2010)
 
    If your MacBook Pro/MacBook Air/MacBook is not listed here, please contact us
    and include the content of /sys/class/dmi/id/product_name in your mail. Thanks.
diff --git a/pommed/evdev.c b/pommed/evdev.c
index 05bc109..0d2c2f3 100644
--- a/pommed/evdev.c
+++ b/pommed/evdev.c
@@ -605,6 +605,58 @@ evdev_is_wellspring3(unsigned short *id)
   return 0;
 }
 
+/* MacBookAir3,2 (October 2010) */
+static int
+evdev_is_wellspring4(unsigned short *id)
+{
+  unsigned short product = id[ID_PRODUCT];
+
+  if (id[ID_BUS] != BUS_USB)
+    return 0;
+
+  if (id[ID_VENDOR] != USB_VENDOR_ID_APPLE)
+    return 0;
+
+  if ((product == USB_PRODUCT_ID_WELLSPRING4_ANSI)
+      || (product == USB_PRODUCT_ID_WELLSPRING4_ISO)
+      || (product == USB_PRODUCT_ID_WELLSPRING4_JIS))
+    {
+      logdebug(" -> WellSpring IV USB assembly\n");
+
+      kbd_set_fnmode();
+
+      return 1;
+    }
+
+  return 0;
+}
+
+/* MacBookAir3,1 (October 2010) */
+static int
+evdev_is_wellspring4a(unsigned short *id)
+{
+  unsigned short product = id[ID_PRODUCT];
+
+  if (id[ID_BUS] != BUS_USB)
+    return 0;
+
+  if (id[ID_VENDOR] != USB_VENDOR_ID_APPLE)
+    return 0;
+
+  if ((product == USB_PRODUCT_ID_WELLSPRING4A_ANSI)
+      || (product == USB_PRODUCT_ID_WELLSPRING4A_ISO)
+      || (product == USB_PRODUCT_ID_WELLSPRING4A_JIS))
+    {
+      logdebug(" -> WellSpring IVa USB assembly\n");
+
+      kbd_set_fnmode();
+
+      return 1;
+    }
+
+  return 0;
+}
+
 /* Any internal keyboard */
 static int
 evdev_is_internal(unsigned short *id)
@@ -614,7 +666,9 @@ evdev_is_internal(unsigned short *id)
 	  || evdev_is_geyser4hf(id)
 	  || evdev_is_wellspring(id)
 	  || evdev_is_wellspring2(id)
-	  || evdev_is_wellspring3(id));
+	  || evdev_is_wellspring3(id)
+	  || evdev_is_wellspring4(id)
+	  || evdev_is_wellspring4a(id));
 }
 
 
diff --git a/pommed/evdev.h b/pommed/evdev.h
index 43ee863..4e081c8 100644
--- a/pommed/evdev.h
+++ b/pommed/evdev.h
@@ -62,6 +62,16 @@
 #define USB_PRODUCT_ID_WELLSPRING3_ISO    0x0237
 #define USB_PRODUCT_ID_WELLSPRING3_JIS    0x0238
 
+/* Apple WellSpring IV keyboard + trackpad */
+#define USB_PRODUCT_ID_WELLSPRING4_ANSI   0x023f
+#define USB_PRODUCT_ID_WELLSPRING4_ISO    0x0240
+#define USB_PRODUCT_ID_WELLSPRING4_JIS    0x0241
+
+/* Apple WellSpring IVa keyboard + trackpad */
+#define USB_PRODUCT_ID_WELLSPRING4A_ANSI  0x0242
+#define USB_PRODUCT_ID_WELLSPRING4A_ISO   0x0243
+#define USB_PRODUCT_ID_WELLSPRING4A_JIS   0x0244
+
 
 /* Apple external USB keyboard, white */
 #define USB_PRODUCT_ID_APPLE_EXTKBD_WHITE   0x020c
diff --git a/pommed/kbd_backlight.h b/pommed/kbd_backlight.h
index 6a737f4..8db909c 100644
--- a/pommed/kbd_backlight.h
+++ b/pommed/kbd_backlight.h
@@ -72,7 +72,8 @@ has_kbd_backlight(void)
 	  || (mops->type == MACHINE_MACBOOKPRO_7)
 	  || (mops->type == MACHINE_MACBOOK_5)
 	  || (mops->type == MACHINE_MACBOOKAIR_1)
-	  || (mops->type == MACHINE_MACBOOKAIR_2));
+	  || (mops->type == MACHINE_MACBOOKAIR_2)
+	  || (mops->type == MACHINE_MACBOOKAIR_3));
 }
 #endif /* __powerpc__ */
 
diff --git a/pommed/mactel/nv8600mgt_backlight.c b/pommed/mactel/nv8600mgt_backlight.c
index 5530251..83ffd61 100644
--- a/pommed/mactel/nv8600mgt_backlight.c
+++ b/pommed/mactel/nv8600mgt_backlight.c
@@ -193,6 +193,7 @@ nv8600mgt_backlight_probe(void)
       case MACHINE_MACBOOK_5:
       case MACHINE_MACBOOK_6:
       case MACHINE_MACBOOKAIR_2:
+      case MACHINE_MACBOOKAIR_3:
 	bl_port = 0x52e; /* 0x52e - 0x52f */
 	break;
 
diff --git a/pommed/pommed.c b/pommed/pommed.c
index 97ad7dc..e03eb90 100644
--- a/pommed/pommed.c
+++ b/pommed/pommed.c
@@ -370,6 +370,14 @@ struct machine_ops mb_mops[] = {
     .lcd_backlight_step = sysfs_backlight_step,
     .lcd_backlight_toggle = sysfs_backlight_toggle,
     /* .evdev_identify = evdev_is_wellspring3, */
+  },
+
+  {  /* MacBookAir3,1 & 3,2 (October 2010) */
+    .type = MACHINE_MACBOOKAIR_3,
+    .lcd_backlight_probe = mbp_sysfs_backlight_probe,
+    .lcd_backlight_step = sysfs_backlight_step,
+    .lcd_backlight_toggle = sysfs_backlight_toggle,
+    /* .evdev_identify = evdev_is_wellspring4a / evdev_is_wellspring4, */
   }
 };
 #endif /* __powerpc__ */
@@ -745,6 +753,9 @@ check_machine_dmi(void)
   /* MacBook Air (October 2008) */
   else if (strcmp(buf, "MacBookAir2,1") == 0)
     ret = MACHINE_MACBOOKAIR_2;
+  /* MacBook Air 11" & 13" (October 2010) */
+  else if ((strcmp(buf, "MacBookAir3,1") == 0) || (strcmp(buf, "MacBookAir3,2") == 0))
+    ret = MACHINE_MACBOOKAIR_3;
   else
     logmsg(LOG_ERR, "Unknown Apple machine: %s", buf);
 
diff --git a/pommed/pommed.h b/pommed/pommed.h
index 208348b..daeee95 100644
--- a/pommed/pommed.h
+++ b/pommed/pommed.h
@@ -47,6 +47,7 @@ typedef enum
 
     MACHINE_MACBOOKAIR_1,
     MACHINE_MACBOOKAIR_2,
+    MACHINE_MACBOOKAIR_3,
 #else
     MACHINE_POWERBOOK_32,
     MACHINE_POWERBOOK_33,
diff --git a/pommed/sysfs_backlight.c b/pommed/sysfs_backlight.c
index d56423e..f13aecc 100644
--- a/pommed/sysfs_backlight.c
+++ b/pommed/sysfs_backlight.c
@@ -430,6 +430,7 @@ mbp_sysfs_backlight_probe(void)
       case MACHINE_MACBOOK_5:
       case MACHINE_MACBOOK_6:
       case MACHINE_MACBOOKAIR_2:
+      case MACHINE_MACBOOKAIR_3:
 	logmsg(LOG_INFO, "sysfs backlight probe failed, falling back to nv8600mgt");
 
 	ret = nv8600mgt_backlight_probe();

-- 
pommed - hotkeys handler for Apple laptops



More information about the Pommed-commits mailing list