]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
drop hid-topre-add-driver-fixing-report-descriptor.patch from everywhere except 6.0
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 20 Oct 2022 11:57:51 +0000 (13:57 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 20 Oct 2022 11:57:51 +0000 (13:57 +0200)
14 files changed:
queue-4.14/hid-topre-add-driver-fixing-report-descriptor.patch [deleted file]
queue-4.14/series
queue-4.19/hid-topre-add-driver-fixing-report-descriptor.patch [deleted file]
queue-4.19/series
queue-4.9/hid-topre-add-driver-fixing-report-descriptor.patch [deleted file]
queue-4.9/series
queue-5.10/hid-topre-add-driver-fixing-report-descriptor.patch [deleted file]
queue-5.10/series
queue-5.15/hid-topre-add-driver-fixing-report-descriptor.patch [deleted file]
queue-5.15/series
queue-5.19/hid-topre-add-driver-fixing-report-descriptor.patch [deleted file]
queue-5.19/series
queue-5.4/hid-topre-add-driver-fixing-report-descriptor.patch [deleted file]
queue-5.4/series

diff --git a/queue-4.14/hid-topre-add-driver-fixing-report-descriptor.patch b/queue-4.14/hid-topre-add-driver-fixing-report-descriptor.patch
deleted file mode 100644 (file)
index 16de4b2..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-From 71928c410a5dc4210af3bb56b5aa8c719f437b8f Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sat, 10 Sep 2022 20:36:13 -0400
-Subject: hid: topre: Add driver fixing report descriptor
-
-From: Harry Stern <harry@harrystern.net>
-
-[ Upstream commit a109d5c45b3d6728b9430716b915afbe16eef27c ]
-
-The Topre REALFORCE R2 firmware incorrectly reports that interface
-descriptor number 1, input report descriptor 2's events are array events
-rather than variable events. That particular report descriptor is used
-to report keypresses when there are more than 6 keys held at a time.
-This bug prevents events from this interface from being registered
-properly, so only 6 keypresses (from a different interface) can be
-registered at once, rather than full n-key rollover.
-
-This commit fixes the bug by setting the correct value in a report_fixup
-function.
-
-The original bug report can be found here:
-Link: https://gitlab.freedesktop.org/libinput/libinput/-/issues/804
-
-Thanks to Benjamin Tissoires for diagnosing the issue with the report
-descriptor.
-
-Signed-off-by: Harry Stern <harry@harrystern.net>
-Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
-Link: https://lore.kernel.org/r/20220911003614.297613-1-harry@harrystern.net
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/hid/Kconfig     |  6 +++++
- drivers/hid/Makefile    |  1 +
- drivers/hid/hid-ids.h   |  3 +++
- drivers/hid/hid-topre.c | 49 +++++++++++++++++++++++++++++++++++++++++
- 4 files changed, 59 insertions(+)
- create mode 100644 drivers/hid/hid-topre.c
-
-diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig
-index a4fb3fccf1b2..3311f0adf30c 100644
---- a/drivers/hid/Kconfig
-+++ b/drivers/hid/Kconfig
-@@ -892,6 +892,12 @@ config HID_TOPSEED
-       Say Y if you have a TopSeed Cyberlink or BTC Emprex or Conceptronic
-       CLLRCMCE remote control.
-+config HID_TOPRE
-+      tristate "Topre REALFORCE keyboards"
-+      depends on HID
-+      help
-+        Say Y for N-key rollover support on Topre REALFORCE R2 108 key keyboards.
-+
- config HID_THINGM
-       tristate "ThingM blink(1) USB RGB LED"
-       depends on HID
-diff --git a/drivers/hid/Makefile b/drivers/hid/Makefile
-index 235bd2a7b333..a6ee2f5ca3b7 100644
---- a/drivers/hid/Makefile
-+++ b/drivers/hid/Makefile
-@@ -100,6 +100,7 @@ obj-$(CONFIG_HID_GREENASIA)        += hid-gaff.o
- obj-$(CONFIG_HID_THRUSTMASTER)        += hid-tmff.o
- obj-$(CONFIG_HID_TIVO)                += hid-tivo.o
- obj-$(CONFIG_HID_TOPSEED)     += hid-topseed.o
-+obj-$(CONFIG_HID_TOPRE)       += hid-topre.o
- obj-$(CONFIG_HID_TWINHAN)     += hid-twinhan.o
- obj-$(CONFIG_HID_UCLOGIC)     += hid-uclogic.o
- obj-$(CONFIG_HID_UDRAW_PS3)   += hid-udraw-ps3.o
-diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
-index e5f2958bc18c..05b3ed74c4d2 100644
---- a/drivers/hid/hid-ids.h
-+++ b/drivers/hid/hid-ids.h
-@@ -1048,6 +1048,9 @@
- #define USB_DEVICE_ID_TIVO_SLIDE      0x1201
- #define USB_DEVICE_ID_TIVO_SLIDE_PRO  0x1203
-+#define USB_VENDOR_ID_TOPRE                   0x0853
-+#define USB_DEVICE_ID_TOPRE_REALFORCE_R2_108                  0x0148
-+
- #define USB_VENDOR_ID_TOPSEED         0x0766
- #define USB_DEVICE_ID_TOPSEED_CYBERLINK       0x0204
-diff --git a/drivers/hid/hid-topre.c b/drivers/hid/hid-topre.c
-new file mode 100644
-index 000000000000..88a91cdad5f8
---- /dev/null
-+++ b/drivers/hid/hid-topre.c
-@@ -0,0 +1,49 @@
-+// SPDX-License-Identifier: GPL-2.0+
-+/*
-+ *  HID driver for Topre REALFORCE Keyboards
-+ *
-+ *  Copyright (c) 2022 Harry Stern <harry@harrystern.net>
-+ *
-+ *  Based on the hid-macally driver
-+ */
-+
-+#include <linux/hid.h>
-+#include <linux/module.h>
-+
-+#include "hid-ids.h"
-+
-+MODULE_AUTHOR("Harry Stern <harry@harrystern.net>");
-+MODULE_DESCRIPTION("REALFORCE R2 Keyboard driver");
-+MODULE_LICENSE("GPL");
-+
-+/*
-+ * Fix the REALFORCE R2's non-boot interface's report descriptor to match the
-+ * events it's actually sending. It claims to send array events but is instead
-+ * sending variable events.
-+ */
-+static __u8 *topre_report_fixup(struct hid_device *hdev, __u8 *rdesc,
-+                               unsigned int *rsize)
-+{
-+      if (*rsize >= 119 && rdesc[69] == 0x29 && rdesc[70] == 0xe7 &&
-+                                               rdesc[71] == 0x81 && rdesc[72] == 0x00) {
-+              hid_info(hdev,
-+                      "fixing up Topre REALFORCE keyboard report descriptor\n");
-+              rdesc[72] = 0x02;
-+      }
-+      return rdesc;
-+}
-+
-+static const struct hid_device_id topre_id_table[] = {
-+      { HID_USB_DEVICE(USB_VENDOR_ID_TOPRE,
-+                       USB_DEVICE_ID_TOPRE_REALFORCE_R2_108) },
-+      { }
-+};
-+MODULE_DEVICE_TABLE(hid, topre_id_table);
-+
-+static struct hid_driver topre_driver = {
-+      .name                   = "topre",
-+      .id_table               = topre_id_table,
-+      .report_fixup           = topre_report_fixup,
-+};
-+
-+module_hid_driver(topre_driver);
--- 
-2.35.1
-
index 12b9ed4071c4cf4be1b3118566b56987f962505d..8952bbf59f946220647c294823d7d711afd3e3cc 100644 (file)
@@ -195,7 +195,6 @@ arm-dts-imx6sl-add-missing-properties-for-sram.patch
 media-cx88-fix-a-null-ptr-deref-bug-in-buffer_prepar.patch
 scsi-3w-9xxx-avoid-disabling-device-if-failing-to-en.patch
 nbd-fix-hung-when-signal-interrupts-nbd_start_device.patch
-hid-topre-add-driver-fixing-report-descriptor.patch
 hid-roccat-fix-use-after-free-in-roccat_read.patch
 hsi-ssi_protocol-fix-potential-resource-leak-in-ssip.patch
 md-raid5-wait-for-md_sb_change_pending-in-raid5d.patch
diff --git a/queue-4.19/hid-topre-add-driver-fixing-report-descriptor.patch b/queue-4.19/hid-topre-add-driver-fixing-report-descriptor.patch
deleted file mode 100644 (file)
index 03f0a4e..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-From 91acbb5d253312076ca436e9d75cf298675455e5 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sat, 10 Sep 2022 20:36:13 -0400
-Subject: hid: topre: Add driver fixing report descriptor
-
-From: Harry Stern <harry@harrystern.net>
-
-[ Upstream commit a109d5c45b3d6728b9430716b915afbe16eef27c ]
-
-The Topre REALFORCE R2 firmware incorrectly reports that interface
-descriptor number 1, input report descriptor 2's events are array events
-rather than variable events. That particular report descriptor is used
-to report keypresses when there are more than 6 keys held at a time.
-This bug prevents events from this interface from being registered
-properly, so only 6 keypresses (from a different interface) can be
-registered at once, rather than full n-key rollover.
-
-This commit fixes the bug by setting the correct value in a report_fixup
-function.
-
-The original bug report can be found here:
-Link: https://gitlab.freedesktop.org/libinput/libinput/-/issues/804
-
-Thanks to Benjamin Tissoires for diagnosing the issue with the report
-descriptor.
-
-Signed-off-by: Harry Stern <harry@harrystern.net>
-Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
-Link: https://lore.kernel.org/r/20220911003614.297613-1-harry@harrystern.net
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/hid/Kconfig     |  6 +++++
- drivers/hid/Makefile    |  1 +
- drivers/hid/hid-ids.h   |  3 +++
- drivers/hid/hid-topre.c | 49 +++++++++++++++++++++++++++++++++++++++++
- 4 files changed, 59 insertions(+)
- create mode 100644 drivers/hid/hid-topre.c
-
-diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig
-index 88bb59ba58cd..d64a2799331e 100644
---- a/drivers/hid/Kconfig
-+++ b/drivers/hid/Kconfig
-@@ -943,6 +943,12 @@ config HID_TOPSEED
-       Say Y if you have a TopSeed Cyberlink or BTC Emprex or Conceptronic
-       CLLRCMCE remote control.
-+config HID_TOPRE
-+      tristate "Topre REALFORCE keyboards"
-+      depends on HID
-+      help
-+        Say Y for N-key rollover support on Topre REALFORCE R2 108 key keyboards.
-+
- config HID_THINGM
-       tristate "ThingM blink(1) USB RGB LED"
-       depends on HID
-diff --git a/drivers/hid/Makefile b/drivers/hid/Makefile
-index bd7ac53b75c5..9493ea3a3898 100644
---- a/drivers/hid/Makefile
-+++ b/drivers/hid/Makefile
-@@ -106,6 +106,7 @@ obj-$(CONFIG_HID_GREENASIA)        += hid-gaff.o
- obj-$(CONFIG_HID_THRUSTMASTER)        += hid-tmff.o
- obj-$(CONFIG_HID_TIVO)                += hid-tivo.o
- obj-$(CONFIG_HID_TOPSEED)     += hid-topseed.o
-+obj-$(CONFIG_HID_TOPRE)       += hid-topre.o
- obj-$(CONFIG_HID_TWINHAN)     += hid-twinhan.o
- obj-$(CONFIG_HID_UCLOGIC)     += hid-uclogic.o
- obj-$(CONFIG_HID_UDRAW_PS3)   += hid-udraw-ps3.o
-diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
-index 70079d29822b..ab95d952bcc2 100644
---- a/drivers/hid/hid-ids.h
-+++ b/drivers/hid/hid-ids.h
-@@ -1123,6 +1123,9 @@
- #define USB_DEVICE_ID_TIVO_SLIDE      0x1201
- #define USB_DEVICE_ID_TIVO_SLIDE_PRO  0x1203
-+#define USB_VENDOR_ID_TOPRE                   0x0853
-+#define USB_DEVICE_ID_TOPRE_REALFORCE_R2_108                  0x0148
-+
- #define USB_VENDOR_ID_TOPSEED         0x0766
- #define USB_DEVICE_ID_TOPSEED_CYBERLINK       0x0204
-diff --git a/drivers/hid/hid-topre.c b/drivers/hid/hid-topre.c
-new file mode 100644
-index 000000000000..88a91cdad5f8
---- /dev/null
-+++ b/drivers/hid/hid-topre.c
-@@ -0,0 +1,49 @@
-+// SPDX-License-Identifier: GPL-2.0+
-+/*
-+ *  HID driver for Topre REALFORCE Keyboards
-+ *
-+ *  Copyright (c) 2022 Harry Stern <harry@harrystern.net>
-+ *
-+ *  Based on the hid-macally driver
-+ */
-+
-+#include <linux/hid.h>
-+#include <linux/module.h>
-+
-+#include "hid-ids.h"
-+
-+MODULE_AUTHOR("Harry Stern <harry@harrystern.net>");
-+MODULE_DESCRIPTION("REALFORCE R2 Keyboard driver");
-+MODULE_LICENSE("GPL");
-+
-+/*
-+ * Fix the REALFORCE R2's non-boot interface's report descriptor to match the
-+ * events it's actually sending. It claims to send array events but is instead
-+ * sending variable events.
-+ */
-+static __u8 *topre_report_fixup(struct hid_device *hdev, __u8 *rdesc,
-+                               unsigned int *rsize)
-+{
-+      if (*rsize >= 119 && rdesc[69] == 0x29 && rdesc[70] == 0xe7 &&
-+                                               rdesc[71] == 0x81 && rdesc[72] == 0x00) {
-+              hid_info(hdev,
-+                      "fixing up Topre REALFORCE keyboard report descriptor\n");
-+              rdesc[72] = 0x02;
-+      }
-+      return rdesc;
-+}
-+
-+static const struct hid_device_id topre_id_table[] = {
-+      { HID_USB_DEVICE(USB_VENDOR_ID_TOPRE,
-+                       USB_DEVICE_ID_TOPRE_REALFORCE_R2_108) },
-+      { }
-+};
-+MODULE_DEVICE_TABLE(hid, topre_id_table);
-+
-+static struct hid_driver topre_driver = {
-+      .name                   = "topre",
-+      .id_table               = topre_id_table,
-+      .report_fixup           = topre_report_fixup,
-+};
-+
-+module_hid_driver(topre_driver);
--- 
-2.35.1
-
index 657c5cc3b2822c278257a6c788155f630e9c70a5..9d93b32a7f6fee170081b5eddbb0c1ea925e99eb 100644 (file)
@@ -216,7 +216,6 @@ nbd-fix-hung-when-signal-interrupts-nbd_start_device.patch
 power-supply-adp5061-fix-out-of-bounds-read-in-adp50.patch
 staging-vt6655-fix-potential-memory-leak.patch
 ata-libahci_platform-sanity-check-the-dt-child-nodes.patch
-hid-topre-add-driver-fixing-report-descriptor.patch
 hid-roccat-fix-use-after-free-in-roccat_read.patch
 hsi-ssi_protocol-fix-potential-resource-leak-in-ssip.patch
 md-raid5-wait-for-md_sb_change_pending-in-raid5d.patch
diff --git a/queue-4.9/hid-topre-add-driver-fixing-report-descriptor.patch b/queue-4.9/hid-topre-add-driver-fixing-report-descriptor.patch
deleted file mode 100644 (file)
index 47c6cff..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-From 490623c4ec034a3be3ff836c425322ecf4f4c5ab Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sat, 10 Sep 2022 20:36:13 -0400
-Subject: hid: topre: Add driver fixing report descriptor
-
-From: Harry Stern <harry@harrystern.net>
-
-[ Upstream commit a109d5c45b3d6728b9430716b915afbe16eef27c ]
-
-The Topre REALFORCE R2 firmware incorrectly reports that interface
-descriptor number 1, input report descriptor 2's events are array events
-rather than variable events. That particular report descriptor is used
-to report keypresses when there are more than 6 keys held at a time.
-This bug prevents events from this interface from being registered
-properly, so only 6 keypresses (from a different interface) can be
-registered at once, rather than full n-key rollover.
-
-This commit fixes the bug by setting the correct value in a report_fixup
-function.
-
-The original bug report can be found here:
-Link: https://gitlab.freedesktop.org/libinput/libinput/-/issues/804
-
-Thanks to Benjamin Tissoires for diagnosing the issue with the report
-descriptor.
-
-Signed-off-by: Harry Stern <harry@harrystern.net>
-Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
-Link: https://lore.kernel.org/r/20220911003614.297613-1-harry@harrystern.net
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/hid/Kconfig     |  6 +++++
- drivers/hid/Makefile    |  1 +
- drivers/hid/hid-ids.h   |  3 +++
- drivers/hid/hid-topre.c | 49 +++++++++++++++++++++++++++++++++++++++++
- 4 files changed, 59 insertions(+)
- create mode 100644 drivers/hid/hid-topre.c
-
-diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig
-index 2b5ae00f8df2..80c54cd437db 100644
---- a/drivers/hid/Kconfig
-+++ b/drivers/hid/Kconfig
-@@ -837,6 +837,12 @@ config HID_TOPSEED
-       Say Y if you have a TopSeed Cyberlink or BTC Emprex or Conceptronic
-       CLLRCMCE remote control.
-+config HID_TOPRE
-+      tristate "Topre REALFORCE keyboards"
-+      depends on HID
-+      help
-+        Say Y for N-key rollover support on Topre REALFORCE R2 108 key keyboards.
-+
- config HID_THINGM
-       tristate "ThingM blink(1) USB RGB LED"
-       depends on HID
-diff --git a/drivers/hid/Makefile b/drivers/hid/Makefile
-index 86b2b5785fd2..245878158850 100644
---- a/drivers/hid/Makefile
-+++ b/drivers/hid/Makefile
-@@ -94,6 +94,7 @@ obj-$(CONFIG_HID_GREENASIA)  += hid-gaff.o
- obj-$(CONFIG_HID_THRUSTMASTER)        += hid-tmff.o
- obj-$(CONFIG_HID_TIVO)                += hid-tivo.o
- obj-$(CONFIG_HID_TOPSEED)     += hid-topseed.o
-+obj-$(CONFIG_HID_TOPRE)       += hid-topre.o
- obj-$(CONFIG_HID_TWINHAN)     += hid-twinhan.o
- obj-$(CONFIG_HID_UCLOGIC)     += hid-uclogic.o
- obj-$(CONFIG_HID_LED)         += hid-led.o
-diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
-index 1f641870d860..3ae9f6489f8f 100644
---- a/drivers/hid/hid-ids.h
-+++ b/drivers/hid/hid-ids.h
-@@ -1001,6 +1001,9 @@
- #define USB_DEVICE_ID_TIVO_SLIDE      0x1201
- #define USB_DEVICE_ID_TIVO_SLIDE_PRO  0x1203
-+#define USB_VENDOR_ID_TOPRE                   0x0853
-+#define USB_DEVICE_ID_TOPRE_REALFORCE_R2_108                  0x0148
-+
- #define USB_VENDOR_ID_TOPSEED         0x0766
- #define USB_DEVICE_ID_TOPSEED_CYBERLINK       0x0204
-diff --git a/drivers/hid/hid-topre.c b/drivers/hid/hid-topre.c
-new file mode 100644
-index 000000000000..88a91cdad5f8
---- /dev/null
-+++ b/drivers/hid/hid-topre.c
-@@ -0,0 +1,49 @@
-+// SPDX-License-Identifier: GPL-2.0+
-+/*
-+ *  HID driver for Topre REALFORCE Keyboards
-+ *
-+ *  Copyright (c) 2022 Harry Stern <harry@harrystern.net>
-+ *
-+ *  Based on the hid-macally driver
-+ */
-+
-+#include <linux/hid.h>
-+#include <linux/module.h>
-+
-+#include "hid-ids.h"
-+
-+MODULE_AUTHOR("Harry Stern <harry@harrystern.net>");
-+MODULE_DESCRIPTION("REALFORCE R2 Keyboard driver");
-+MODULE_LICENSE("GPL");
-+
-+/*
-+ * Fix the REALFORCE R2's non-boot interface's report descriptor to match the
-+ * events it's actually sending. It claims to send array events but is instead
-+ * sending variable events.
-+ */
-+static __u8 *topre_report_fixup(struct hid_device *hdev, __u8 *rdesc,
-+                               unsigned int *rsize)
-+{
-+      if (*rsize >= 119 && rdesc[69] == 0x29 && rdesc[70] == 0xe7 &&
-+                                               rdesc[71] == 0x81 && rdesc[72] == 0x00) {
-+              hid_info(hdev,
-+                      "fixing up Topre REALFORCE keyboard report descriptor\n");
-+              rdesc[72] = 0x02;
-+      }
-+      return rdesc;
-+}
-+
-+static const struct hid_device_id topre_id_table[] = {
-+      { HID_USB_DEVICE(USB_VENDOR_ID_TOPRE,
-+                       USB_DEVICE_ID_TOPRE_REALFORCE_R2_108) },
-+      { }
-+};
-+MODULE_DEVICE_TABLE(hid, topre_id_table);
-+
-+static struct hid_driver topre_driver = {
-+      .name                   = "topre",
-+      .id_table               = topre_id_table,
-+      .report_fixup           = topre_report_fixup,
-+};
-+
-+module_hid_driver(topre_driver);
--- 
-2.35.1
-
index 3e04b4ac6fb04d2c0c0fa3bb1478ad44bb595320..db5863bf175246db8d999b9db03adc1c7a3c97f5 100644 (file)
@@ -146,7 +146,6 @@ arm-dts-imx6qp-add-missing-properties-for-sram.patch
 arm-dts-imx6sl-add-missing-properties-for-sram.patch
 media-cx88-fix-a-null-ptr-deref-bug-in-buffer_prepar.patch
 scsi-3w-9xxx-avoid-disabling-device-if-failing-to-en.patch
-hid-topre-add-driver-fixing-report-descriptor.patch
 hid-roccat-fix-use-after-free-in-roccat_read.patch
 hsi-ssi_protocol-fix-potential-resource-leak-in-ssip.patch
 usb-host-xhci-fix-potential-memory-leak-in-xhci_allo.patch
diff --git a/queue-5.10/hid-topre-add-driver-fixing-report-descriptor.patch b/queue-5.10/hid-topre-add-driver-fixing-report-descriptor.patch
deleted file mode 100644 (file)
index b11694d..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-From c823974b49d5bc6f2b6743bb5a30c272bd178f4a Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sat, 10 Sep 2022 20:36:13 -0400
-Subject: hid: topre: Add driver fixing report descriptor
-
-From: Harry Stern <harry@harrystern.net>
-
-[ Upstream commit a109d5c45b3d6728b9430716b915afbe16eef27c ]
-
-The Topre REALFORCE R2 firmware incorrectly reports that interface
-descriptor number 1, input report descriptor 2's events are array events
-rather than variable events. That particular report descriptor is used
-to report keypresses when there are more than 6 keys held at a time.
-This bug prevents events from this interface from being registered
-properly, so only 6 keypresses (from a different interface) can be
-registered at once, rather than full n-key rollover.
-
-This commit fixes the bug by setting the correct value in a report_fixup
-function.
-
-The original bug report can be found here:
-Link: https://gitlab.freedesktop.org/libinput/libinput/-/issues/804
-
-Thanks to Benjamin Tissoires for diagnosing the issue with the report
-descriptor.
-
-Signed-off-by: Harry Stern <harry@harrystern.net>
-Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
-Link: https://lore.kernel.org/r/20220911003614.297613-1-harry@harrystern.net
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/hid/Kconfig     |  6 +++++
- drivers/hid/Makefile    |  1 +
- drivers/hid/hid-ids.h   |  3 +++
- drivers/hid/hid-topre.c | 49 +++++++++++++++++++++++++++++++++++++++++
- 4 files changed, 59 insertions(+)
- create mode 100644 drivers/hid/hid-topre.c
-
-diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig
-index f8ad3b2be0bf..2dd5c7944019 100644
---- a/drivers/hid/Kconfig
-+++ b/drivers/hid/Kconfig
-@@ -1010,6 +1010,12 @@ config HID_TOPSEED
-       Say Y if you have a TopSeed Cyberlink or BTC Emprex or Conceptronic
-       CLLRCMCE remote control.
-+config HID_TOPRE
-+      tristate "Topre REALFORCE keyboards"
-+      depends on HID
-+      help
-+        Say Y for N-key rollover support on Topre REALFORCE R2 108 key keyboards.
-+
- config HID_THINGM
-       tristate "ThingM blink(1) USB RGB LED"
-       depends on HID
-diff --git a/drivers/hid/Makefile b/drivers/hid/Makefile
-index 4acb583c92a6..09830511909c 100644
---- a/drivers/hid/Makefile
-+++ b/drivers/hid/Makefile
-@@ -114,6 +114,7 @@ obj-$(CONFIG_HID_GREENASIA)        += hid-gaff.o
- obj-$(CONFIG_HID_THRUSTMASTER)        += hid-tmff.o
- obj-$(CONFIG_HID_TIVO)                += hid-tivo.o
- obj-$(CONFIG_HID_TOPSEED)     += hid-topseed.o
-+obj-$(CONFIG_HID_TOPRE)       += hid-topre.o
- obj-$(CONFIG_HID_TWINHAN)     += hid-twinhan.o
- obj-$(CONFIG_HID_U2FZERO)     += hid-u2fzero.o
- hid-uclogic-objs              := hid-uclogic-core.o \
-diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
-index bb096dfb7b36..ab439aa4c4cb 100644
---- a/drivers/hid/hid-ids.h
-+++ b/drivers/hid/hid-ids.h
-@@ -1166,6 +1166,9 @@
- #define USB_DEVICE_ID_TIVO_SLIDE      0x1201
- #define USB_DEVICE_ID_TIVO_SLIDE_PRO  0x1203
-+#define USB_VENDOR_ID_TOPRE                   0x0853
-+#define USB_DEVICE_ID_TOPRE_REALFORCE_R2_108                  0x0148
-+
- #define USB_VENDOR_ID_TOPSEED         0x0766
- #define USB_DEVICE_ID_TOPSEED_CYBERLINK       0x0204
-diff --git a/drivers/hid/hid-topre.c b/drivers/hid/hid-topre.c
-new file mode 100644
-index 000000000000..88a91cdad5f8
---- /dev/null
-+++ b/drivers/hid/hid-topre.c
-@@ -0,0 +1,49 @@
-+// SPDX-License-Identifier: GPL-2.0+
-+/*
-+ *  HID driver for Topre REALFORCE Keyboards
-+ *
-+ *  Copyright (c) 2022 Harry Stern <harry@harrystern.net>
-+ *
-+ *  Based on the hid-macally driver
-+ */
-+
-+#include <linux/hid.h>
-+#include <linux/module.h>
-+
-+#include "hid-ids.h"
-+
-+MODULE_AUTHOR("Harry Stern <harry@harrystern.net>");
-+MODULE_DESCRIPTION("REALFORCE R2 Keyboard driver");
-+MODULE_LICENSE("GPL");
-+
-+/*
-+ * Fix the REALFORCE R2's non-boot interface's report descriptor to match the
-+ * events it's actually sending. It claims to send array events but is instead
-+ * sending variable events.
-+ */
-+static __u8 *topre_report_fixup(struct hid_device *hdev, __u8 *rdesc,
-+                               unsigned int *rsize)
-+{
-+      if (*rsize >= 119 && rdesc[69] == 0x29 && rdesc[70] == 0xe7 &&
-+                                               rdesc[71] == 0x81 && rdesc[72] == 0x00) {
-+              hid_info(hdev,
-+                      "fixing up Topre REALFORCE keyboard report descriptor\n");
-+              rdesc[72] = 0x02;
-+      }
-+      return rdesc;
-+}
-+
-+static const struct hid_device_id topre_id_table[] = {
-+      { HID_USB_DEVICE(USB_VENDOR_ID_TOPRE,
-+                       USB_DEVICE_ID_TOPRE_REALFORCE_R2_108) },
-+      { }
-+};
-+MODULE_DEVICE_TABLE(hid, topre_id_table);
-+
-+static struct hid_driver topre_driver = {
-+      .name                   = "topre",
-+      .id_table               = topre_id_table,
-+      .report_fixup           = topre_report_fixup,
-+};
-+
-+module_hid_driver(topre_driver);
--- 
-2.35.1
-
index dd484846166e8be774a6040369d926b06ac89aa4..43e066e3eabd65b31fd77360d2a50e188d5d8a7f 100644 (file)
@@ -399,7 +399,6 @@ ata-libahci_platform-sanity-check-the-dt-child-nodes.patch
 bcache-fix-set_at_max_writeback_rate-for-multiple-at.patch
 soundwire-cadence-don-t-overwrite-msg-buf-during-wri.patch
 soundwire-intel-fix-error-handling-on-dai-registrati.patch
-hid-topre-add-driver-fixing-report-descriptor.patch
 hid-roccat-fix-use-after-free-in-roccat_read.patch
 hsi-ssi_protocol-fix-potential-resource-leak-in-ssip.patch
 md-raid5-wait-for-md_sb_change_pending-in-raid5d.patch
diff --git a/queue-5.15/hid-topre-add-driver-fixing-report-descriptor.patch b/queue-5.15/hid-topre-add-driver-fixing-report-descriptor.patch
deleted file mode 100644 (file)
index 4d5a656..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-From 0f32a4a8c436945c05f7051e889f273267bbc942 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sat, 10 Sep 2022 20:36:13 -0400
-Subject: hid: topre: Add driver fixing report descriptor
-
-From: Harry Stern <harry@harrystern.net>
-
-[ Upstream commit a109d5c45b3d6728b9430716b915afbe16eef27c ]
-
-The Topre REALFORCE R2 firmware incorrectly reports that interface
-descriptor number 1, input report descriptor 2's events are array events
-rather than variable events. That particular report descriptor is used
-to report keypresses when there are more than 6 keys held at a time.
-This bug prevents events from this interface from being registered
-properly, so only 6 keypresses (from a different interface) can be
-registered at once, rather than full n-key rollover.
-
-This commit fixes the bug by setting the correct value in a report_fixup
-function.
-
-The original bug report can be found here:
-Link: https://gitlab.freedesktop.org/libinput/libinput/-/issues/804
-
-Thanks to Benjamin Tissoires for diagnosing the issue with the report
-descriptor.
-
-Signed-off-by: Harry Stern <harry@harrystern.net>
-Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
-Link: https://lore.kernel.org/r/20220911003614.297613-1-harry@harrystern.net
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/hid/Kconfig     |  6 +++++
- drivers/hid/Makefile    |  1 +
- drivers/hid/hid-ids.h   |  3 +++
- drivers/hid/hid-topre.c | 49 +++++++++++++++++++++++++++++++++++++++++
- 4 files changed, 59 insertions(+)
- create mode 100644 drivers/hid/hid-topre.c
-
-diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig
-index 9235ab7161e3..58fcc21bf146 100644
---- a/drivers/hid/Kconfig
-+++ b/drivers/hid/Kconfig
-@@ -1057,6 +1057,12 @@ config HID_TOPSEED
-       Say Y if you have a TopSeed Cyberlink or BTC Emprex or Conceptronic
-       CLLRCMCE remote control.
-+config HID_TOPRE
-+      tristate "Topre REALFORCE keyboards"
-+      depends on HID
-+      help
-+        Say Y for N-key rollover support on Topre REALFORCE R2 108 key keyboards.
-+
- config HID_THINGM
-       tristate "ThingM blink(1) USB RGB LED"
-       depends on HID
-diff --git a/drivers/hid/Makefile b/drivers/hid/Makefile
-index e29efcb1c040..1026ac9e8206 100644
---- a/drivers/hid/Makefile
-+++ b/drivers/hid/Makefile
-@@ -117,6 +117,7 @@ obj-$(CONFIG_HID_GREENASIA)        += hid-gaff.o
- obj-$(CONFIG_HID_THRUSTMASTER)        += hid-tmff.o hid-thrustmaster.o
- obj-$(CONFIG_HID_TIVO)                += hid-tivo.o
- obj-$(CONFIG_HID_TOPSEED)     += hid-topseed.o
-+obj-$(CONFIG_HID_TOPRE)       += hid-topre.o
- obj-$(CONFIG_HID_TWINHAN)     += hid-twinhan.o
- obj-$(CONFIG_HID_U2FZERO)     += hid-u2fzero.o
- hid-uclogic-objs              := hid-uclogic-core.o \
-diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
-index cb2b48d6915e..335b13251c0f 100644
---- a/drivers/hid/hid-ids.h
-+++ b/drivers/hid/hid-ids.h
-@@ -1198,6 +1198,9 @@
- #define USB_DEVICE_ID_TIVO_SLIDE      0x1201
- #define USB_DEVICE_ID_TIVO_SLIDE_PRO  0x1203
-+#define USB_VENDOR_ID_TOPRE                   0x0853
-+#define USB_DEVICE_ID_TOPRE_REALFORCE_R2_108                  0x0148
-+
- #define USB_VENDOR_ID_TOPSEED         0x0766
- #define USB_DEVICE_ID_TOPSEED_CYBERLINK       0x0204
-diff --git a/drivers/hid/hid-topre.c b/drivers/hid/hid-topre.c
-new file mode 100644
-index 000000000000..88a91cdad5f8
---- /dev/null
-+++ b/drivers/hid/hid-topre.c
-@@ -0,0 +1,49 @@
-+// SPDX-License-Identifier: GPL-2.0+
-+/*
-+ *  HID driver for Topre REALFORCE Keyboards
-+ *
-+ *  Copyright (c) 2022 Harry Stern <harry@harrystern.net>
-+ *
-+ *  Based on the hid-macally driver
-+ */
-+
-+#include <linux/hid.h>
-+#include <linux/module.h>
-+
-+#include "hid-ids.h"
-+
-+MODULE_AUTHOR("Harry Stern <harry@harrystern.net>");
-+MODULE_DESCRIPTION("REALFORCE R2 Keyboard driver");
-+MODULE_LICENSE("GPL");
-+
-+/*
-+ * Fix the REALFORCE R2's non-boot interface's report descriptor to match the
-+ * events it's actually sending. It claims to send array events but is instead
-+ * sending variable events.
-+ */
-+static __u8 *topre_report_fixup(struct hid_device *hdev, __u8 *rdesc,
-+                               unsigned int *rsize)
-+{
-+      if (*rsize >= 119 && rdesc[69] == 0x29 && rdesc[70] == 0xe7 &&
-+                                               rdesc[71] == 0x81 && rdesc[72] == 0x00) {
-+              hid_info(hdev,
-+                      "fixing up Topre REALFORCE keyboard report descriptor\n");
-+              rdesc[72] = 0x02;
-+      }
-+      return rdesc;
-+}
-+
-+static const struct hid_device_id topre_id_table[] = {
-+      { HID_USB_DEVICE(USB_VENDOR_ID_TOPRE,
-+                       USB_DEVICE_ID_TOPRE_REALFORCE_R2_108) },
-+      { }
-+};
-+MODULE_DEVICE_TABLE(hid, topre_id_table);
-+
-+static struct hid_driver topre_driver = {
-+      .name                   = "topre",
-+      .id_table               = topre_id_table,
-+      .report_fixup           = topre_report_fixup,
-+};
-+
-+module_hid_driver(topre_driver);
--- 
-2.35.1
-
index 03b52a857ffccef5004daf89051eb618e82e2938..d5e36578149b937dfe87dca73dd3287d2d77c874 100644 (file)
@@ -532,7 +532,6 @@ ata-libahci_platform-sanity-check-the-dt-child-nodes.patch
 bcache-fix-set_at_max_writeback_rate-for-multiple-at.patch
 soundwire-cadence-don-t-overwrite-msg-buf-during-wri.patch
 soundwire-intel-fix-error-handling-on-dai-registrati.patch
-hid-topre-add-driver-fixing-report-descriptor.patch
 hid-roccat-fix-use-after-free-in-roccat_read.patch
 hsi-ssi_protocol-fix-potential-resource-leak-in-ssip.patch
 eventfd-guard-wake_up-in-eventfd-fs-calls-as-well.patch
diff --git a/queue-5.19/hid-topre-add-driver-fixing-report-descriptor.patch b/queue-5.19/hid-topre-add-driver-fixing-report-descriptor.patch
deleted file mode 100644 (file)
index ea7911b..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-From 7d19228b866f40098942fd1a466702f2282eb74d Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sat, 10 Sep 2022 20:36:13 -0400
-Subject: hid: topre: Add driver fixing report descriptor
-
-From: Harry Stern <harry@harrystern.net>
-
-[ Upstream commit a109d5c45b3d6728b9430716b915afbe16eef27c ]
-
-The Topre REALFORCE R2 firmware incorrectly reports that interface
-descriptor number 1, input report descriptor 2's events are array events
-rather than variable events. That particular report descriptor is used
-to report keypresses when there are more than 6 keys held at a time.
-This bug prevents events from this interface from being registered
-properly, so only 6 keypresses (from a different interface) can be
-registered at once, rather than full n-key rollover.
-
-This commit fixes the bug by setting the correct value in a report_fixup
-function.
-
-The original bug report can be found here:
-Link: https://gitlab.freedesktop.org/libinput/libinput/-/issues/804
-
-Thanks to Benjamin Tissoires for diagnosing the issue with the report
-descriptor.
-
-Signed-off-by: Harry Stern <harry@harrystern.net>
-Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
-Link: https://lore.kernel.org/r/20220911003614.297613-1-harry@harrystern.net
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/hid/Kconfig     |  6 +++++
- drivers/hid/Makefile    |  1 +
- drivers/hid/hid-ids.h   |  3 +++
- drivers/hid/hid-topre.c | 49 +++++++++++++++++++++++++++++++++++++++++
- 4 files changed, 59 insertions(+)
- create mode 100644 drivers/hid/hid-topre.c
-
-diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig
-index 70da5931082f..37734fce88e4 100644
---- a/drivers/hid/Kconfig
-+++ b/drivers/hid/Kconfig
-@@ -1141,6 +1141,12 @@ config HID_TOPSEED
-       Say Y if you have a TopSeed Cyberlink or BTC Emprex or Conceptronic
-       CLLRCMCE remote control.
-+config HID_TOPRE
-+      tristate "Topre REALFORCE keyboards"
-+      depends on HID
-+      help
-+        Say Y for N-key rollover support on Topre REALFORCE R2 108 key keyboards.
-+
- config HID_THINGM
-       tristate "ThingM blink(1) USB RGB LED"
-       depends on HID
-diff --git a/drivers/hid/Makefile b/drivers/hid/Makefile
-index cac2cbe26d11..7870a3c9d802 100644
---- a/drivers/hid/Makefile
-+++ b/drivers/hid/Makefile
-@@ -123,6 +123,7 @@ obj-$(CONFIG_HID_GREENASIA)        += hid-gaff.o
- obj-$(CONFIG_HID_THRUSTMASTER)        += hid-tmff.o hid-thrustmaster.o
- obj-$(CONFIG_HID_TIVO)                += hid-tivo.o
- obj-$(CONFIG_HID_TOPSEED)     += hid-topseed.o
-+obj-$(CONFIG_HID_TOPRE)       += hid-topre.o
- obj-$(CONFIG_HID_TWINHAN)     += hid-twinhan.o
- obj-$(CONFIG_HID_U2FZERO)     += hid-u2fzero.o
- hid-uclogic-objs              := hid-uclogic-core.o \
-diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
-index bc550e884f37..28cf838c8399 100644
---- a/drivers/hid/hid-ids.h
-+++ b/drivers/hid/hid-ids.h
-@@ -1231,6 +1231,9 @@
- #define USB_DEVICE_ID_TIVO_SLIDE      0x1201
- #define USB_DEVICE_ID_TIVO_SLIDE_PRO  0x1203
-+#define USB_VENDOR_ID_TOPRE                   0x0853
-+#define USB_DEVICE_ID_TOPRE_REALFORCE_R2_108                  0x0148
-+
- #define USB_VENDOR_ID_TOPSEED         0x0766
- #define USB_DEVICE_ID_TOPSEED_CYBERLINK       0x0204
-diff --git a/drivers/hid/hid-topre.c b/drivers/hid/hid-topre.c
-new file mode 100644
-index 000000000000..88a91cdad5f8
---- /dev/null
-+++ b/drivers/hid/hid-topre.c
-@@ -0,0 +1,49 @@
-+// SPDX-License-Identifier: GPL-2.0+
-+/*
-+ *  HID driver for Topre REALFORCE Keyboards
-+ *
-+ *  Copyright (c) 2022 Harry Stern <harry@harrystern.net>
-+ *
-+ *  Based on the hid-macally driver
-+ */
-+
-+#include <linux/hid.h>
-+#include <linux/module.h>
-+
-+#include "hid-ids.h"
-+
-+MODULE_AUTHOR("Harry Stern <harry@harrystern.net>");
-+MODULE_DESCRIPTION("REALFORCE R2 Keyboard driver");
-+MODULE_LICENSE("GPL");
-+
-+/*
-+ * Fix the REALFORCE R2's non-boot interface's report descriptor to match the
-+ * events it's actually sending. It claims to send array events but is instead
-+ * sending variable events.
-+ */
-+static __u8 *topre_report_fixup(struct hid_device *hdev, __u8 *rdesc,
-+                               unsigned int *rsize)
-+{
-+      if (*rsize >= 119 && rdesc[69] == 0x29 && rdesc[70] == 0xe7 &&
-+                                               rdesc[71] == 0x81 && rdesc[72] == 0x00) {
-+              hid_info(hdev,
-+                      "fixing up Topre REALFORCE keyboard report descriptor\n");
-+              rdesc[72] = 0x02;
-+      }
-+      return rdesc;
-+}
-+
-+static const struct hid_device_id topre_id_table[] = {
-+      { HID_USB_DEVICE(USB_VENDOR_ID_TOPRE,
-+                       USB_DEVICE_ID_TOPRE_REALFORCE_R2_108) },
-+      { }
-+};
-+MODULE_DEVICE_TABLE(hid, topre_id_table);
-+
-+static struct hid_driver topre_driver = {
-+      .name                   = "topre",
-+      .id_table               = topre_id_table,
-+      .report_fixup           = topre_report_fixup,
-+};
-+
-+module_hid_driver(topre_driver);
--- 
-2.35.1
-
index 9c0cc857047179661ba512034c007b031de183bb..8b4416eccb6e65b569bd219d51fa53f7f9945345 100644 (file)
@@ -725,7 +725,6 @@ ata-libahci_platform-sanity-check-the-dt-child-nodes.patch
 bcache-fix-set_at_max_writeback_rate-for-multiple-at.patch
 soundwire-cadence-don-t-overwrite-msg-buf-during-wri.patch
 soundwire-intel-fix-error-handling-on-dai-registrati.patch
-hid-topre-add-driver-fixing-report-descriptor.patch
 hid-roccat-fix-use-after-free-in-roccat_read.patch
 hsi-ssi_protocol-fix-potential-resource-leak-in-ssip.patch
 hid-nintendo-check-analog-user-calibration-for-plaus.patch
diff --git a/queue-5.4/hid-topre-add-driver-fixing-report-descriptor.patch b/queue-5.4/hid-topre-add-driver-fixing-report-descriptor.patch
deleted file mode 100644 (file)
index bda33ab..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-From 7e62b8dc1be82283773f4b3acefd2c875019a12f Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sat, 10 Sep 2022 20:36:13 -0400
-Subject: hid: topre: Add driver fixing report descriptor
-
-From: Harry Stern <harry@harrystern.net>
-
-[ Upstream commit a109d5c45b3d6728b9430716b915afbe16eef27c ]
-
-The Topre REALFORCE R2 firmware incorrectly reports that interface
-descriptor number 1, input report descriptor 2's events are array events
-rather than variable events. That particular report descriptor is used
-to report keypresses when there are more than 6 keys held at a time.
-This bug prevents events from this interface from being registered
-properly, so only 6 keypresses (from a different interface) can be
-registered at once, rather than full n-key rollover.
-
-This commit fixes the bug by setting the correct value in a report_fixup
-function.
-
-The original bug report can be found here:
-Link: https://gitlab.freedesktop.org/libinput/libinput/-/issues/804
-
-Thanks to Benjamin Tissoires for diagnosing the issue with the report
-descriptor.
-
-Signed-off-by: Harry Stern <harry@harrystern.net>
-Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
-Link: https://lore.kernel.org/r/20220911003614.297613-1-harry@harrystern.net
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/hid/Kconfig     |  6 +++++
- drivers/hid/Makefile    |  1 +
- drivers/hid/hid-ids.h   |  3 +++
- drivers/hid/hid-topre.c | 49 +++++++++++++++++++++++++++++++++++++++++
- 4 files changed, 59 insertions(+)
- create mode 100644 drivers/hid/hid-topre.c
-
-diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig
-index 5169a38ee47a..56315a0be78a 100644
---- a/drivers/hid/Kconfig
-+++ b/drivers/hid/Kconfig
-@@ -992,6 +992,12 @@ config HID_TOPSEED
-       Say Y if you have a TopSeed Cyberlink or BTC Emprex or Conceptronic
-       CLLRCMCE remote control.
-+config HID_TOPRE
-+      tristate "Topre REALFORCE keyboards"
-+      depends on HID
-+      help
-+        Say Y for N-key rollover support on Topre REALFORCE R2 108 key keyboards.
-+
- config HID_THINGM
-       tristate "ThingM blink(1) USB RGB LED"
-       depends on HID
-diff --git a/drivers/hid/Makefile b/drivers/hid/Makefile
-index 0c03308cfb08..bb618c74c442 100644
---- a/drivers/hid/Makefile
-+++ b/drivers/hid/Makefile
-@@ -110,6 +110,7 @@ obj-$(CONFIG_HID_GREENASIA)        += hid-gaff.o
- obj-$(CONFIG_HID_THRUSTMASTER)        += hid-tmff.o
- obj-$(CONFIG_HID_TIVO)                += hid-tivo.o
- obj-$(CONFIG_HID_TOPSEED)     += hid-topseed.o
-+obj-$(CONFIG_HID_TOPRE)       += hid-topre.o
- obj-$(CONFIG_HID_TWINHAN)     += hid-twinhan.o
- obj-$(CONFIG_HID_U2FZERO)     += hid-u2fzero.o
- hid-uclogic-objs              := hid-uclogic-core.o \
-diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
-index c587a77d493c..fbceead99b3c 100644
---- a/drivers/hid/hid-ids.h
-+++ b/drivers/hid/hid-ids.h
-@@ -1156,6 +1156,9 @@
- #define USB_DEVICE_ID_TIVO_SLIDE      0x1201
- #define USB_DEVICE_ID_TIVO_SLIDE_PRO  0x1203
-+#define USB_VENDOR_ID_TOPRE                   0x0853
-+#define USB_DEVICE_ID_TOPRE_REALFORCE_R2_108                  0x0148
-+
- #define USB_VENDOR_ID_TOPSEED         0x0766
- #define USB_DEVICE_ID_TOPSEED_CYBERLINK       0x0204
-diff --git a/drivers/hid/hid-topre.c b/drivers/hid/hid-topre.c
-new file mode 100644
-index 000000000000..88a91cdad5f8
---- /dev/null
-+++ b/drivers/hid/hid-topre.c
-@@ -0,0 +1,49 @@
-+// SPDX-License-Identifier: GPL-2.0+
-+/*
-+ *  HID driver for Topre REALFORCE Keyboards
-+ *
-+ *  Copyright (c) 2022 Harry Stern <harry@harrystern.net>
-+ *
-+ *  Based on the hid-macally driver
-+ */
-+
-+#include <linux/hid.h>
-+#include <linux/module.h>
-+
-+#include "hid-ids.h"
-+
-+MODULE_AUTHOR("Harry Stern <harry@harrystern.net>");
-+MODULE_DESCRIPTION("REALFORCE R2 Keyboard driver");
-+MODULE_LICENSE("GPL");
-+
-+/*
-+ * Fix the REALFORCE R2's non-boot interface's report descriptor to match the
-+ * events it's actually sending. It claims to send array events but is instead
-+ * sending variable events.
-+ */
-+static __u8 *topre_report_fixup(struct hid_device *hdev, __u8 *rdesc,
-+                               unsigned int *rsize)
-+{
-+      if (*rsize >= 119 && rdesc[69] == 0x29 && rdesc[70] == 0xe7 &&
-+                                               rdesc[71] == 0x81 && rdesc[72] == 0x00) {
-+              hid_info(hdev,
-+                      "fixing up Topre REALFORCE keyboard report descriptor\n");
-+              rdesc[72] = 0x02;
-+      }
-+      return rdesc;
-+}
-+
-+static const struct hid_device_id topre_id_table[] = {
-+      { HID_USB_DEVICE(USB_VENDOR_ID_TOPRE,
-+                       USB_DEVICE_ID_TOPRE_REALFORCE_R2_108) },
-+      { }
-+};
-+MODULE_DEVICE_TABLE(hid, topre_id_table);
-+
-+static struct hid_driver topre_driver = {
-+      .name                   = "topre",
-+      .id_table               = topre_id_table,
-+      .report_fixup           = topre_report_fixup,
-+};
-+
-+module_hid_driver(topre_driver);
--- 
-2.35.1
-
index 3e1845cf23f9fb0c5ac19053d5ba5edc9e96a22e..2e2264278c1fa6e3065ce8333134b152aed30fc6 100644 (file)
@@ -240,7 +240,6 @@ power-supply-adp5061-fix-out-of-bounds-read-in-adp50.patch
 staging-vt6655-fix-potential-memory-leak.patch
 ata-libahci_platform-sanity-check-the-dt-child-nodes.patch
 bcache-fix-set_at_max_writeback_rate-for-multiple-at.patch
-hid-topre-add-driver-fixing-report-descriptor.patch
 hid-roccat-fix-use-after-free-in-roccat_read.patch
 hsi-ssi_protocol-fix-potential-resource-leak-in-ssip.patch
 md-raid5-wait-for-md_sb_change_pending-in-raid5d.patch