From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
To: Angela Czubak <acz@semihalf.com>
Cc: linux-input@vger.kernel.org, upstream@semihalf.com
Subject: Re: [PATCH 04/18] HID: haptic: introduce hid_haptic_device
Date: Fri, 7 Jan 2022 14:18:04 -0800 [thread overview]
Message-ID: <Ydi8HAdQWjEOn+Jj@google.com> (raw)
In-Reply-To: <20211221191743.1893185-5-acz@semihalf.com>
On Tue, Dec 21, 2021 at 07:17:29PM +0000, Angela Czubak wrote:
> Define a new structure that contains simple haptic device configuration
> as well as current state.
>
> Signed-off-by: Angela Czubak <acz@semihalf.com>
> ---
> drivers/hid/Kconfig | 4 +++
> drivers/hid/Makefile | 1 +
> drivers/hid/hid-haptic.c | 10 ++++++
> drivers/hid/hid-haptic.h | 68 ++++++++++++++++++++++++++++++++++++++++
> 4 files changed, 83 insertions(+)
> create mode 100644 drivers/hid/hid-haptic.c
> create mode 100644 drivers/hid/hid-haptic.h
>
> diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig
> index a7c78ac96270..8d1eb4491a7f 100644
> --- a/drivers/hid/Kconfig
> +++ b/drivers/hid/Kconfig
> @@ -89,6 +89,10 @@ config HID_GENERIC
>
> If unsure, say Y.
>
> +config HID_HAPTIC
> + bool
> + default n
'n' is the default, no need to have it explicit.
> +
> menu "Special HID drivers"
> depends on HID
>
> diff --git a/drivers/hid/Makefile b/drivers/hid/Makefile
> index 55a6fa3eca5a..65d54ccd4574 100644
> --- a/drivers/hid/Makefile
> +++ b/drivers/hid/Makefile
> @@ -4,6 +4,7 @@
> #
> hid-y := hid-core.o hid-input.o hid-quirks.o
> hid-$(CONFIG_DEBUG_FS) += hid-debug.o
> +hid-$(CONFIG_HID_HAPTIC) += hid-haptic.o
>
> obj-$(CONFIG_HID) += hid.o
> obj-$(CONFIG_UHID) += uhid.o
> diff --git a/drivers/hid/hid-haptic.c b/drivers/hid/hid-haptic.c
> new file mode 100644
> index 000000000000..0910d8af9f38
> --- /dev/null
> +++ b/drivers/hid/hid-haptic.c
> @@ -0,0 +1,10 @@
> +// SPDX-License-Identifier: GPL-2.0-or-later
> +/*
> + * HID Haptic support for Linux
> + *
> + * Copyright (c) 2021 Angela Czubak
> + */
> +
> +/*
> + */
What is this comment block for? Actually I do not see why this needs to
be a separate patch.
> +#include "hid-haptic.h"
> diff --git a/drivers/hid/hid-haptic.h b/drivers/hid/hid-haptic.h
> new file mode 100644
> index 000000000000..41f19cd22f75
> --- /dev/null
> +++ b/drivers/hid/hid-haptic.h
> @@ -0,0 +1,68 @@
> +/* SPDX-License-Identifier: GPL-2.0-or-later */
> +/*
> + * HID Haptic support for Linux
> + *
> + * Copyright (c) 2021 Angela Czubak
> + */
> +
> +/*
> + */
> +
> +
> +#include <linux/hid.h>
> +
> +#define HID_HAPTIC_ORDINAL_WAVEFORMNONE 1
> +#define HID_HAPTIC_ORDINAL_WAVEFORMSTOP 2
> +
> +#define HID_HAPTIC_PRESS_THRESH 200
> +#define HID_HAPTIC_RELEASE_THRESH 180
> +
> +#define HID_HAPTIC_MODE_DEVICE 0
> +#define HID_HAPTIC_MODE_KERNEL 1
> +
> +struct hid_haptic_effect {
> + __u8 *report_buf;
This is a matter of preference, but in kernel we normally use u8, s16,
etc, and underscored versions are for headers that are part of uapi.
> + struct input_dev *input_dev;
> + struct work_struct work;
> + struct list_head control;
> + struct mutex control_mutex;
> +};
> +
> +struct hid_haptic_effect_node {
> + struct list_head node;
> + struct file *file;
> +};
> +
> +struct hid_haptic_device {
> + struct input_dev *input_dev;
> + struct hid_device *hdev;
> + struct hid_report *auto_trigger_report;
> + struct mutex auto_trigger_mutex;
> + struct workqueue_struct *wq;
> + struct hid_report *manual_trigger_report;
> + struct mutex manual_trigger_mutex;
> + size_t manual_trigger_report_len;
> + int pressed_state;
> + __s32 pressure_sum;
> + __s32 force_logical_minimum;
> + __s32 force_physical_minimum;
> + __s32 force_resolution;
> + __u32 press_threshold;
> + __u32 release_threshold;
> + __u32 mode;
> + __u32 default_auto_trigger;
> + __u32 vendor_page;
> + __u32 vendor_id;
> + __u32 max_waveform_id;
> + __u32 max_duration_id;
> + __u16 *hid_usage_map;
> + __u32 *duration_map;
> + __u16 press_ordinal_orig;
> + __u16 press_ordinal_cur;
> + __u16 release_ordinal_orig;
> + __u16 release_ordinal_cur;
> +#define HID_HAPTIC_RELEASE_EFFECT_ID 0
> +#define HID_HAPTIC_PRESS_EFFECT_ID 1
Why these definitions are here?
> + struct hid_haptic_effect *effect;
> + struct hid_haptic_effect stop_effect;
> +};
> --
> 2.34.1.307.g9b7440fafd-goog
>
Thanks.
--
Dmitry
next prev parent reply other threads:[~2022-01-07 22:18 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-21 19:17 [PATCH 00/18] *** Implement simple haptic HID support *** Angela Czubak
2021-12-21 19:17 ` [PATCH 01/18] HID: add haptics page defines Angela Czubak
2022-01-07 21:40 ` Dmitry Torokhov
2021-12-21 19:17 ` [PATCH 02/18] Input: add FF_HID effect type Angela Czubak
2021-12-30 16:41 ` Harry Cutts
2021-12-21 19:17 ` [PATCH 03/18] Input: add INPUT_PROP_HAPTIC_TOUCHPAD Angela Czubak
2022-01-07 21:43 ` Dmitry Torokhov
2021-12-21 19:17 ` [PATCH 04/18] HID: haptic: introduce hid_haptic_device Angela Czubak
2022-01-07 22:18 ` Dmitry Torokhov [this message]
2022-01-10 19:42 ` Angela Czubak
2021-12-21 19:17 ` [PATCH 05/18] HID: introduce hid_get_feature Angela Czubak
2022-01-07 22:01 ` Dmitry Torokhov
2022-01-10 19:43 ` Angela Czubak
2022-01-12 9:43 ` Benjamin Tissoires
2022-01-12 11:26 ` Angela Czubak
2022-01-13 9:54 ` Benjamin Tissoires
2022-01-14 18:24 ` Angela Czubak
2022-01-17 10:08 ` Benjamin Tissoires
2021-12-21 19:17 ` [PATCH 06/18] HID: haptic: add functions for mapping and configuration Angela Czubak
2021-12-21 19:17 ` [PATCH 07/18] HID: input: allow mapping of haptic output Angela Czubak
2022-01-07 21:58 ` Dmitry Torokhov
2021-12-21 19:17 ` [PATCH 08/18] HID: haptic: initialize haptic device Angela Czubak
2021-12-21 19:17 ` [PATCH 09/18] Input: add shared effects Angela Czubak
2021-12-21 19:17 ` [PATCH 10/18] HID: haptic: implement release and press effects Angela Czubak
2021-12-21 19:17 ` [PATCH 11/18] HID: input: calculate resolution for pressure Angela Czubak
2022-01-07 22:23 ` Dmitry Torokhov
2021-12-21 19:17 ` [PATCH 12/18] HID: haptic: add functions handling events Angela Czubak
2021-12-21 19:17 ` [PATCH 13/18] Input: MT - toggle ABS_PRESSURE pointer emulation Angela Czubak
2022-01-07 22:07 ` Dmitry Torokhov
2022-01-10 19:43 ` Angela Czubak
2022-01-10 21:02 ` Dmitry Torokhov
2022-01-11 17:06 ` Angela Czubak
2022-01-12 2:19 ` Sean O'Brien
2022-01-12 2:52 ` Dmitry Torokhov
2022-01-12 9:02 ` Angela Czubak
2022-01-12 9:17 ` Benjamin Tissoires
2022-01-14 18:26 ` Angela Czubak
2022-01-21 6:10 ` Peter Hutterer
2022-01-25 16:56 ` Angela Czubak
2022-01-28 5:25 ` Peter Hutterer
2021-12-21 19:17 ` [PATCH 14/18] HID: haptic: add hid_haptic_switch_mode Angela Czubak
2021-12-21 19:17 ` [PATCH 15/18] HID: multitouch: add haptic multitouch support Angela Czubak
2021-12-21 19:17 ` [PATCH 16/18] Input: introduce EVIOCFF(TAKE|RELEASE)CONTROL Angela Czubak
2021-12-21 19:17 ` [PATCH 17/18] HID: haptic: add hid_haptic_change_control Angela Czubak
2021-12-21 19:17 ` [PATCH 18/18] HID: i2c-hid: fix i2c_hid_set_or_send_report Angela Czubak
2022-01-08 6:46 ` Dmitry Torokhov
2022-01-10 19:43 ` Angela Czubak
2021-12-22 16:17 ` [PATCH 00/18] *** Implement simple haptic HID support *** Roderick Colenbrander
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Ydi8HAdQWjEOn+Jj@google.com \
--to=dmitry.torokhov@gmail.com \
--cc=acz@semihalf.com \
--cc=linux-input@vger.kernel.org \
--cc=upstream@semihalf.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).