core/pommed/apple-keyboard-ids.patch
2013-11-14 00:45:22 +00:00

183 lines
4.3 KiB
Diff

Description: Add product IDs for new Apple keyboards
Author: Thibaut Paumard <thibaut@debian.org>
Origin: vendor
Last-Update: 2013-07-19
---
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
--- a/pommed/evdev.c
+++ b/pommed/evdev.c
@@ -686,6 +686,134 @@
return 0;
}
+/* MacBookPro9,1 (15" June 2012)
+ * MacBookPro9,2 (13" June 2012)
+ */
+static int
+evdev_is_wellspring5a(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_WELLSPRING5A_ANSI)
+ || (product == USB_PRODUCT_ID_WELLSPRING5A_ISO)
+ || (product == USB_PRODUCT_ID_WELLSPRING5A_JIS))
+ {
+ logdebug(" -> WellSpring VA USB assembly\n");
+
+ kbd_set_fnmode();
+
+ return 1;
+ }
+
+ return 0;
+}
+
+static int
+evdev_is_wellspring6(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_WELLSPRING6_ANSI)
+ || (product == USB_PRODUCT_ID_WELLSPRING6_ISO)
+ || (product == USB_PRODUCT_ID_WELLSPRING6_JIS))
+ {
+ logdebug(" -> WellSpring VI USB assembly\n");
+
+ kbd_set_fnmode();
+
+ return 1;
+ }
+
+ return 0;
+}
+
+static int
+evdev_is_wellspring6a(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_WELLSPRING6A_ANSI)
+ || (product == USB_PRODUCT_ID_WELLSPRING6A_ISO)
+ || (product == USB_PRODUCT_ID_WELLSPRING6A_JIS))
+ {
+ logdebug(" -> WellSpring VIA USB assembly\n");
+
+ kbd_set_fnmode();
+
+ return 1;
+ }
+
+ return 0;
+}
+
+static int
+evdev_is_wellspring7(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_WELLSPRING7_ANSI)
+ || (product == USB_PRODUCT_ID_WELLSPRING7_ISO)
+ || (product == USB_PRODUCT_ID_WELLSPRING7_JIS))
+ {
+ logdebug(" -> WellSpring VII USB assembly\n");
+
+ kbd_set_fnmode();
+
+ return 1;
+ }
+
+ return 0;
+}
+
+static int
+evdev_is_wellspring7a(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_WELLSPRING7A_ANSI)
+ || (product == USB_PRODUCT_ID_WELLSPRING7A_ISO)
+ || (product == USB_PRODUCT_ID_WELLSPRING7A_JIS))
+ {
+ logdebug(" -> WellSpring VIIA USB assembly\n");
+
+ kbd_set_fnmode();
+
+ return 1;
+ }
+
+ return 0;
+}
+
/* Any internal keyboard */
static int
evdev_is_internal(unsigned short *id)
@@ -698,7 +826,12 @@
|| evdev_is_wellspring3(id)
|| evdev_is_wellspring4(id)
|| evdev_is_wellspring4a(id)
- || evdev_is_wellspring5(id));
+ || evdev_is_wellspring5(id)
+ || evdev_is_wellspring5a(id)
+ || evdev_is_wellspring6(id)
+ || evdev_is_wellspring6a(id)
+ || evdev_is_wellspring7(id)
+ || evdev_is_wellspring7a(id));
}
--- a/pommed/evdev.h
+++ b/pommed/evdev.h
@@ -78,6 +78,22 @@
#define USB_PRODUCT_ID_WELLSPRING5_ISO 0x0246
#define USB_PRODUCT_ID_WELLSPRING5_JIS 0x0247
+/* Apple WellSpring VA to VII keyboard + trackpad */
+#define USB_PRODUCT_ID_WELLSPRING5A_ANSI 0x0252
+#define USB_PRODUCT_ID_WELLSPRING5A_ISO 0x0253
+#define USB_PRODUCT_ID_WELLSPRING5A_JIS 0x0254
+#define USB_PRODUCT_ID_WELLSPRING7A_ANSI 0x0259
+#define USB_PRODUCT_ID_WELLSPRING7A_ISO 0x025a
+#define USB_PRODUCT_ID_WELLSPRING7A_JIS 0x025b
+#define USB_PRODUCT_ID_WELLSPRING6A_ANSI 0x0249
+#define USB_PRODUCT_ID_WELLSPRING6A_ISO 0x024a
+#define USB_PRODUCT_ID_WELLSPRING6A_JIS 0x024b
+#define USB_PRODUCT_ID_WELLSPRING6_ANSI 0x024c
+#define USB_PRODUCT_ID_WELLSPRING6_ISO 0x024d
+#define USB_PRODUCT_ID_WELLSPRING6_JIS 0x024e
+#define USB_PRODUCT_ID_WELLSPRING7_ANSI 0x0262
+#define USB_PRODUCT_ID_WELLSPRING7_ISO 0x0263
+#define USB_PRODUCT_ID_WELLSPRING7_JIS 0x0264
/* Apple external USB keyboard, white */
#define USB_PRODUCT_ID_APPLE_EXTKBD_WHITE 0x020c