[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