mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-26 19:00:25 +00:00
HID: quirks: Allow inverting the absolute X/Y values
[ Upstream commit fd8d135b2c
]
Add a HID_QUIRK_X_INVERT/HID_QUIRK_Y_INVERT quirk that can be used
to invert the X/Y values.
Signed-off-by: Alistair Francis <alistair@alistair23.me>
[bentiss: silence checkpatch warning]
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Link: https://lore.kernel.org/r/20211208124045.61815-2-alistair@alistair23.me
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
59f0363346
commit
d698e024be
2 changed files with 8 additions and 0 deletions
|
@ -1288,6 +1288,12 @@ void hidinput_hid_event(struct hid_device *hid, struct hid_field *field, struct
|
||||||
|
|
||||||
input = field->hidinput->input;
|
input = field->hidinput->input;
|
||||||
|
|
||||||
|
if (usage->type == EV_ABS &&
|
||||||
|
(((*quirks & HID_QUIRK_X_INVERT) && usage->code == ABS_X) ||
|
||||||
|
((*quirks & HID_QUIRK_Y_INVERT) && usage->code == ABS_Y))) {
|
||||||
|
value = field->logical_maximum - value;
|
||||||
|
}
|
||||||
|
|
||||||
if (usage->hat_min < usage->hat_max || usage->hat_dir) {
|
if (usage->hat_min < usage->hat_max || usage->hat_dir) {
|
||||||
int hat_dir = usage->hat_dir;
|
int hat_dir = usage->hat_dir;
|
||||||
if (!hat_dir)
|
if (!hat_dir)
|
||||||
|
|
|
@ -345,6 +345,8 @@ struct hid_item {
|
||||||
/* BIT(9) reserved for backward compatibility, was NO_INIT_INPUT_REPORTS */
|
/* BIT(9) reserved for backward compatibility, was NO_INIT_INPUT_REPORTS */
|
||||||
#define HID_QUIRK_ALWAYS_POLL BIT(10)
|
#define HID_QUIRK_ALWAYS_POLL BIT(10)
|
||||||
#define HID_QUIRK_INPUT_PER_APP BIT(11)
|
#define HID_QUIRK_INPUT_PER_APP BIT(11)
|
||||||
|
#define HID_QUIRK_X_INVERT BIT(12)
|
||||||
|
#define HID_QUIRK_Y_INVERT BIT(13)
|
||||||
#define HID_QUIRK_SKIP_OUTPUT_REPORTS BIT(16)
|
#define HID_QUIRK_SKIP_OUTPUT_REPORTS BIT(16)
|
||||||
#define HID_QUIRK_SKIP_OUTPUT_REPORT_ID BIT(17)
|
#define HID_QUIRK_SKIP_OUTPUT_REPORT_ID BIT(17)
|
||||||
#define HID_QUIRK_NO_OUTPUT_REPORTS_ON_INTR_EP BIT(18)
|
#define HID_QUIRK_NO_OUTPUT_REPORTS_ON_INTR_EP BIT(18)
|
||||||
|
|
Loading…
Reference in a new issue