summaryrefslogtreecommitdiffstats
path: root/drivers/hid/hid-vivaldi-common.h
diff options
context:
space:
mode:
authorStephen Boyd <swboyd@chromium.org>2022-03-14 21:04:39 -0700
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2022-03-14 21:11:10 -0700
commit33bbe04a15f292998298cdb5751788c15acd60df (patch)
treec058434a3b47884d8a8ab8ab1b3072f41b2d10fc /drivers/hid/hid-vivaldi-common.h
parent45ceaf14d53a123e5955477da501bc6f26b99039 (diff)
downloadlinux-stable-33bbe04a15f292998298cdb5751788c15acd60df.tar.gz
linux-stable-33bbe04a15f292998298cdb5751788c15acd60df.tar.bz2
linux-stable-33bbe04a15f292998298cdb5751788c15acd60df.zip
HID: google: extract Vivaldi hid feature mapping for use in hid-hammer
We need to support parsing the HID device in both the Vivaldi and the Hammer drivers so that we can properly expose the function row physmap to userspace when a hammer device uses a vivaldi keyboard layout for the function row keys. Extract the feature mapping logic from the vivaldi driver into an hid specific vivaldi library so we can use it from both HID drivers. To allow more code sharing we mandate that vivaldi data must be placed at the very beginning of the driver data attached to the HID device instance. Signed-off-by: Stephen Boyd <swboyd@chromium.org> Tested-by: Stephen Boyd <swboyd@chromium.org> # coachz, wormdingler Link: https://lore.kernel.org/r/20220228075446.466016-4-dmitry.torokhov@gmail.com Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Diffstat (limited to 'drivers/hid/hid-vivaldi-common.h')
-rw-r--r--drivers/hid/hid-vivaldi-common.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/hid/hid-vivaldi-common.h b/drivers/hid/hid-vivaldi-common.h
new file mode 100644
index 000000000000..d42e82d77825
--- /dev/null
+++ b/drivers/hid/hid-vivaldi-common.h
@@ -0,0 +1,16 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef _HID_VIVALDI_COMMON_H
+#define _HID_VIVALDI_COMMON_H
+
+struct hid_device;
+struct hid_field;
+struct hid_input;
+struct hid_usage;
+
+void vivaldi_feature_mapping(struct hid_device *hdev,
+ struct hid_field *field, struct hid_usage *usage);
+
+int vivaldi_input_configured(struct hid_device *hdev,
+ struct hid_input *hidinput);
+
+#endif /* _HID_VIVALDI_COMMON_H */