summaryrefslogtreecommitdiffstats
path: root/HID-input-fix-a4tech-horizontal-wheel-custom-usage.patch
diff options
context:
space:
mode:
Diffstat (limited to 'HID-input-fix-a4tech-horizontal-wheel-custom-usage.patch')
-rw-r--r--HID-input-fix-a4tech-horizontal-wheel-custom-usage.patch142
1 files changed, 0 insertions, 142 deletions
diff --git a/HID-input-fix-a4tech-horizontal-wheel-custom-usage.patch b/HID-input-fix-a4tech-horizontal-wheel-custom-usage.patch
deleted file mode 100644
index df6a45999..000000000
--- a/HID-input-fix-a4tech-horizontal-wheel-custom-usage.patch
+++ /dev/null
@@ -1,142 +0,0 @@
-From mboxrd@z Thu Jan 1 00:00:00 1970
-Return-Path: <SRS0=TvG7=UK=vger.kernel.org=linux-kernel-owner@kernel.org>
-X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
- aws-us-west-2-korg-lkml-1.web.codeaurora.org
-X-Spam-Level:
-X-Spam-Status: No, score=-8.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS,
- INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,
- USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0
-Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
- by smtp.lore.kernel.org (Postfix) with ESMTP id 25464C4321A
- for <linux-kernel@archiver.kernel.org>; Tue, 11 Jun 2019 12:13:29 +0000 (UTC)
-Received: from vger.kernel.org (vger.kernel.org [209.132.180.67])
- by mail.kernel.org (Postfix) with ESMTP id 0217A206E0
- for <linux-kernel@archiver.kernel.org>; Tue, 11 Jun 2019 12:13:29 +0000 (UTC)
-Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
- id S2387819AbfFKMN1 (ORCPT
- <rfc822;linux-kernel@archiver.kernel.org>);
- Tue, 11 Jun 2019 08:13:27 -0400
-Received: from mx2.suse.de ([195.135.220.15]:44798 "EHLO mx1.suse.de"
- rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP
- id S2387538AbfFKMN1 (ORCPT <rfc822;linux-kernel@vger.kernel.org>);
- Tue, 11 Jun 2019 08:13:27 -0400
-X-Virus-Scanned: by amavisd-new at test-mx.suse.de
-Received: from relay2.suse.de (unknown [195.135.220.254])
- by mx1.suse.de (Postfix) with ESMTP id 5E5D7B00C;
- Tue, 11 Jun 2019 12:13:25 +0000 (UTC)
-From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
-To: Jiri Kosina <jikos@kernel.org>,
- Benjamin Tissoires <benjamin.tissoires@redhat.com>
-Cc: dmitry.torokhov@gmail.com, wbauer@tmo.at,
- Nicolas Saenz Julienne <nsaenzjulienne@suse.de>,
- linux-input@vger.kernel.org, linux-kernel@vger.kernel.org
-Subject: [PATCH v2] HID: input: fix a4tech horizontal wheel custom usage
-Date: Tue, 11 Jun 2019 14:13:20 +0200
-Message-Id: <20190611121320.30267-1-nsaenzjulienne@suse.de>
-X-Mailer: git-send-email 2.21.0
-MIME-Version: 1.0
-Content-Transfer-Encoding: 8bit
-Sender: linux-kernel-owner@vger.kernel.org
-Precedence: bulk
-List-ID: <linux-kernel.vger.kernel.org>
-X-Mailing-List: linux-kernel@vger.kernel.org
-Archived-At: <https://lore.kernel.org/lkml/20190611121320.30267-1-nsaenzjulienne@suse.de/>
-List-Archive: <https://lore.kernel.org/lkml/>
-List-Post: <mailto:linux-kernel@vger.kernel.org>
-
-Some a4tech mice use the 'GenericDesktop.00b8' usage to inform whether
-the previous wheel report was horizontal or vertical. Before
-c01908a14bf73 ("HID: input: add mapping for "Toggle Display" key") this
-usage was being mapped to 'Relative.Misc'. After the patch it's simply
-ignored (usage->type == 0 & usage->code == 0). Which ultimately makes
-hid-a4tech ignore the WHEEL/HWHEEL selection event, as it has no
-usage->type.
-
-We shouldn't rely on a mapping for that usage as it's nonstandard and
-doesn't really map to an input event. So we bypass the mapping and make
-sure the custom event handling properly handles both reports.
-
-Fixes: c01908a14bf73 ("HID: input: add mapping for "Toggle Display" key")
-Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
----
-
-NOTE: I CC'd Wolfgang as he's the one who can test this.
-
-Changes since v1:
- - new approach, moved fix into hid-a4tech
-
- drivers/hid/hid-a4tech.c | 30 +++++++++++++++++++++++++++---
- 1 file changed, 27 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/hid/hid-a4tech.c b/drivers/hid/hid-a4tech.c
-index 98bf694626f7..3a8c4a5971f7 100644
---- a/drivers/hid/hid-a4tech.c
-+++ b/drivers/hid/hid-a4tech.c
-@@ -23,12 +23,36 @@
- #define A4_2WHEEL_MOUSE_HACK_7 0x01
- #define A4_2WHEEL_MOUSE_HACK_B8 0x02
-
-+#define A4_WHEEL_ORIENTATION (HID_UP_GENDESK | 0x000000b8)
-+
- struct a4tech_sc {
- unsigned long quirks;
- unsigned int hw_wheel;
- __s32 delayed_value;
- };
-
-+static int a4_input_mapping(struct hid_device *hdev, struct hid_input *hi,
-+ struct hid_field *field, struct hid_usage *usage,
-+ unsigned long **bit, int *max)
-+{
-+ struct a4tech_sc *a4 = hid_get_drvdata(hdev);
-+
-+ if (a4->quirks & A4_2WHEEL_MOUSE_HACK_B8 &&
-+ usage->hid == A4_WHEEL_ORIENTATION) {
-+ /*
-+ * We do not want to have this usage mapped to anything as it's
-+ * nonstandard and doesn't really behave like an HID report.
-+ * It's only selecting the orientation (vertical/horizontal) of
-+ * the previous mouse wheel report. The input_events will be
-+ * generated once both reports are recorded in a4_event().
-+ */
-+ return -1;
-+ }
-+
-+ return 0;
-+
-+}
-+
- static int a4_input_mapped(struct hid_device *hdev, struct hid_input *hi,
- struct hid_field *field, struct hid_usage *usage,
- unsigned long **bit, int *max)
-@@ -52,8 +76,7 @@ static int a4_event(struct hid_device *hdev, struct hid_field *field,
- struct a4tech_sc *a4 = hid_get_drvdata(hdev);
- struct input_dev *input;
-
-- if (!(hdev->claimed & HID_CLAIMED_INPUT) || !field->hidinput ||
-- !usage->type)
-+ if (!(hdev->claimed & HID_CLAIMED_INPUT) || !field->hidinput)
- return 0;
-
- input = field->hidinput->input;
-@@ -64,7 +87,7 @@ static int a4_event(struct hid_device *hdev, struct hid_field *field,
- return 1;
- }
-
-- if (usage->hid == 0x000100b8) {
-+ if (usage->hid == A4_WHEEL_ORIENTATION) {
- input_event(input, EV_REL, value ? REL_HWHEEL :
- REL_WHEEL, a4->delayed_value);
- input_event(input, EV_REL, value ? REL_HWHEEL_HI_RES :
-@@ -131,6 +154,7 @@ MODULE_DEVICE_TABLE(hid, a4_devices);
- static struct hid_driver a4_driver = {
- .name = "a4tech",
- .id_table = a4_devices,
-+ .input_mapping = a4_input_mapping,
- .input_mapped = a4_input_mapped,
- .event = a4_event,
- .probe = a4_probe,
---
-2.21.0
-
-