From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
To: Gabriele Mazzotta <gabriele.mzt@gmail.com>
Cc: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org,
rydberg@bitmath.org, silverhammermba@gmail.com,
peter.hutterer@who-t.net, hdegoede@redhat.com,
benjamin.tissoires@gmail.com, grafi@grafi.jp, oneukum@suse.de
Subject: Re: [PATCH v3 5/5] input: MT - add ABS_TOOL_WIDTH to the legacy pointer emulation
Date: Thu, 11 Jun 2015 17:38:27 -0700 [thread overview]
Message-ID: <20150612003827.GB20581@dtor-pixel> (raw)
In-Reply-To: <1427035436-2168-6-git-send-email-gabriele.mzt@gmail.com>
Hi Gabriele,
On Sun, Mar 22, 2015 at 03:43:56PM +0100, Gabriele Mazzotta wrote:
> Userspace might still rely on ABS_TOOL_WIDTH to determine the width of
> contacts, so add it to the legacy pointer emulation.
I do not think we can do that, at least not in such straightforward
manner, because while ABS_TOOL_WIDTH uses abstract units, normally in
the range of 0 - 15 (16 for bcm5974 driver) ABS_MT_TOUCH_MAJOR reports in
surface units. We would need to come up with a way to scale one into
another and make sure we are not stomping on whatever driver choses to
implement on its own.
In addition, the conversion only makes sense for touchpads, not tablets
or touchscreens.
>
> Signed-off-by: Gabriele Mazzotta <gabriele.mzt@gmail.com>
> ---
> drivers/input/input-mt.c | 12 ++++++++++--
> 1 file changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/input/input-mt.c b/drivers/input/input-mt.c
> index cb150a1..bb4ca6d 100644
> --- a/drivers/input/input-mt.c
> +++ b/drivers/input/input-mt.c
> @@ -65,6 +65,7 @@ int input_mt_init_slots(struct input_dev *dev, unsigned int num_slots,
> copy_abs(dev, ABS_X, ABS_MT_POSITION_X);
> copy_abs(dev, ABS_Y, ABS_MT_POSITION_Y);
> copy_abs(dev, ABS_PRESSURE, ABS_MT_PRESSURE);
> + copy_abs(dev, ABS_TOOL_WIDTH, ABS_MT_TOUCH_MAJOR);
> }
> if (flags & INPUT_MT_POINTER) {
> __set_bit(BTN_TOOL_FINGER, dev->keybit);
> @@ -182,8 +183,9 @@ EXPORT_SYMBOL(input_mt_report_finger_count);
> * @dev: input device with allocated MT slots
> * @use_count: report number of active contacts as finger count
> *
> - * Performs legacy pointer emulation via BTN_TOUCH, ABS_X, ABS_Y and
> - * ABS_PRESSURE. Touchpad finger count is emulated if use_count is true.
> + * Performs legacy pointer emulation via BTN_TOUCH, ABS_X, ABS_Y,
> + * ABS_PRESSURE and ABS_TOOL_WIDTH. Touchpad finger count is emulated
> + * if use_count is true.
> *
> * The input core ensures only the KEY and ABS axes already setup for
> * this device will produce output.
> @@ -229,9 +231,15 @@ void input_mt_report_pointer_emulation(struct input_dev *dev, bool use_count)
> int p = input_mt_get_value(oldest, ABS_MT_PRESSURE);
> input_event(dev, EV_ABS, ABS_PRESSURE, p);
> }
> + if (test_bit(ABS_MT_TOUCH_MAJOR, dev->absbit)) {
> + int w = input_mt_get_value(oldest, ABS_MT_TOUCH_MAJOR);
> + input_event(dev, EV_ABS, ABS_TOOL_WIDTH, w);
> + }
> } else {
> if (test_bit(ABS_MT_PRESSURE, dev->absbit))
> input_event(dev, EV_ABS, ABS_PRESSURE, 0);
> + if (test_bit(ABS_MT_TOUCH_MAJOR, dev->absbit))
> + input_event(dev, EV_ABS, ABS_TOOL_WIDTH, 0);
> }
> }
> EXPORT_SYMBOL(input_mt_report_pointer_emulation);
> --
> 2.1.4
>
Thanks.
--
Dmitry
next prev parent reply other threads:[~2015-06-12 9:17 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-22 14:43 [PATCH v3 0/5] input: synaptics - report correct width and pressure values Gabriele Mazzotta
2015-03-22 14:43 ` [PATCH v3 1/5] input: synaptics - fix width values calculation on image sensors Gabriele Mazzotta
2015-03-22 14:43 ` [PATCH v3 2/5] input: synaptics - change default width value of cr48 sensors Gabriele Mazzotta
2015-03-23 20:48 ` Benjamin Tissoires
2015-03-23 21:17 ` Gabriele Mazzotta
2015-03-22 14:43 ` [PATCH v3 3/5] input: synaptics - setup devices depending on their capabilities Gabriele Mazzotta
2015-03-22 14:43 ` [PATCH v3 4/5] input: synaptics - make image sensors and cr48 sensors report widths Gabriele Mazzotta
2015-06-12 0:40 ` Dmitry Torokhov
2015-06-12 18:39 ` Gabriele Mazzotta
2015-03-22 14:43 ` [PATCH v3 5/5] input: MT - add ABS_TOOL_WIDTH to the legacy pointer emulation Gabriele Mazzotta
2015-06-12 0:38 ` Dmitry Torokhov [this message]
2015-04-27 20:01 ` [PATCH v3 0/5] input: synaptics - report correct width and pressure values Gabriele Mazzotta
2015-06-09 10:26 ` Gabriele Mazzotta
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=20150612003827.GB20581@dtor-pixel \
--to=dmitry.torokhov@gmail.com \
--cc=benjamin.tissoires@gmail.com \
--cc=gabriele.mzt@gmail.com \
--cc=grafi@grafi.jp \
--cc=hdegoede@redhat.com \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=oneukum@suse.de \
--cc=peter.hutterer@who-t.net \
--cc=rydberg@bitmath.org \
--cc=silverhammermba@gmail.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