mirror of
https://github.com/LibreELEC/LibreELEC.tv
synced 2025-09-24 19:46:01 +07:00
162 lines
6.0 KiB
Diff
162 lines
6.0 KiB
Diff
diff -Naur linux-3.19/drivers/hid/hid-core.c linux-3.19.patch/drivers/hid/hid-core.c
|
|
--- linux-3.19/drivers/hid/hid-core.c 2015-02-09 03:54:22.000000000 +0100
|
|
+++ linux-3.19.patch/drivers/hid/hid-core.c 2015-02-11 00:06:14.966131308 +0100
|
|
@@ -1886,6 +1886,9 @@
|
|
{ HID_USB_DEVICE(USB_VENDOR_ID_ORTEK, USB_DEVICE_ID_ORTEK_WKB2000) },
|
|
{ HID_USB_DEVICE(USB_VENDOR_ID_PENMOUNT, USB_DEVICE_ID_PENMOUNT_6000) },
|
|
{ HID_USB_DEVICE(USB_VENDOR_ID_PETALYNX, USB_DEVICE_ID_PETALYNX_MAXTER_REMOTE) },
|
|
+ { 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_3) },
|
|
{ HID_USB_DEVICE(USB_VENDOR_ID_PLANTRONICS, HID_ANY_ID) },
|
|
{ HID_USB_DEVICE(USB_VENDOR_ID_PRIMAX, USB_DEVICE_ID_PRIMAX_KEYBOARD) },
|
|
#if IS_ENABLED(CONFIG_HID_ROCCAT)
|
|
diff -Naur linux-3.19/drivers/hid/hid-ids.h linux-3.19.patch/drivers/hid/hid-ids.h
|
|
--- linux-3.19/drivers/hid/hid-ids.h 2015-02-09 03:54:22.000000000 +0100
|
|
+++ linux-3.19.patch/drivers/hid/hid-ids.h 2015-02-11 00:04:45.885977057 +0100
|
|
@@ -743,6 +743,9 @@
|
|
|
|
#define USB_VENDOR_ID_PHILIPS 0x0471
|
|
#define USB_DEVICE_ID_PHILIPS_IEEE802154_DONGLE 0x0617
|
|
+#define USB_DEVICE_ID_PHILIPS_SPINEL_PLUS_1 0x206c
|
|
+#define USB_DEVICE_ID_PHILIPS_SPINEL_PLUS_2 0x20cc
|
|
+#define USB_DEVICE_ID_PHILIPS_SPINEL_PLUS_3 0x0613
|
|
|
|
#define USB_VENDOR_ID_PI_ENGINEERING 0x05f3
|
|
#define USB_DEVICE_ID_PI_ENGINEERING_VEC_USB_FOOTPEDAL 0xff
|
|
diff -Naur linux-3.19/drivers/hid/hid-spinelplus.c linux-3.19.patch/drivers/hid/hid-spinelplus.c
|
|
--- linux-3.19/drivers/hid/hid-spinelplus.c 1970-01-01 01:00:00.000000000 +0100
|
|
+++ linux-3.19.patch/drivers/hid/hid-spinelplus.c 2015-02-11 00:04:45.886977059 +0100
|
|
@@ -0,0 +1,104 @@
|
|
+/*
|
|
+ * HID driver for "PHILIPS MCE USB IR Receiver- Spinel plus" remotes
|
|
+ *
|
|
+ * Copyright (c) 2010 Panagiotis Skintzos
|
|
+ *
|
|
+ * Renamed to Spinel, cleanup and modified to also support
|
|
+ * Spinel Plus 0471:20CC by Stephan Raue 2012.
|
|
+ */
|
|
+
|
|
+/*
|
|
+ * This program is free software; you can redistribute it and/or modify it
|
|
+ * under the terms of the GNU General Public License as published by the Free
|
|
+ * Software Foundation; either version 2 of the License, or (at your option)
|
|
+ * any later version.
|
|
+ */
|
|
+
|
|
+#include <linux/device.h>
|
|
+#include <linux/input.h>
|
|
+#include <linux/hid.h>
|
|
+#include <linux/module.h>
|
|
+
|
|
+#include "hid-ids.h"
|
|
+
|
|
+#define spinelplus_map_key(c) set_bit(EV_REP, hi->input->evbit); \
|
|
+ hid_map_usage_clear(hi, usage, bit, max, EV_KEY, (c))
|
|
+
|
|
+static int spinelplus_input_mapping(struct hid_device *hdev,
|
|
+ struct hid_input *hi, struct hid_field *field, struct hid_usage *usage,
|
|
+ unsigned long **bit, int *max)
|
|
+{
|
|
+ switch (usage->hid) {
|
|
+ case 0xffbc000d: spinelplus_map_key(KEY_MEDIA); break;
|
|
+ case 0xffbc0024: spinelplus_map_key(KEY_MEDIA); break;
|
|
+ case 0xffbc0027: spinelplus_map_key(KEY_ZOOM); break;
|
|
+ case 0xffbc0033: spinelplus_map_key(KEY_HOME); break;
|
|
+ case 0xffbc0035: spinelplus_map_key(KEY_CAMERA); break;
|
|
+ case 0xffbc0036: spinelplus_map_key(KEY_EPG); break;
|
|
+ case 0xffbc0037: spinelplus_map_key(KEY_DVD); break;
|
|
+ case 0xffbc0038: spinelplus_map_key(KEY_HOME); break;
|
|
+ case 0xffbc0039: spinelplus_map_key(KEY_MP3); break;
|
|
+ case 0xffbc003a: spinelplus_map_key(KEY_VIDEO); break;
|
|
+ case 0xffbc005a: spinelplus_map_key(KEY_TEXT); break;
|
|
+ case 0xffbc005b: spinelplus_map_key(KEY_RED); break;
|
|
+ case 0xffbc005c: spinelplus_map_key(KEY_GREEN); break;
|
|
+ case 0xffbc005d: spinelplus_map_key(KEY_YELLOW); break;
|
|
+ case 0xffbc005e: spinelplus_map_key(KEY_BLUE); break;
|
|
+ default:
|
|
+ return 0;
|
|
+ }
|
|
+ return 1;
|
|
+}
|
|
+
|
|
+static int spinelplus_probe(struct hid_device *hdev,
|
|
+ const struct hid_device_id *id)
|
|
+{
|
|
+ int ret;
|
|
+ /* Connect only to hid input (not hiddev & hidraw)*/
|
|
+ unsigned int cmask = HID_CONNECT_HIDINPUT;
|
|
+
|
|
+ ret = hid_parse(hdev);
|
|
+ if (ret) {
|
|
+ dev_err(&hdev->dev, "parse failed\n");
|
|
+ goto err_free;
|
|
+ }
|
|
+
|
|
+ ret = hid_hw_start(hdev, cmask);
|
|
+ if (ret) {
|
|
+ dev_err(&hdev->dev, "hw start failed\n");
|
|
+ goto err_free;
|
|
+ }
|
|
+
|
|
+ return 0;
|
|
+err_free:
|
|
+ return ret;
|
|
+}
|
|
+
|
|
+static const struct hid_device_id spinelplus_devices[] = {
|
|
+ { 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_3) },
|
|
+ { }
|
|
+};
|
|
+MODULE_DEVICE_TABLE(hid, spinelplus_devices);
|
|
+
|
|
+static struct hid_driver spinelplus_driver = {
|
|
+ .name = "SpinelPlus",
|
|
+ .id_table = spinelplus_devices,
|
|
+ .input_mapping = spinelplus_input_mapping,
|
|
+ .probe = spinelplus_probe,
|
|
+};
|
|
+
|
|
+static int __init spinelplus_init(void)
|
|
+{
|
|
+ return hid_register_driver(&spinelplus_driver);
|
|
+}
|
|
+
|
|
+static void __exit spinelplus_exit(void)
|
|
+{
|
|
+ hid_unregister_driver(&spinelplus_driver);
|
|
+}
|
|
+
|
|
+module_init(spinelplus_init);
|
|
+module_exit(spinelplus_exit);
|
|
+MODULE_LICENSE("GPL");
|
|
diff -Naur linux-3.19/drivers/hid/Kconfig linux-3.19.patch/drivers/hid/Kconfig
|
|
--- linux-3.19/drivers/hid/Kconfig 2015-02-09 03:54:22.000000000 +0100
|
|
+++ linux-3.19.patch/drivers/hid/Kconfig 2015-02-11 00:04:45.886977059 +0100
|
|
@@ -702,6 +702,12 @@
|
|
---help---
|
|
Support for Steelseries SRW-S1 steering wheel
|
|
|
|
+config HID_SPINELPLUS
|
|
+ tristate "Spinel Plus remote control"
|
|
+ depends on USB_HID
|
|
+ ---help---
|
|
+ Say Y here if you have a Spinel Plus (0471:206c/20cc/0613) remote
|
|
+
|
|
config HID_SUNPLUS
|
|
tristate "Sunplus wireless desktop"
|
|
depends on HID
|
|
diff -Naur linux-3.19/drivers/hid/Makefile linux-3.19.patch/drivers/hid/Makefile
|
|
--- linux-3.19/drivers/hid/Makefile 2015-02-09 03:54:22.000000000 +0100
|
|
+++ linux-3.19.patch/drivers/hid/Makefile 2015-02-11 00:04:45.886977059 +0100
|
|
@@ -107,6 +107,7 @@
|
|
obj-$(CONFIG_HID_SMARTJOYPLUS) += hid-sjoy.o
|
|
obj-$(CONFIG_HID_SONY) += hid-sony.o
|
|
obj-$(CONFIG_HID_SPEEDLINK) += hid-speedlink.o
|
|
+obj-$(CONFIG_HID_SPINELPLUS) += hid-spinelplus.o
|
|
obj-$(CONFIG_HID_STEELSERIES) += hid-steelseries.o
|
|
obj-$(CONFIG_HID_SUNPLUS) += hid-sunplus.o
|
|
obj-$(CONFIG_HID_GREENASIA) += hid-gaff.o
|