diff options
-rw-r--r-- | main/linux-vanilla/0001-HID-apple-fix-Fn-key-Magic-Keyboard-on-bluetooth.patch | 67 | ||||
-rw-r--r-- | main/linux-vanilla/APKBUILD | 6 |
2 files changed, 71 insertions, 2 deletions
diff --git a/main/linux-vanilla/0001-HID-apple-fix-Fn-key-Magic-Keyboard-on-bluetooth.patch b/main/linux-vanilla/0001-HID-apple-fix-Fn-key-Magic-Keyboard-on-bluetooth.patch new file mode 100644 index 0000000000..ec2a1dd2c5 --- /dev/null +++ b/main/linux-vanilla/0001-HID-apple-fix-Fn-key-Magic-Keyboard-on-bluetooth.patch @@ -0,0 +1,67 @@ +From 0a802b5595bc6769a8984ad83662204db79c5e31 Mon Sep 17 00:00:00 2001 +From: Natanael Copa <ncopa@alpinelinux.org> +Date: Mon, 4 Sep 2017 19:44:18 +0000 +Subject: [PATCH] HID: apple: fix Fn key Magic Keyboard on bluetooth + +The vendor id is 0x004c, when Magic Keyboard is connected via bluetooth. +This appears to be the bluetooth fendor id for Apple. + +We also need to check against HID_UP_MSVENDOR to get the Fn key working +properly. + +Signed-off-by: Natanael Copa <ncopa@alpinelinux.org> +--- + drivers/hid/hid-apple.c | 4 +++- + drivers/hid/hid-core.c | 1 + + drivers/hid/hid-ids.h | 1 + + 3 files changed, 5 insertions(+), 1 deletion(-) + +diff --git a/drivers/hid/hid-apple.c b/drivers/hid/hid-apple.c +index 25b7bd56ae11..c79dbf836925 100644 +--- a/drivers/hid/hid-apple.c ++++ b/drivers/hid/hid-apple.c +@@ -335,7 +335,7 @@ static int apple_input_mapping(struct hid_device *hdev, struct hid_input *hi, + struct hid_field *field, struct hid_usage *usage, + unsigned long **bit, int *max) + { +- if (usage->hid == (HID_UP_CUSTOM | 0x0003)) { ++ if (usage->hid == (HID_UP_CUSTOM | 0x0003) || usage->hid == (HID_UP_MSVENDOR | 0x0003)) { + /* The fn key on Apple USB keyboards */ + set_bit(EV_REP, hi->input->evbit); + hid_map_usage_clear(hi, usage, bit, max, EV_KEY, KEY_FN); +@@ -472,6 +472,8 @@ static const struct hid_device_id apple_devices[] = { + .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN }, + { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_ANSI), + .driver_data = APPLE_HAS_FN }, ++ { HID_BLUETOOTH_DEVICE(BLUETOOTH_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_ANSI), ++ .driver_data = APPLE_HAS_FN }, + { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING_ANSI), + .driver_data = APPLE_HAS_FN }, + { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING_ISO), +diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c +index 9017dcc14502..36e43986f415 100644 +--- a/drivers/hid/hid-core.c ++++ b/drivers/hid/hid-core.c +@@ -1964,6 +1964,7 @@ static const struct hid_device_id hid_have_special_driver[] = { + { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_ISO) }, + { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_JIS) }, + { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_ANSI) }, ++ { HID_BLUETOOTH_DEVICE(BLUETOOTH_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_ANSI) }, + { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY) }, + { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY) }, + #endif +diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h +index c9ba4c6db74c..3f654444c011 100644 +--- a/drivers/hid/hid-ids.h ++++ b/drivers/hid/hid-ids.h +@@ -85,6 +85,7 @@ + #define USB_DEVICE_ID_ANTON_TOUCH_PAD 0x3101 + + #define USB_VENDOR_ID_APPLE 0x05ac ++#define BLUETOOTH_VENDOR_ID_APPLE 0x004c + #define USB_DEVICE_ID_APPLE_MIGHTYMOUSE 0x0304 + #define USB_DEVICE_ID_APPLE_MAGICMOUSE 0x030d + #define USB_DEVICE_ID_APPLE_MAGICTRACKPAD 0x030e +-- +2.14.1 + diff --git a/main/linux-vanilla/APKBUILD b/main/linux-vanilla/APKBUILD index 205d39861f..2789132a61 100644 --- a/main/linux-vanilla/APKBUILD +++ b/main/linux-vanilla/APKBUILD @@ -2,7 +2,7 @@ _flavor=vanilla pkgname=linux-${_flavor} -pkgver=4.9.44 +pkgver=4.9.47 case $pkgver in *.*.*) _kernver=${pkgver%.*};; *.*) _kernver=$pkgver;; @@ -16,6 +16,7 @@ options="!strip" _config=${config:-config-vanilla.${CARCH}} install= source="https://cdn.kernel.org/pub/linux/kernel/v${pkgver%%.*}.x/linux-$_kernver.tar.xz + 0001-HID-apple-fix-Fn-key-Magic-Keyboard-on-bluetooth.patch config-vanilla.aarch64 config-vanilla.armhf config-vanilla.x86 @@ -172,6 +173,7 @@ dev() { } sha512sums="bf67ff812cc3cb7e5059e82cc5db0d9a7c5637f7ed9a42e4730c715bf7047c81ed3a571225f92a33ef0b6d65f35595bc32d773356646df2627da55e9bc7f1f1a linux-4.9.tar.xz +5373728be2b507c3db5e042e1d768740df7965078868afdc46418b1adc4cae3d8f9f1aedb59975a0f2acf8754340499354fcf97c503397a5d9886ccc9689b782 0001-HID-apple-fix-Fn-key-Magic-Keyboard-on-bluetooth.patch 2716c39e6254afabc24d9334c98e80a4d59f929adae01093c8bf841bc5dd6e9c4a5c945e2f655f722041dc2fbb94efef1d9b07fc11d6736e6813f27ed5a5e809 config-vanilla.aarch64 6a5a40e15cb1a1cd7d4e1f83be82dd66b762126313f6d1f95444684e2b3a2d7de539fa915cc0d800d53c74c5b0624bbd0003e21d3c636e13900f7028be8ed9ac config-vanilla.armhf 30c585d679b96571149ecf80c66a074059923c191cc9eebbca8cbcdff98e08b354cff954354723f2ff5db23166ce947bce5b0c4c47bd439b3e7840057cab08ac config-vanilla.x86 @@ -179,4 +181,4 @@ sha512sums="bf67ff812cc3cb7e5059e82cc5db0d9a7c5637f7ed9a42e4730c715bf7047c81ed3a ee565e219530bcfaf5cade2622432cfb83743bdbbfc388781901461f19ca553b7fdee3c81ce6b34225ef78a209eb60088630284fcbb0430947aad77a5d8a0865 config-vanilla.ppc 899df65a70300273a05c6a7ba1c17a8d51cf44487bf200c9be63f95edc3620330e33f66cc381820ff73481fc847136a181cb0f10aa8291e7001d6df47981f7d2 config-vanilla.ppc64le 040ded4603acd7d72227b8ea648876118f647d5750331c68419f057def3da4e751a13e8d73ae6d2f040e8a2eedd128415d9cf75420c1e3d5314910d11c705d95 config-vanilla.s390x -4f5d055f002e23e6d91b78c300048d346933c06839d1bf8dea40d5f4e240ae6864a1baddb4218661af857843a8d2567e8f888a31f0f0ac08d50e427aecb779ae patch-4.9.44.xz" +1444676c9bdff6133191db4885fb6ddfb989e355c7f16ddc42ff1ed9415917f06c8147cd69346525624da8547204a68303d5002417b40e11c0174341f55cfc09 patch-4.9.47.xz" |