mbox series

[v4,0/4] Input/HID: Consolidate ChromeOS Vivaldi keyboard logic

Message ID 20220216195901.1326924-1-swboyd@chromium.org
Headers show
Series Input/HID: Consolidate ChromeOS Vivaldi keyboard logic | expand

Message

Stephen Boyd Feb. 16, 2022, 7:58 p.m. UTC
This is a follow-on to this thread[1] where we discussed the need to
support the vivaldi keyboard function row keys in the google hammer
driver. I've extracted the common code into a new vivaldi-fmap.c file
that can be used by the various keyboard drivers used on ChromeOS
devices to expose the function_row_physmap sysfs attribute. Then we make
another file to keep the HID parsing logic common for the vivaldi and
hammer keyboards. Finally, we add support for the function row physmap
attribute to the hammer driver.

Changes from v3 (https://lore.kernel.org/r/20220211012510.1198155-1-swboyd@chromium.org):
 * Changed vivaldi-keymap to vivaldi-fmap

Changes from v2 (https://lore.kernel.org/r/20220209225556.3992827-1-swboyd@chromium.org):
 * Drop first patch to change to u16
 * Change array type to u32 in vivaldi_data

Changes from v1 (https://lore.kernel.org/r/20220204202021.895426-1-swboyd@chromium.org):
 * Yet another new file for HID part to fix compilation problems

Stephen Boyd (3):
  Input: Extract ChromeOS vivaldi physmap show function
  HID: Extract vivaldi hid feature mapping for use in hid-hammer
  HID: google: Add support for vivaldi to hid-hammer

Zhengqiao Xia (1):
  HID: google: modify HID device groups of eel

 drivers/hid/Kconfig                   | 11 +++
 drivers/hid/Makefile                  |  1 +
 drivers/hid/hid-google-hammer.c       | 97 +++++++++++++++++++++------
 drivers/hid/hid-vivaldi-common.c      | 97 +++++++++++++++++++++++++++
 drivers/hid/hid-vivaldi.c             | 88 ++----------------------
 drivers/input/Kconfig                 |  7 ++
 drivers/input/Makefile                |  1 +
 drivers/input/keyboard/Kconfig        |  2 +
 drivers/input/keyboard/atkbd.c        | 22 ++----
 drivers/input/keyboard/cros_ec_keyb.c | 32 +++------
 drivers/input/vivaldi-fmap.c          | 39 +++++++++++
 include/linux/input/vivaldi-fmap.h    | 37 ++++++++++
 12 files changed, 292 insertions(+), 142 deletions(-)
 create mode 100644 drivers/hid/hid-vivaldi-common.c
 create mode 100644 drivers/input/vivaldi-fmap.c
 create mode 100644 include/linux/input/vivaldi-fmap.h

[1] https://lore.kernel.org/r/nycvar.YFH.7.76.2201140935460.28059@cbobk.fhfr.pm

base-commit: dfd42facf1e4ada021b939b4e19c935dcdd55566

Comments

Dmitry Torokhov Feb. 28, 2022, 7:59 a.m. UTC | #1
Hi Stephen,

On Wed, Feb 16, 2022 at 11:58:58AM -0800, Stephen Boyd wrote:
> diff --git a/include/linux/input/vivaldi-fmap.h b/include/linux/input/vivaldi-fmap.h
> new file mode 100644
> index 000000000000..57563d9da022
> --- /dev/null
> +++ b/include/linux/input/vivaldi-fmap.h
> @@ -0,0 +1,28 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +#ifndef _VIVALDI_KEYMAP_H
> +#define _VIVALDI_KEYMAP_H
> +
> +#include <linux/types.h>
> +
> +#define VIVALDI_MIN_FN_ROW_KEY	1
> +#define VIVALDI_MAX_FN_ROW_KEY	24

These 2 are actually details of HID, we had a #define in atkbd which I
lifted as VIVALDI_MAX_FUNCTION_ROW_KEYS and put here, and dropped it
from atkbd and made cros_ec keyboard driver use it as well.

Thanks.