[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4d2a9eb2-3b01-59fe-7077-de8e11a6ddb1@gmail.com>
Date: Sun, 26 Apr 2020 19:11:59 +0300
From: Dmitry Osipenko <digetx@...il.com>
To: Michał Mirosław <mirq-linux@...e.qmqm.pl>,
Dmitry Torokhov <dmitry.torokhov@...il.com>
Cc: Henrik Rydberg <rydberg@...math.org>,
James Chen <james.chen@....com.tw>,
Johnny Chuang <johnny.chuang@....com.tw>,
Rob Herring <robh+dt@...nel.org>,
Scott Liu <scott.liu@....com.tw>,
David Heidelberg <david@...t.cz>, linux-input@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH v3 3/9] input: elants: remove unused axes
26.04.2020 18:41, Dmitry Osipenko пишет:
> 26.04.2020 18:39, Dmitry Osipenko пишет:
>> 26.04.2020 14:21, Michał Mirosław пишет:
>>> On Sat, Apr 25, 2020 at 09:52:00PM -0700, Dmitry Torokhov wrote:
>>>> On Mon, Apr 13, 2020 at 03:32:23PM +0200, Michał Mirosław wrote:
>>>>> Driver only ever reports MT events. Clear capabilities of all others.
>>>> This is not true. input_mt_sync_frame() calls
>>>> input_mt_report_pointer_emulation() which does emut single-touch events
>>>> for the benefit of older userspace (or userspace that is not interested
>>>> in multitouch).
>>>
>>> Oh, I didn't notice that. Looking at the code, I see that
>>> input_mt_init_slots() sets up the emulated axes in this case.
>>>
>>> Do you need me to update the commitmsg?
>>
>> I tried Ubuntu 12.04 that uses ancient libinput (or whatever it was back
>> then), which doesn't support MT. Mouse doesn't move at all with this
>> patch being applied.
> Without this patch mouse moves, but it's not usable
>> because the cursor's position is wrong, i.e. mouse position doesn't
>> match the screen touches.
The fix for the legacy pointer emulation is trivial:
--- >8 ---
diff --git a/drivers/input/touchscreen/elants_i2c.c
b/drivers/input/touchscreen/elants_i2c.c
index 060c60c04f25..3644b5b48081 100644
--- a/drivers/input/touchscreen/elants_i2c.c
+++ b/drivers/input/touchscreen/elants_i2c.c
@@ -1414,6 +1414,8 @@ static int elants_i2c_probe(struct i2c_client *client,
input_abs_set_res(ts->input, ABS_X, ts->x_res);
input_abs_set_res(ts->input, ABS_Y, ts->y_res);
+ touchscreen_parse_properties(ts->input, false, &ts->prop);
+
/* Multitouch input params setup */
error = input_mt_init_slots(ts->input, MAX_CONTACT_NUM,
INPUT_MT_DIRECT | INPUT_MT_DROP_UNUSED);
--- >8 ---
Michał, please incorporate this change into the next version.
>> This means that input_mt_report_pointer_emulation() doesn't set up
>> everything needed for the legacy pointer emulation.
>>
>
> I meant the input_mt_init_slots().
>
Powered by blists - more mailing lists