[Pommed-commits] [SCM] pommed - hotkeys handler for Apple laptops branch, master, updated. 1.37-2-g05a7e34

Julien BLACHE jb at jblache.org
Sat Mar 12 09:55:28 UTC 2011


The following commit has been merged in the master branch:
commit 05a7e34ebe490a6d849dcb1cf1ea99a41e3ea379
Author: Julien BLACHE <jb at jblache.org>
Date:   Sat Mar 12 10:54:04 2011 +0100

    Add support for Early 2011 MacBook Pro
    
    Support for MacBookPro8,1 (13"), MacBookPro8,2 (15"), MacBookPro8,3 (17").
    
    Thanks to Chris Neugebauer <chrisjrn at gmail.com> and Andy Botting
    <andy at andybotting.com> for their reports.

diff --git a/ChangeLog b/ChangeLog
index 34bde70..e54d220 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,8 @@ ChangeLog for pommed
 --------------------
 
 version 1.38:
+	- pommed: add support for the Early 2011 MacBook Pro:
+	MacBookPro8,1 (13"), MacBookPro8,2 (15"), MacBookPro8,3 (17").
 
 version 1.37:
 	- pommed: fix oversight in applesmc probing change.
diff --git a/README b/README
index 0a96ff7..2584048 100644
--- a/README
+++ b/README
@@ -29,6 +29,7 @@ Supported machines:
    * MacBook Pro 13", 15", 17" (June 2009)
    * MacBook Pro Core i5/i7 15", 17" (April 2010)
    * MacBook Pro Core2 Duo 13" (April 2010)
+   * MacBook Pro Core i5/i7 13", 15", 17" (Early 2011)
    * MacBook Core Duo (May 2006)
    * MacBook Core2 Duo (November 2006 & May 2007)
    * MacBook Core2 Duo Santa Rosa (November 2007)
diff --git a/pommed/evdev.c b/pommed/evdev.c
index 330655a..7c9524b 100644
--- a/pommed/evdev.c
+++ b/pommed/evdev.c
@@ -662,6 +662,35 @@ evdev_is_wellspring4a(unsigned short *id)
   return 0;
 }
 
+/* MacBookPro8,1 (13" Early 2011)
+ * MacBookPro8,2 (15" Early 2011)
+ * MacBookPro8,3 (17" Early 2011)
+ */
+static int
+evdev_is_wellspring5(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_WELLSPRING5_ANSI)
+      || (product == USB_PRODUCT_ID_WELLSPRING5_ISO)
+      || (product == USB_PRODUCT_ID_WELLSPRING5_JIS))
+    {
+      logdebug(" -> WellSpring V USB assembly\n");
+
+      kbd_set_fnmode();
+
+      return 1;
+    }
+
+  return 0;
+}
+
 /* Any internal keyboard */
 static int
 evdev_is_internal(unsigned short *id)
@@ -673,7 +702,8 @@ evdev_is_internal(unsigned short *id)
 	  || evdev_is_wellspring2(id)
 	  || evdev_is_wellspring3(id)
 	  || evdev_is_wellspring4(id)
-	  || evdev_is_wellspring4a(id));
+	  || evdev_is_wellspring4a(id)
+	  || evdev_is_wellspring5(id));
 }
 
 
diff --git a/pommed/evdev.h b/pommed/evdev.h
index 80437b6..03676d6 100644
--- a/pommed/evdev.h
+++ b/pommed/evdev.h
@@ -73,6 +73,11 @@
 #define USB_PRODUCT_ID_WELLSPRING4A_ISO   0x0243
 #define USB_PRODUCT_ID_WELLSPRING4A_JIS   0x0244
 
+/* Apple WellSpring V keyboard + trackpad */
+#define USB_PRODUCT_ID_WELLSPRING5_ANSI   0x0245
+#define USB_PRODUCT_ID_WELLSPRING5_ISO    0x0246
+#define USB_PRODUCT_ID_WELLSPRING5_JIS    0x0247
+
 
 /* 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..0b40091 100644
--- a/pommed/kbd_backlight.h
+++ b/pommed/kbd_backlight.h
@@ -70,6 +70,7 @@ has_kbd_backlight(void)
 	  || (mops->type == MACHINE_MACBOOKPRO_5)
 	  || (mops->type == MACHINE_MACBOOKPRO_6)
 	  || (mops->type == MACHINE_MACBOOKPRO_7)
+	  || (mops->type == MACHINE_MACBOOKPRO_8)
 	  || (mops->type == MACHINE_MACBOOK_5)
 	  || (mops->type == MACHINE_MACBOOKAIR_1)
 	  || (mops->type == MACHINE_MACBOOKAIR_2));
diff --git a/pommed/pommed.c b/pommed/pommed.c
index b45113e..6916eec 100644
--- a/pommed/pommed.c
+++ b/pommed/pommed.c
@@ -304,6 +304,17 @@ struct machine_ops mb_mops[] = {
     /* .evdev_identify = evdev_is_wellspring3, */
   },
 
+  {  /* MacBookPro8,1 (13", Early 2011)
+      * MacBookPro8,2 (15", Early 2011)
+      * MacBookPro8,3 (17", Early 2011)
+      */
+    .type = MACHINE_MACBOOKPRO_8,
+    .lcd_backlight_probe = mbp_sysfs_backlight_probe,
+    .lcd_backlight_step = sysfs_backlight_step,
+    .lcd_backlight_toggle = sysfs_backlight_toggle,
+    /* .evdev_identify = evdev_is_wellspring5, */
+  },
+
   /* MacBook machines */
 
   {  /* MacBook1,1 (Core Duo) */
@@ -737,6 +748,14 @@ check_machine_dmi(void)
   /* Core2 Duo MacBook Pro 13" (April 2010) */
   else if (strcmp(buf, "MacBookPro7,1") == 0)
     ret = MACHINE_MACBOOKPRO_7;
+  /* MacBook Pro 13" (Early 2011)
+   * MacBook Pro 15" (Early 2011)
+   * MacBook Pro 17" (Early 2011)
+   */
+  else if ((strcmp(buf, "MacBookPro8,1") == 0)
+	   || (strcmp(buf, "MacBookPro8,2") == 0)
+	   || (strcmp(buf, "MacBookPro8,3") == 0))
+    ret = MACHINE_MACBOOKPRO_8;
   /* Core Duo MacBook (May 2006) */
   else if (strcmp(buf, "MacBook1,1") == 0)
     ret = MACHINE_MACBOOK_1;
diff --git a/pommed/pommed.h b/pommed/pommed.h
index cfc9564..3961a35 100644
--- a/pommed/pommed.h
+++ b/pommed/pommed.h
@@ -37,6 +37,7 @@ typedef enum
     MACHINE_MACBOOKPRO_5,
     MACHINE_MACBOOKPRO_6,
     MACHINE_MACBOOKPRO_7,
+    MACHINE_MACBOOKPRO_8,
 
     MACHINE_MACBOOK_1,
     MACHINE_MACBOOK_2,

-- 
pommed - hotkeys handler for Apple laptops



More information about the Pommed-commits mailing list