linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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

  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).