mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-29 13:46:49 +00:00
Merge pull request #2317 from MilhouseVH/linux4145+
linux: update to linux-4.14.10
This commit is contained in:
commit
e1b1596ade
@ -17,8 +17,8 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="crazycat"
|
PKG_NAME="crazycat"
|
||||||
PKG_VERSION="2017-11-13"
|
PKG_VERSION="2017-12-06"
|
||||||
PKG_SHA256="14d951eb8d40cee40d601d7c737bca07171d8b4f201d63d5e70a24c4841f9d73"
|
PKG_SHA256="779c7d42e5fd4dfac8f53654ce8af467d22a81b6c0b21e24f14aaaed033c6eb1"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="GPL"
|
PKG_LICENSE="GPL"
|
||||||
PKG_SITE="https://github.com/crazycat69/linux_media"
|
PKG_SITE="https://github.com/crazycat69/linux_media"
|
||||||
|
@ -47,8 +47,8 @@ case "$LINUX" in
|
|||||||
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET aml-dtbtools:host"
|
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET aml-dtbtools:host"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
PKG_VERSION="4.14.4"
|
PKG_VERSION="4.14.10"
|
||||||
PKG_SHA256="2a91bff790da9a27e392469f7cc65ae7380e4204fc118be28ec799eb87e6a79e"
|
PKG_SHA256="86baf1374ca003bdd9a43cae7f59cec02b455a6c38c3705aa46b2b68d91ed110"
|
||||||
PKG_URL="https://www.kernel.org/pub/linux/kernel/v4.x/$PKG_NAME-$PKG_VERSION.tar.xz"
|
PKG_URL="https://www.kernel.org/pub/linux/kernel/v4.x/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||||
PKG_PATCH_DIRS="default"
|
PKG_PATCH_DIRS="default"
|
||||||
;;
|
;;
|
||||||
|
@ -1,16 +0,0 @@
|
|||||||
# see https://github.com/wongsyrone/openwrt-1/commit/93c0a5173414cfa7684547de3c3a1f3dc4240383
|
|
||||||
# and https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65932
|
|
||||||
|
|
||||||
diff -Naur linux-4.3-rc5.orig/arch/arm/Makefile linux-4.3-rc5/arch/arm/Makefile
|
|
||||||
--- linux-4.3-rc5.orig/arch/arm/Makefile 2015-10-11 11:09:45.000000000 -0700
|
|
||||||
+++ linux-4.3-rc5/arch/arm/Makefile 2015-10-20 12:24:44.507102957 -0700
|
|
||||||
@@ -130,7 +130,8 @@
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Need -Uarm for gcc < 3.x
|
|
||||||
-KBUILD_CFLAGS +=$(CFLAGS_ABI) $(CFLAGS_ISA) $(arch-y) $(tune-y) $(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,)) -msoft-float -Uarm
|
|
||||||
+# Maybe we need -fno-ipa-sra for gcc > 4.9.x
|
|
||||||
+KBUILD_CFLAGS +=$(CFLAGS_ABI) $(CFLAGS_ISA) $(arch-y) $(tune-y) $(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,)) -msoft-float -Uarm -fno-ipa-sra
|
|
||||||
KBUILD_AFLAGS +=$(CFLAGS_ABI) $(AFLAGS_ISA) $(arch-y) $(tune-y) -include asm/unified.h -msoft-float
|
|
||||||
|
|
||||||
CHECKFLAGS += -D__arm__
|
|
@ -1,338 +0,0 @@
|
|||||||
From 6824d53bd503580226fbea3d9d78b32cab56ae42 Mon Sep 17 00:00:00 2001
|
|
||||||
From: MilhouseVH <milhouseVH.github@nmacleod.com>
|
|
||||||
Date: Mon, 19 Jun 2017 19:51:27 +0100
|
|
||||||
Subject: [PATCH] OUYA controller support
|
|
||||||
|
|
||||||
---
|
|
||||||
drivers/hid/Kconfig | 6 ++
|
|
||||||
drivers/hid/Makefile | 1 +
|
|
||||||
drivers/hid/hid-core.c | 1 +
|
|
||||||
drivers/hid/hid-ids.h | 3 +
|
|
||||||
drivers/hid/hid-ouya.c | 260 +++++++++++++++++++++++++++++++++++++++++++++++++
|
|
||||||
5 files changed, 271 insertions(+)
|
|
||||||
create mode 100644 drivers/hid/hid-ouya.c
|
|
||||||
|
|
||||||
diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig
|
|
||||||
index 687705c..84500fd 100644
|
|
||||||
--- a/drivers/hid/Kconfig
|
|
||||||
+++ b/drivers/hid/Kconfig
|
|
||||||
@@ -625,6 +625,12 @@ config HID_ORTEK
|
|
||||||
- Ortek WKB-2000
|
|
||||||
- Skycable wireless presenter
|
|
||||||
|
|
||||||
+config HID_OUYA
|
|
||||||
+ tristate "OUYA Game Controller"
|
|
||||||
+ depends on USB_HID
|
|
||||||
+ ---help---
|
|
||||||
+ Support for OUYA Game Controller.
|
|
||||||
+
|
|
||||||
config HID_PANTHERLORD
|
|
||||||
tristate "Pantherlord/GreenAsia game controller"
|
|
||||||
depends on HID
|
|
||||||
diff --git a/drivers/hid/Makefile b/drivers/hid/Makefile
|
|
||||||
index fef027b..4e22940 100644
|
|
||||||
--- a/drivers/hid/Makefile
|
|
||||||
+++ b/drivers/hid/Makefile
|
|
||||||
@@ -66,6 +66,7 @@ obj-$(CONFIG_HID_MULTITOUCH) += hid-multitouch.o
|
|
||||||
obj-$(CONFIG_HID_NTI) += hid-nti.o
|
|
||||||
obj-$(CONFIG_HID_NTRIG) += hid-ntrig.o
|
|
||||||
obj-$(CONFIG_HID_ORTEK) += hid-ortek.o
|
|
||||||
+obj-$(CONFIG_HID_OUYA) += hid-ouya.o
|
|
||||||
obj-$(CONFIG_HID_PRODIKEYS) += hid-prodikeys.o
|
|
||||||
obj-$(CONFIG_HID_PANTHERLORD) += hid-pl.o
|
|
||||||
obj-$(CONFIG_HID_PENMOUNT) += hid-penmount.o
|
|
||||||
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
|
|
||||||
index 6e04069..32bcb50 100644
|
|
||||||
--- a/drivers/hid/hid-core.c
|
|
||||||
+++ b/drivers/hid/hid-core.c
|
|
||||||
@@ -2290,6 +2290,7 @@ static const struct hid_device_id hid_have_special_driver[] = {
|
|
||||||
#if IS_ENABLED(CONFIG_HID_ZYDACRON)
|
|
||||||
{ HID_USB_DEVICE(USB_VENDOR_ID_ZYDACRON, USB_DEVICE_ID_ZYDACRON_REMOTE_CONTROL) },
|
|
||||||
#endif
|
|
||||||
+ { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_OUYA, USB_DEVICE_ID_OUYA_CONTROLLER) },
|
|
||||||
{ }
|
|
||||||
};
|
|
||||||
|
|
||||||
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
|
|
||||||
index 8ca1e8c..f3cd724 100644
|
|
||||||
--- a/drivers/hid/hid-ids.h
|
|
||||||
+++ b/drivers/hid/hid-ids.h
|
|
||||||
@@ -813,6 +813,9 @@
|
|
||||||
#define USB_DEVICE_ID_ORTEK_PKB1700 0x1700
|
|
||||||
#define USB_DEVICE_ID_ORTEK_WKB2000 0x2000
|
|
||||||
|
|
||||||
+#define USB_VENDOR_ID_OUYA 0x2836
|
|
||||||
+#define USB_DEVICE_ID_OUYA_CONTROLLER 0x0001
|
|
||||||
+
|
|
||||||
#define USB_VENDOR_ID_PLANTRONICS 0x047f
|
|
||||||
|
|
||||||
#define USB_VENDOR_ID_PANASONIC 0x04da
|
|
||||||
diff --git a/drivers/hid/hid-ouya.c b/drivers/hid/hid-ouya.c
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..7792c23
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/drivers/hid/hid-ouya.c
|
|
||||||
@@ -0,0 +1,260 @@
|
|
||||||
+/*
|
|
||||||
+ * HID driver for OUYA Game Controller(s)
|
|
||||||
+ *
|
|
||||||
+ * Copyright (c) 2013 OUYA
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+#include <linux/device.h>
|
|
||||||
+#include <linux/input.h>
|
|
||||||
+#include <linux/hid.h>
|
|
||||||
+#include <linux/module.h>
|
|
||||||
+
|
|
||||||
+#include "hid-ids.h"
|
|
||||||
+
|
|
||||||
+#define OUYA_TOUCHPAD_FIXUP (1 << 0)
|
|
||||||
+
|
|
||||||
+struct ouya_sc {
|
|
||||||
+ unsigned long quirks;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+/* Fixed report descriptor */
|
|
||||||
+static __u8 ouya_rdesc_fixed[] = {
|
|
||||||
+
|
|
||||||
+ 0x05, 0x01, /* Usage Page (Desktop), */
|
|
||||||
+ 0x09, 0x05, /* Usage (Game Pad), */
|
|
||||||
+
|
|
||||||
+ 0xA1, 0x01, /* Collection (Application), */
|
|
||||||
+ 0x85, 0x07, /* Report ID (7), */
|
|
||||||
+
|
|
||||||
+ 0xA1, 0x00, /* Collection (Physical), */
|
|
||||||
+ 0x09, 0x30, /* Usage (X), */
|
|
||||||
+ 0x09, 0x31, /* Usage (Y), */
|
|
||||||
+ 0x15, 0x00, /* Logical Minimum (0), */
|
|
||||||
+ 0x26, 0xFF, 0x00, /* Logical Maximum (255), */
|
|
||||||
+ 0x35, 0x00, /* Physical Minimum (0), */
|
|
||||||
+ 0x46, 0xFF, 0x00, /* Physical Maximum (255), */
|
|
||||||
+ 0x95, 0x02, /* Report Count (2), */
|
|
||||||
+ 0x75, 0x08, /* Report Size (8), */
|
|
||||||
+ 0x81, 0x02, /* Input (Variable), */
|
|
||||||
+ 0xC0, /* End Collection, */
|
|
||||||
+
|
|
||||||
+ 0xA1, 0x00, /* Collection (Physical), */
|
|
||||||
+ 0x09, 0x33, /* Usage (Rx), */
|
|
||||||
+ 0x09, 0x34, /* Usage (Ry), */
|
|
||||||
+ 0x15, 0x00, /* Logical Minimum (0), */
|
|
||||||
+ 0x26, 0xFF, 0x00, /* Logical Maximum (255), */
|
|
||||||
+ 0x35, 0x00, /* Physical Minimum (0), */
|
|
||||||
+ 0x46, 0xFF, 0x00, /* Physical Maximum (255), */
|
|
||||||
+ 0x95, 0x02, /* Report Count (2), */
|
|
||||||
+ 0x75, 0x08, /* Report Size (8), */
|
|
||||||
+ 0x81, 0x02, /* Input (Variable), */
|
|
||||||
+ 0xC0, /* End Collection, */
|
|
||||||
+
|
|
||||||
+ 0xA1, 0x00, /* Collection (Physical), */
|
|
||||||
+ 0x09, 0x32, /* Usage (Z), */
|
|
||||||
+ 0x15, 0x00, /* Logical Minimum (0), */
|
|
||||||
+ 0x26, 0xFF, 0x00, /* Logical Maximum (255), */
|
|
||||||
+ 0x35, 0x00, /* Physical Minimum (0), */
|
|
||||||
+ 0x46, 0xFF, 0x00, /* Physical Maximum (255), */
|
|
||||||
+ 0x95, 0x01, /* Report Count (1), */
|
|
||||||
+ 0x75, 0x08, /* Report Size (8), */
|
|
||||||
+ 0x81, 0x02, /* Input (Variable), */
|
|
||||||
+ 0xC0, /* End Collection, */
|
|
||||||
+
|
|
||||||
+ 0xA1, 0x00, /* Collection (Physical), */
|
|
||||||
+ 0x09, 0x35, /* Usage (Rz), */
|
|
||||||
+ 0x15, 0x00, /* Logical Minimum (0), */
|
|
||||||
+ 0x26, 0xFF, 0x00, /* Logical Maximum (255), */
|
|
||||||
+ 0x35, 0x00, /* Physical Minimum (0), */
|
|
||||||
+ 0x46, 0xFF, 0x00, /* Physical Maximum (255), */
|
|
||||||
+ 0x95, 0x01, /* Report Count (1), */
|
|
||||||
+ 0x75, 0x08, /* Report Size (8), */
|
|
||||||
+ 0x81, 0x02, /* Input (Variable), */
|
|
||||||
+ 0xC0, /* End Collection, */
|
|
||||||
+
|
|
||||||
+ 0x05, 0x09, /* Usage Page (Button), */
|
|
||||||
+ 0x19, 0x01, /* Usage Minimum (01h), */
|
|
||||||
+ 0x29, 0x10, /* Usage Maximum (10h), */
|
|
||||||
+ 0x95, 0x10, /* Report Count (16), */
|
|
||||||
+ 0x75, 0x01, /* Report Size (1), */
|
|
||||||
+ 0x81, 0x02, /* Input (Variable), */
|
|
||||||
+
|
|
||||||
+ /* ORIGINAL REPORT DESCRIPTOR FOR TOUCHPAD INPUT */
|
|
||||||
+ /* 06 00 ff a1 02 09 02 15 00 26 ff 00 35 00 46 ff 00 95 03 75 08 81 02 c0 */
|
|
||||||
+
|
|
||||||
+ 0x06, 0x00, 0xFF, /* Usage Page (Custom), */
|
|
||||||
+ 0x09, 0x02, /* Usage (Mouse), */
|
|
||||||
+ 0x09, 0x01, /* Usage (Pointer), */
|
|
||||||
+ 0xA1, 0x00, /* Collection (Physical), */
|
|
||||||
+ 0x05, 0x09, /* Usage Page (Button), */
|
|
||||||
+ 0x19, 0x01, /* Usage Minimum (01h), */
|
|
||||||
+ 0x29, 0x03, /* Usage Maximum (03h), */
|
|
||||||
+ 0x15, 0x00, /* Logical Minimum (0), */
|
|
||||||
+ 0x25, 0x01, /* Logical Maximum (1), */
|
|
||||||
+ 0x95, 0x03, /* Report Count (3), */
|
|
||||||
+ 0x75, 0x01, /* Report Size (1), */
|
|
||||||
+ 0x81, 0x02, /* Input (Variable), */
|
|
||||||
+ 0x95, 0x01, /* Report Count (1), */
|
|
||||||
+ 0x75, 0x05, /* Report Size (5), */
|
|
||||||
+ 0x81, 0x01, /* Input (Constant), */
|
|
||||||
+ 0x05, 0x01, /* Usage Page (Desktop), */
|
|
||||||
+ 0x09, 0x30, /* Usage (X), */
|
|
||||||
+ 0x09, 0x31, /* Usage (Y), */
|
|
||||||
+ 0x15, 0x81, /* Logical Minimum (-127), */
|
|
||||||
+ 0x25, 0x7f, /* Logical Maximum (127), */
|
|
||||||
+ 0x95, 0x02, /* Report Count (2), */
|
|
||||||
+ 0x75, 0x08, /* Report Size (8), */
|
|
||||||
+ 0x81, 0x06, /* Input (Relative), */
|
|
||||||
+ 0xC0, /* End Collection, */
|
|
||||||
+
|
|
||||||
+ 0x06, 0x00, 0xFF, /* Usage Page (Custom), */
|
|
||||||
+ 0xA1, 0x02, /* Collection (Logical), */
|
|
||||||
+ 0x75, 0x08, /* Report Size (8), */
|
|
||||||
+ 0x95, 0x07, /* Report Count (7), */
|
|
||||||
+ 0x46, 0xFF, 0x00, /* Physical Maximum (255), */
|
|
||||||
+ 0x26, 0xFF, 0x00, /* Logical Maximum (255), */
|
|
||||||
+ 0x09, 0x01, /* Usage (Pointer), */
|
|
||||||
+ 0x91, 0x02, /* Output (Variable), */
|
|
||||||
+ 0xC0, /* End Collection, */
|
|
||||||
+
|
|
||||||
+ 0xC0, /* End Collection */
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+ 0x06, 0x00, 0xFF, /* Usage Page (Custom), */
|
|
||||||
+ 0x05, 0x0C, /* Usage Page (Consumer), */
|
|
||||||
+ 0x09, 0x01, /* Usage (Consumer Control), */
|
|
||||||
+
|
|
||||||
+ 0xA1, 0x01, /* Collection (Application), */
|
|
||||||
+ 0x85, 0x03, /* Report ID (3), */
|
|
||||||
+ 0x05, 0x01, /* Usage Page (Desktop), */
|
|
||||||
+ 0x09, 0x06, /* Usage (Keyboard), */
|
|
||||||
+ 0xA1, 0x02, /* Collection (Logical), */
|
|
||||||
+ 0x05, 0x06, /* Usage Page (Generic), */
|
|
||||||
+ 0x09, 0x20, /* Usage (Battery Strgth), */
|
|
||||||
+ 0x15, 0x00, /* Logical Minimum (0), */
|
|
||||||
+ 0x26, 0xFF, 0x00, /* Logical Maximum (255), */
|
|
||||||
+ 0x75, 0x08, /* Report Size (8), */
|
|
||||||
+ 0x95, 0x01, /* Report Count (1), */
|
|
||||||
+ 0x81, 0x02, /* Input (Variable), */
|
|
||||||
+ 0x06, 0xBC, 0xFF, /* Usage Page (Custom), */
|
|
||||||
+
|
|
||||||
+ 0x0A, 0xAD, 0xBD, /* UNKNOWN */
|
|
||||||
+
|
|
||||||
+ 0x75, 0x08, /* Report Size (8), */
|
|
||||||
+ 0x95, 0x06, /* Report Count (6), */
|
|
||||||
+ 0x81, 0x02, /* Input (Variable), */
|
|
||||||
+ 0xC0, /* End Collection, */
|
|
||||||
+
|
|
||||||
+ 0xC0, /* End Collection */
|
|
||||||
+
|
|
||||||
+ 0x00
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+static __u8 *ouya_report_fixup(struct hid_device *hdev, __u8 *rdesc,
|
|
||||||
+ unsigned int *rsize)
|
|
||||||
+{
|
|
||||||
+ struct ouya_sc *sc = hid_get_drvdata(hdev);
|
|
||||||
+
|
|
||||||
+ if (sc->quirks & OUYA_TOUCHPAD_FIXUP) {
|
|
||||||
+ rdesc = ouya_rdesc_fixed;
|
|
||||||
+ *rsize = sizeof(ouya_rdesc_fixed);
|
|
||||||
+ }
|
|
||||||
+ return rdesc;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int ouya_input_mapping(struct hid_device *hdev, struct hid_input *hi,
|
|
||||||
+ struct hid_field *field, struct hid_usage *usage,
|
|
||||||
+ unsigned long **bit, int *max)
|
|
||||||
+{
|
|
||||||
+ struct ouya_sc *sc = hid_get_drvdata(hdev);
|
|
||||||
+
|
|
||||||
+ if (!(sc->quirks & OUYA_TOUCHPAD_FIXUP)) {
|
|
||||||
+ return 0;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if ((usage->hid & 0x90000) == 0x90000 &&
|
|
||||||
+ (field->physical & 0xff000000) == 0xff000000 &&
|
|
||||||
+ usage->collection_index == 5 &&
|
|
||||||
+ field->report_count == 3) {
|
|
||||||
+
|
|
||||||
+ hid_map_usage(hi, usage, bit, max, EV_KEY, BTN_MOUSE + (usage->hid - 0x90001));
|
|
||||||
+
|
|
||||||
+ return 1;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int ouya_probe(struct hid_device *hdev, const struct hid_device_id *id)
|
|
||||||
+{
|
|
||||||
+ int ret;
|
|
||||||
+ struct ouya_sc *sc;
|
|
||||||
+
|
|
||||||
+ sc = kzalloc(sizeof(*sc), GFP_KERNEL);
|
|
||||||
+ if (sc == NULL) {
|
|
||||||
+ hid_err(hdev, "can't alloc ouya descriptor\n");
|
|
||||||
+ return -ENOMEM;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if(((hdev->version & 0xff00) == 0x0100 && (hdev->version & 0xff) >= 0x04) ||
|
|
||||||
+ ((hdev->version & 0xff00) == 0xe100 && (hdev->version & 0xff) >= 0x3a)) {
|
|
||||||
+ hid_info(hdev, "ouya controller - new version\n");
|
|
||||||
+ sc->quirks = OUYA_TOUCHPAD_FIXUP;
|
|
||||||
+ } else {
|
|
||||||
+ sc->quirks = 0;
|
|
||||||
+ }
|
|
||||||
+ hid_set_drvdata(hdev, sc);
|
|
||||||
+
|
|
||||||
+ ret = hid_parse(hdev);
|
|
||||||
+ if (ret) {
|
|
||||||
+ hid_err(hdev, "parse failed\n");
|
|
||||||
+ goto err_free;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ ret = hid_hw_start(hdev, HID_CONNECT_DEFAULT |
|
|
||||||
+ HID_CONNECT_HIDDEV_FORCE);
|
|
||||||
+ if (ret) {
|
|
||||||
+ hid_err(hdev, "hw start failed\n");
|
|
||||||
+ goto err_free;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return 0;
|
|
||||||
+
|
|
||||||
+err_free:
|
|
||||||
+ kfree(sc);
|
|
||||||
+ return ret;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static void ouya_remove(struct hid_device *hdev)
|
|
||||||
+{
|
|
||||||
+ hid_hw_stop(hdev);
|
|
||||||
+ kfree(hid_get_drvdata(hdev));
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static const struct hid_device_id ouya_devices[] = {
|
|
||||||
+ { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_OUYA, USB_DEVICE_ID_OUYA_CONTROLLER) },
|
|
||||||
+ { }
|
|
||||||
+};
|
|
||||||
+MODULE_DEVICE_TABLE(hid, ouya_devices);
|
|
||||||
+
|
|
||||||
+static struct hid_driver ouya_driver = {
|
|
||||||
+ .name = "ouya",
|
|
||||||
+ .id_table = ouya_devices,
|
|
||||||
+ .probe = ouya_probe,
|
|
||||||
+ .remove = ouya_remove,
|
|
||||||
+ .input_mapping = ouya_input_mapping,
|
|
||||||
+ .report_fixup = ouya_report_fixup
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+static int __init ouya_init(void)
|
|
||||||
+{
|
|
||||||
+ return hid_register_driver(&ouya_driver);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static void __exit ouya_exit(void)
|
|
||||||
+{
|
|
||||||
+ hid_unregister_driver(&ouya_driver);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+module_init(ouya_init);
|
|
||||||
+module_exit(ouya_exit);
|
|
||||||
--
|
|
||||||
2.7.4
|
|
||||||
|
|
@ -46,9 +46,9 @@ index 32bcb50..11985b4 100644
|
|||||||
--- a/drivers/hid/hid-core.c
|
--- a/drivers/hid/hid-core.c
|
||||||
+++ b/drivers/hid/hid-core.c
|
+++ b/drivers/hid/hid-core.c
|
||||||
@@ -2291,6 +2291,10 @@ static const struct hid_device_id hid_have_special_driver[] = {
|
@@ -2291,6 +2291,10 @@ static const struct hid_device_id hid_have_special_driver[] = {
|
||||||
|
#if IS_ENABLED(CONFIG_HID_ZYDACRON)
|
||||||
{ HID_USB_DEVICE(USB_VENDOR_ID_ZYDACRON, USB_DEVICE_ID_ZYDACRON_REMOTE_CONTROL) },
|
{ HID_USB_DEVICE(USB_VENDOR_ID_ZYDACRON, USB_DEVICE_ID_ZYDACRON_REMOTE_CONTROL) },
|
||||||
#endif
|
#endif
|
||||||
{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_OUYA, USB_DEVICE_ID_OUYA_CONTROLLER) },
|
|
||||||
+ { HID_USB_DEVICE(USB_VENDOR_ID_PHILIPS, USB_DEVICE_ID_PHILIPS_SPINEL_PLUS_1) },
|
+ { HID_USB_DEVICE(USB_VENDOR_ID_PHILIPS, USB_DEVICE_ID_PHILIPS_SPINEL_PLUS_1) },
|
||||||
+ { HID_USB_DEVICE(USB_VENDOR_ID_PHILIPS, USB_DEVICE_ID_PHILIPS_SPINEL_PLUS_2) },
|
+ { HID_USB_DEVICE(USB_VENDOR_ID_PHILIPS, USB_DEVICE_ID_PHILIPS_SPINEL_PLUS_2) },
|
||||||
+ { HID_USB_DEVICE(USB_VENDOR_ID_PHILIPS, USB_DEVICE_ID_PHILIPS_SPINEL_PLUS_3) },
|
+ { HID_USB_DEVICE(USB_VENDOR_ID_PHILIPS, USB_DEVICE_ID_PHILIPS_SPINEL_PLUS_3) },
|
||||||
|
@ -1,12 +0,0 @@
|
|||||||
diff -Naur linux-3.0/drivers/media/rc/nuvoton-cir.c linux-3.0.patch/drivers/media/rc/nuvoton-cir.c
|
|
||||||
--- linux-3.0/drivers/media/rc/nuvoton-cir.c 2011-07-22 04:17:23.000000000 +0200
|
|
||||||
+++ linux-3.0.patch/drivers/media/rc/nuvoton-cir.c 2011-07-22 21:30:48.374591146 +0200
|
|
||||||
@@ -1110,7 +1110,7 @@
|
|
||||||
rdev->dev.parent = &pdev->dev;
|
|
||||||
rdev->driver_name = NVT_DRIVER_NAME;
|
|
||||||
rdev->map_name = RC_MAP_RC6_MCE;
|
|
||||||
- rdev->timeout = MS_TO_NS(100);
|
|
||||||
+ rdev->timeout = US_TO_NS(1000);
|
|
||||||
/* rx resolution is hardwired to 50us atm, 1, 25, 100 also possible */
|
|
||||||
rdev->rx_resolution = US_TO_NS(CIR_SAMPLE_PERIOD);
|
|
||||||
#if 0
|
|
@ -1,203 +0,0 @@
|
|||||||
From patchwork Sun Nov 19 21:57:27 2017
|
|
||||||
Content-Type: text/plain; charset="utf-8"
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Transfer-Encoding: 7bit
|
|
||||||
Subject: media: rc: double keypresses due to timeout expiring to early
|
|
||||||
From: Sean Young <sean@mess.org>
|
|
||||||
X-Patchwork-Id: 45516
|
|
||||||
Message-Id: <20171119215727.slnzxumlun5lh6ae@gofer.mess.org>
|
|
||||||
X-Patchwork-Delegate: sean@mess.org
|
|
||||||
To: Matthias Reichl <hias@horus.com>,
|
|
||||||
Mauro Carvalho Chehab <mchehab@kernel.org>,
|
|
||||||
linux-media@vger.kernel.org, linux-kernel@vger.kernel.org
|
|
||||||
Date: Sun, 19 Nov 2017 21:57:27 +0000
|
|
||||||
|
|
||||||
On Fri, Nov 17, 2017 at 03:52:50PM +0100, Matthias Reichl wrote:
|
|
||||||
> Hi Sean!
|
|
||||||
>
|
|
||||||
> On Thu, Nov 16, 2017 at 09:54:51PM +0000, Sean Young wrote:
|
|
||||||
> > Since commit d57ea877af38 ("media: rc: per-protocol repeat period"),
|
|
||||||
> > double keypresses are reported on the ite-cir driver. This is due
|
|
||||||
> > two factors: that commit reduced the timeout used for some protocols
|
|
||||||
> > (it became protocol dependant) and the high default IR timeout used
|
|
||||||
> > by the ite-cir driver.
|
|
||||||
> >
|
|
||||||
> > Some of the IR decoders wait for a trailing space, as that is
|
|
||||||
> > the only way to know if the bit stream has ended (e.g. rc-6 can be
|
|
||||||
> > 16, 20 or 32 bits). The longer the IR timeout, the longer it will take
|
|
||||||
> > to receive the trailing space, delaying decoding and pushing it past the
|
|
||||||
> > keyup timeout.
|
|
||||||
> >
|
|
||||||
> > So, add the IR timeout to the keyup timeout.
|
|
||||||
>
|
|
||||||
> Thanks a lot for the patch, I've asked the people with ite-cir
|
|
||||||
> receivers to test it.
|
|
||||||
>
|
|
||||||
> In the meanwhile I ran some tests with gpio-ir-recv and timeout
|
|
||||||
> set to 200ms with a rc-5 remote (that's as close to the original
|
|
||||||
> setup as I can test right now).
|
|
||||||
>
|
|
||||||
> While the patch fixes the additional key down/up event on longer
|
|
||||||
> presses, I still get a repeated key event on a short button
|
|
||||||
> press - which makes it hard to do a single click with the
|
|
||||||
> remote.
|
|
||||||
|
|
||||||
Yes, I've started to notice that too.
|
|
||||||
|
|
||||||
> Test on kernel 4.14 with your patch:
|
|
||||||
> 1510927844.292126: event type EV_MSC(0x04): scancode = 0x1015
|
|
||||||
> 1510927844.292126: event type EV_KEY(0x01) key_down: KEY_ENTER(0x001c)
|
|
||||||
> 1510927844.292126: event type EV_SYN(0x00).
|
|
||||||
> 1510927844.498773: event type EV_MSC(0x04): scancode = 0x1015
|
|
||||||
> 1510927844.498773: event type EV_SYN(0x00).
|
|
||||||
> 1510927844.795410: event type EV_KEY(0x01) key_down: KEY_ENTER(0x001c)
|
|
||||||
> 1510927844.795410: event type EV_SYN(0x00).
|
|
||||||
> 1510927844.875412: event type EV_KEY(0x01) key_up: KEY_ENTER(0x001c)
|
|
||||||
> 1510927844.875412: event type EV_SYN(0x00).
|
|
||||||
|
|
||||||
There is 875 - 498 = 378ms, which is 200ms IR timeout + 164ms protocol
|
|
||||||
repeat. This is so long that the repeat delay expired, and that's
|
|
||||||
where the second keydown comes from.
|
|
||||||
|
|
||||||
> Same signal received on kernel 4.9:
|
|
||||||
> 1510927844.280350: event type EV_MSC(0x04): scancode = 0x1015
|
|
||||||
> 1510927844.280350: event type EV_KEY(0x01) key_down: KEY_OK(0x0160)
|
|
||||||
> 1510927844.280350: event type EV_SYN(0x00).
|
|
||||||
> 1510927844.506477: event type EV_MSC(0x04): scancode = 0x1015
|
|
||||||
> 1510927844.506477: event type EV_SYN(0x00).
|
|
||||||
> 1510927844.763111: event type EV_KEY(0x01) key_up: KEY_OK(0x0160)
|
|
||||||
> 1510927844.763111: event type EV_SYN(0x00).
|
|
||||||
|
|
||||||
There it is simply 763 - 506 = 250ms.
|
|
||||||
|
|
||||||
> If I understand it correctly it's the input layer repeat (500ms delay)
|
|
||||||
> kicking in, because time between initial scancode and timeout is
|
|
||||||
> now signal time + 200ms + 164ms + 200ms (about 570-580ms).
|
|
||||||
> On older kernels this was signal time + 200ms + 250ms, so typically
|
|
||||||
> just below the 500ms default repeat delay.
|
|
||||||
>
|
|
||||||
> I'm still trying to wrap my head around the timeout code in the
|
|
||||||
> rc layer. One problem seems to be that we apply the rather large
|
|
||||||
> timeout twice. Maybe detecting scancodes generated via timeout
|
|
||||||
> (sth like timestamp - last_timestamp > protocol_repeat_period)
|
|
||||||
> and in that case immediately signalling keyup could help? Could well
|
|
||||||
> be that I'm missing somehting important and this is a bad idea.
|
|
||||||
> I guess I'd better let you figure something out :)
|
|
||||||
|
|
||||||
So there is a few complications. For rc-6, if you hold a button down,
|
|
||||||
there IR repeated every 110ms, which means there is a 69ms space between
|
|
||||||
the IR keypresses. The trailing space is needed for IR decode.
|
|
||||||
|
|
||||||
So with IR timeout of 200ms this will happen:
|
|
||||||
|
|
||||||
0.000 rc-6 IR message 1 begins
|
|
||||||
0.041 rc-6 IR message 1 ends
|
|
||||||
space
|
|
||||||
0.110 rc-6 IR message 2 begins; this means that message 1 is decoded now
|
|
||||||
0.151 rc-6 IR message 2 ends;
|
|
||||||
space
|
|
||||||
0.220 rc-6 IR message 3 begins; this means that message 2 is decoded now
|
|
||||||
0.261 rc-6 IR message 3 ends
|
|
||||||
space
|
|
||||||
0.461 IR timeout occurs; this means that message 3 is decoded now
|
|
||||||
|
|
||||||
So really the timeout should be length of IR message + IR timeout + error
|
|
||||||
margin (e.g. rc thread scheduling), unless that is less than the repeat
|
|
||||||
time.
|
|
||||||
|
|
||||||
But this only applies for raw IR decoding; different rules apply for
|
|
||||||
hardware decoders.
|
|
||||||
|
|
||||||
I think for now the best solution is to revert to 250ms for all protocols
|
|
||||||
(except for cec which needs 550ms), and reconsider for another kernel.
|
|
||||||
|
|
||||||
Thanks,
|
|
||||||
Sean
|
|
||||||
----
|
|
||||||
>From 2f1135f3f9873778ca5c013d1118710152840cb2 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Sean Young <sean@mess.org>
|
|
||||||
Date: Sun, 19 Nov 2017 21:11:17 +0000
|
|
||||||
Subject: [PATCH] media: rc: partial revert of "media: rc: per-protocol repeat
|
|
||||||
period"
|
|
||||||
|
|
||||||
Since commit d57ea877af38 ("media: rc: per-protocol repeat period"), most
|
|
||||||
IR protocols have a lower keyup timeout. This causes problems on the
|
|
||||||
ite-cir, which has default IR timeout of 200ms.
|
|
||||||
|
|
||||||
Since the IR decoders read the trailing space, with a IR timeout of 200ms,
|
|
||||||
the last keydown will have at least a delay of 200ms. This is more than
|
|
||||||
the protocol timeout of e.g. rc-6 (which is 164ms). As a result the last
|
|
||||||
IR will be interpreted as a new keydown event, and we get two keypresses.
|
|
||||||
|
|
||||||
Revert the protocol timeout to 250ms, except for cec which needs a timeout
|
|
||||||
of 550ms.
|
|
||||||
|
|
||||||
Fixes: d57ea877af38 ("media: rc: per-protocol repeat period")
|
|
||||||
Cc: <stable@vger.kernel.org> # 4.14
|
|
||||||
Signed-off-by: Sean Young <sean@mess.org>
|
|
||||||
---
|
|
||||||
drivers/media/rc/rc-main.c | 32 ++++++++++++++++----------------
|
|
||||||
1 file changed, 16 insertions(+), 16 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/drivers/media/rc/rc-main.c b/drivers/media/rc/rc-main.c
|
|
||||||
index 17950e29d4e3..5057b2ba0c10 100644
|
|
||||||
--- a/drivers/media/rc/rc-main.c
|
|
||||||
+++ b/drivers/media/rc/rc-main.c
|
|
||||||
@@ -39,41 +39,41 @@ static const struct {
|
|
||||||
[RC_PROTO_UNKNOWN] = { .name = "unknown", .repeat_period = 250 },
|
|
||||||
[RC_PROTO_OTHER] = { .name = "other", .repeat_period = 250 },
|
|
||||||
[RC_PROTO_RC5] = { .name = "rc-5",
|
|
||||||
- .scancode_bits = 0x1f7f, .repeat_period = 164 },
|
|
||||||
+ .scancode_bits = 0x1f7f, .repeat_period = 250 },
|
|
||||||
[RC_PROTO_RC5X_20] = { .name = "rc-5x-20",
|
|
||||||
- .scancode_bits = 0x1f7f3f, .repeat_period = 164 },
|
|
||||||
+ .scancode_bits = 0x1f7f3f, .repeat_period = 250 },
|
|
||||||
[RC_PROTO_RC5_SZ] = { .name = "rc-5-sz",
|
|
||||||
- .scancode_bits = 0x2fff, .repeat_period = 164 },
|
|
||||||
+ .scancode_bits = 0x2fff, .repeat_period = 250 },
|
|
||||||
[RC_PROTO_JVC] = { .name = "jvc",
|
|
||||||
.scancode_bits = 0xffff, .repeat_period = 250 },
|
|
||||||
[RC_PROTO_SONY12] = { .name = "sony-12",
|
|
||||||
- .scancode_bits = 0x1f007f, .repeat_period = 100 },
|
|
||||||
+ .scancode_bits = 0x1f007f, .repeat_period = 250 },
|
|
||||||
[RC_PROTO_SONY15] = { .name = "sony-15",
|
|
||||||
- .scancode_bits = 0xff007f, .repeat_period = 100 },
|
|
||||||
+ .scancode_bits = 0xff007f, .repeat_period = 250 },
|
|
||||||
[RC_PROTO_SONY20] = { .name = "sony-20",
|
|
||||||
- .scancode_bits = 0x1fff7f, .repeat_period = 100 },
|
|
||||||
+ .scancode_bits = 0x1fff7f, .repeat_period = 250 },
|
|
||||||
[RC_PROTO_NEC] = { .name = "nec",
|
|
||||||
- .scancode_bits = 0xffff, .repeat_period = 160 },
|
|
||||||
+ .scancode_bits = 0xffff, .repeat_period = 250 },
|
|
||||||
[RC_PROTO_NECX] = { .name = "nec-x",
|
|
||||||
- .scancode_bits = 0xffffff, .repeat_period = 160 },
|
|
||||||
+ .scancode_bits = 0xffffff, .repeat_period = 250 },
|
|
||||||
[RC_PROTO_NEC32] = { .name = "nec-32",
|
|
||||||
- .scancode_bits = 0xffffffff, .repeat_period = 160 },
|
|
||||||
+ .scancode_bits = 0xffffffff, .repeat_period = 250 },
|
|
||||||
[RC_PROTO_SANYO] = { .name = "sanyo",
|
|
||||||
.scancode_bits = 0x1fffff, .repeat_period = 250 },
|
|
||||||
[RC_PROTO_MCIR2_KBD] = { .name = "mcir2-kbd",
|
|
||||||
- .scancode_bits = 0xffff, .repeat_period = 150 },
|
|
||||||
+ .scancode_bits = 0xffff, .repeat_period = 250 },
|
|
||||||
[RC_PROTO_MCIR2_MSE] = { .name = "mcir2-mse",
|
|
||||||
- .scancode_bits = 0x1fffff, .repeat_period = 150 },
|
|
||||||
+ .scancode_bits = 0x1fffff, .repeat_period = 250 },
|
|
||||||
[RC_PROTO_RC6_0] = { .name = "rc-6-0",
|
|
||||||
- .scancode_bits = 0xffff, .repeat_period = 164 },
|
|
||||||
+ .scancode_bits = 0xffff, .repeat_period = 250 },
|
|
||||||
[RC_PROTO_RC6_6A_20] = { .name = "rc-6-6a-20",
|
|
||||||
- .scancode_bits = 0xfffff, .repeat_period = 164 },
|
|
||||||
+ .scancode_bits = 0xfffff, .repeat_period = 250 },
|
|
||||||
[RC_PROTO_RC6_6A_24] = { .name = "rc-6-6a-24",
|
|
||||||
- .scancode_bits = 0xffffff, .repeat_period = 164 },
|
|
||||||
+ .scancode_bits = 0xffffff, .repeat_period = 250 },
|
|
||||||
[RC_PROTO_RC6_6A_32] = { .name = "rc-6-6a-32",
|
|
||||||
- .scancode_bits = 0xffffffff, .repeat_period = 164 },
|
|
||||||
+ .scancode_bits = 0xffffffff, .repeat_period = 250 },
|
|
||||||
[RC_PROTO_RC6_MCE] = { .name = "rc-6-mce",
|
|
||||||
- .scancode_bits = 0xffff7fff, .repeat_period = 164 },
|
|
||||||
+ .scancode_bits = 0xffff7fff, .repeat_period = 250 },
|
|
||||||
[RC_PROTO_SHARP] = { .name = "sharp",
|
|
||||||
.scancode_bits = 0x1fff, .repeat_period = 250 },
|
|
||||||
[RC_PROTO_XMP] = { .name = "xmp", .repeat_period = 250 },
|
|
@ -0,0 +1,15 @@
|
|||||||
|
diff --git a/kernel/nvidia-uvm/uvm8_va_block.c b/kernel/nvidia-uvm/uvm8_va_block.c
|
||||||
|
index 99f6f9b..a453eb6 100644
|
||||||
|
--- a/kernel/nvidia-uvm/uvm8_va_block.c
|
||||||
|
+++ b/kernel/nvidia-uvm/uvm8_va_block.c
|
||||||
|
@@ -36,6 +36,10 @@
|
||||||
|
#include "uvm8_perf_prefetch.h"
|
||||||
|
#include "uvm8_mem.h"
|
||||||
|
|
||||||
|
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,9)
|
||||||
|
+#include <linux/sched/task_stack.h>
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
BLOCK_PTE_OP_MAP,
|
@ -1,6 +1,6 @@
|
|||||||
#
|
#
|
||||||
# Automatically generated file; DO NOT EDIT.
|
# Automatically generated file; DO NOT EDIT.
|
||||||
# Linux/x86_64 4.14.0-rc5 Kernel Configuration
|
# Linux/x86_64 4.14.9 Kernel Configuration
|
||||||
#
|
#
|
||||||
CONFIG_64BIT=y
|
CONFIG_64BIT=y
|
||||||
CONFIG_X86_64=y
|
CONFIG_X86_64=y
|
||||||
@ -333,6 +333,7 @@ CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
|
|||||||
CONFIG_STRICT_KERNEL_RWX=y
|
CONFIG_STRICT_KERNEL_RWX=y
|
||||||
CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
|
CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
|
||||||
CONFIG_STRICT_MODULE_RWX=y
|
CONFIG_STRICT_MODULE_RWX=y
|
||||||
|
CONFIG_ARCH_HAS_REFCOUNT=y
|
||||||
# CONFIG_REFCOUNT_FULL is not set
|
# CONFIG_REFCOUNT_FULL is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -3973,7 +3974,6 @@ CONFIG_HID_MULTITOUCH=m
|
|||||||
# CONFIG_HID_NTI is not set
|
# CONFIG_HID_NTI is not set
|
||||||
# CONFIG_HID_NTRIG is not set
|
# CONFIG_HID_NTRIG is not set
|
||||||
CONFIG_HID_ORTEK=y
|
CONFIG_HID_ORTEK=y
|
||||||
CONFIG_HID_OUYA=y
|
|
||||||
CONFIG_HID_PANTHERLORD=y
|
CONFIG_HID_PANTHERLORD=y
|
||||||
CONFIG_PANTHERLORD_FF=y
|
CONFIG_PANTHERLORD_FF=y
|
||||||
CONFIG_HID_PENMOUNT=y
|
CONFIG_HID_PENMOUNT=y
|
||||||
@ -5201,9 +5201,9 @@ CONFIG_OPTIMIZE_INLINING=y
|
|||||||
# CONFIG_DEBUG_NMI_SELFTEST is not set
|
# CONFIG_DEBUG_NMI_SELFTEST is not set
|
||||||
CONFIG_X86_DEBUG_FPU=y
|
CONFIG_X86_DEBUG_FPU=y
|
||||||
# CONFIG_PUNIT_ATOM_DEBUG is not set
|
# CONFIG_PUNIT_ATOM_DEBUG is not set
|
||||||
CONFIG_FRAME_POINTER_UNWINDER=y
|
# CONFIG_UNWINDER_ORC is not set
|
||||||
# CONFIG_ORC_UNWINDER is not set
|
CONFIG_UNWINDER_FRAME_POINTER=y
|
||||||
# CONFIG_GUESS_UNWINDER is not set
|
# CONFIG_UNWINDER_GUESS is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Security options
|
# Security options
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#
|
#
|
||||||
# Automatically generated file; DO NOT EDIT.
|
# Automatically generated file; DO NOT EDIT.
|
||||||
# Linux/arm 4.14.1 Kernel Configuration
|
# Linux/arm 4.14.6 Kernel Configuration
|
||||||
#
|
#
|
||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_ARM_HAS_SG_CHAIN=y
|
CONFIG_ARM_HAS_SG_CHAIN=y
|
||||||
@ -3259,7 +3259,6 @@ CONFIG_HID_MULTITOUCH=m
|
|||||||
# CONFIG_HID_NTI is not set
|
# CONFIG_HID_NTI is not set
|
||||||
# CONFIG_HID_NTRIG is not set
|
# CONFIG_HID_NTRIG is not set
|
||||||
CONFIG_HID_ORTEK=y
|
CONFIG_HID_ORTEK=y
|
||||||
CONFIG_HID_OUYA=y
|
|
||||||
CONFIG_HID_PANTHERLORD=y
|
CONFIG_HID_PANTHERLORD=y
|
||||||
CONFIG_PANTHERLORD_FF=y
|
CONFIG_PANTHERLORD_FF=y
|
||||||
CONFIG_HID_PENMOUNT=y
|
CONFIG_HID_PENMOUNT=y
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#
|
#
|
||||||
# Automatically generated file; DO NOT EDIT.
|
# Automatically generated file; DO NOT EDIT.
|
||||||
# Linux/arm 4.14.1 Kernel Configuration
|
# Linux/arm 4.14.6 Kernel Configuration
|
||||||
#
|
#
|
||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_ARM_HAS_SG_CHAIN=y
|
CONFIG_ARM_HAS_SG_CHAIN=y
|
||||||
@ -3357,7 +3357,6 @@ CONFIG_HID_MULTITOUCH=m
|
|||||||
# CONFIG_HID_NTI is not set
|
# CONFIG_HID_NTI is not set
|
||||||
# CONFIG_HID_NTRIG is not set
|
# CONFIG_HID_NTRIG is not set
|
||||||
CONFIG_HID_ORTEK=y
|
CONFIG_HID_ORTEK=y
|
||||||
CONFIG_HID_OUYA=y
|
|
||||||
CONFIG_HID_PANTHERLORD=y
|
CONFIG_HID_PANTHERLORD=y
|
||||||
CONFIG_PANTHERLORD_FF=y
|
CONFIG_PANTHERLORD_FF=y
|
||||||
CONFIG_HID_PENMOUNT=y
|
CONFIG_HID_PENMOUNT=y
|
||||||
|
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user