mirror of
https://github.com/libretro/Lakka-LibreELEC.git
synced 2025-03-01 06:51:22 +00:00
37 lines
1.4 KiB
Diff
37 lines
1.4 KiB
Diff
From b28fb176ddf02b18d9d033bea0b3eabdc7dd74d4 Mon Sep 17 00:00:00 2001
|
|
From: "Daniel J. Ogorchock" <djogorchock@gmail.com>
|
|
Date: Sun, 13 Oct 2019 18:06:08 -0500
|
|
Subject: [PATCH] HID: nintendo: patch hw version for userspace HID mappings
|
|
|
|
This patch sets the most significant bit of the hid hw version to allow
|
|
userspace to distinguish between this driver's input mappings vs. the
|
|
default hid mappings. This prevents breaking userspace applications that
|
|
use SDL2 for gamepad input, allowing them to distinguish the mappings
|
|
based on the version.
|
|
|
|
Signed-off-by: Daniel J. Ogorchock <djogorchock@gmail.com>
|
|
---
|
|
drivers/hid/hid-nintendo.c | 9 +++++++++
|
|
1 file changed, 9 insertions(+)
|
|
|
|
diff --git a/drivers/hid/hid-nintendo.c b/drivers/hid/hid-nintendo.c
|
|
index f2864fd9fc5d..c2f7dc83d875 100644
|
|
--- a/drivers/hid/hid-nintendo.c
|
|
+++ b/drivers/hid/hid-nintendo.c
|
|
@@ -1423,6 +1423,15 @@ static int nintendo_hid_probe(struct hid_device *hdev,
|
|
goto err_wq;
|
|
}
|
|
|
|
+ /*
|
|
+ * Patch the hw version of pro controller/joycons, so applications can
|
|
+ * distinguish between the default HID mappings and the mappings defined
|
|
+ * by the Linux game controller spec. This is important for the SDL2
|
|
+ * library, which has a game controller database, which uses device ids
|
|
+ * in combination with version as a key.
|
|
+ */
|
|
+ hdev->version |= 0x8000;
|
|
+
|
|
ret = hid_hw_start(hdev, HID_CONNECT_HIDRAW);
|
|
if (ret) {
|
|
hid_err(hdev, "HW start failed\n");
|