All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ping Cheng <pinglinux@gmail.com>
To: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: "linux-input@vger.kernel.org" <linux-input@vger.kernel.org>,
	Ping Cheng <pingc@wacom.com>,
	Peter Hutterer <peter.hutterer@who-t.net>
Subject: Re: [PATCH 2/2 v2] input: wacom_w8001 - cleanup 2FG touch code
Date: Sat, 16 Jul 2016 14:32:27 -0700	[thread overview]
Message-ID: <CAF8JNh+fDOktK39uaXa8Fdq7v058RrwMd7rmKv8b2V_sXCXRLA@mail.gmail.com> (raw)
In-Reply-To: <20160716053353.GA40160@dtor-ws>

On Fri, Jul 15, 2016 at 10:33 PM, Dmitry Torokhov
<dmitry.torokhov@gmail.com> wrote:
> On Fri, Jul 15, 2016 at 06:19:41PM -0700, Ping Cheng wrote:
>> On Friday, July 15, 2016, Dmitry Torokhov <dmitry.torokhov@gmail.com> wrote:
>>
>> > On Fri, Jul 15, 2016 at 04:26:25PM -0700, Ping Cheng wrote:
>> > > input_mt_sync_frame is used by other wacom devices in wacom_wac.c
>> > > to close the frame and emulate pointer events. Let's follow them.
>> > >
>> > > Touch events aren't multiplexed over the same device anymore, the
>> > > use of ABS_MT_TOOL_TYPE is superfluous.
>> >
>> > All of our touchscreen report the finger tool events, even if it is the
>> > only "tool" that is being used. Does it cause problems?
>> >
>>
>> No, it does not cause problem, with/without ABS_MT_TOOL_TYPE being set.
>> Testing result shows all touch data are reported whether we explicitly set
>> ABS_MT_TOOL_TYPE upfront or not. Plus, ABS_MT_TOOL_TYPE is not set in
>> wacom.ko. We'd like to be in sync with wacom.ko.
>>
>> The following comments for input_mt_report_slot_state in input-mt.c
>> explains the reason:
>>
>> "* Reports a contact via ABS_MT_TRACKING_ID, and optionally
>>  * ABS_MT_TOOL_TYPE. If active is true and the slot is currently
>>  * inactive, or if the tool type is changed, a new tracking id is
>>  * assigned to the slot. The tool type is only reported if the
>>  * corresponding absbit field is set."
>>
>> MT_TOOL_TYPE is necessary if we report both pen and touch on the same
>> interface. That is not true for this series of devices any more..
>>
>>
>> > >
>> > > Signed-off-by: Ping Cheng <pingc@wacom.com>
>> > > Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
>> > > ---
>> > > v2: moved input_abs_set_res into a separate patch, as suggested by
>> > > Dmitry.
>> > > ---
>> > >  drivers/input/touchscreen/wacom_w8001.c | 15 ++-------------
>> > >  1 file changed, 2 insertions(+), 13 deletions(-)
>> > >
>> > > diff --git a/drivers/input/touchscreen/wacom_w8001.c
>> > b/drivers/input/touchscreen/wacom_w8001.c
>> > > index 7e807af..541a8df 100644
>> > > --- a/drivers/input/touchscreen/wacom_w8001.c
>> > > +++ b/drivers/input/touchscreen/wacom_w8001.c
>> > > @@ -170,16 +170,8 @@ static void parse_multi_touch(struct w8001 *w8001)
>> > >               }
>> > >       }
>> > >
>> > > -     /* emulate single touch events when stylus is out of proximity.
>> > > -      * This is to make single touch backward support consistent
>> > > -      * across all Wacom single touch devices.
>> > > -      */
>> > > -     if (w8001->type != BTN_TOOL_PEN &&
>> > > -                         w8001->type != BTN_TOOL_RUBBER) {
>> > > -             w8001->type = count == 1 ? BTN_TOOL_FINGER : KEY_RESERVED;
>> > > -             input_mt_report_pointer_emulation(dev, true);
>> > > -     }
>> > > -
>> > > +     w8001->type = KEY_RESERVED;
>> > > +     input_mt_sync_frame(dev);
>> > >       input_sync(dev);
>> > >  }
>> > >
>> > > @@ -508,7 +500,6 @@ static int w8001_setup_touch(struct w8001 *w8001,
>> > char *basename,
>> > >       case 5:
>> > >               w8001->pktlen = W8001_PKTLEN_TOUCH2FG;
>> > >
>> > > -             __set_bit(BTN_TOOL_DOUBLETAP, dev->keybit);
>> >
>> > Who is setting this bit then?
>> >
>>
>> All MT related bits are set by input_mt_init_slots in input-mt.c, including
>> BTN_TOOL_DOUBLETAP, if necessary.
>
> Doesn't this only happen if you call input_mt_init_slots with
> INPUT_MT_POINTER flag?

You are right. And that is what we want this driver to do - to be in
sync with wacom.ko and rely on input-mt for common actions.

Cheers,

Ping

  reply	other threads:[~2016-07-16 21:32 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-15 23:26 [PATCH 2/2 v2] input: wacom_w8001 - cleanup 2FG touch code Ping Cheng
2016-07-15 23:51 ` Dmitry Torokhov
     [not found]   ` <CAF8JNhJ4wRnH+f2beOuip=M1cUums7nB-uu6NWTcN91EVTCs+Q@mail.gmail.com>
2016-07-16  1:56     ` Fwd: " Ping Cheng
2016-07-16  5:33     ` Dmitry Torokhov
2016-07-16 21:32       ` Ping Cheng [this message]
2016-07-16 21:58         ` Dmitry Torokhov
2016-07-16 22:33           ` Ping Cheng
2016-07-19 18:37             ` Dmitry Torokhov
2016-07-19 20:07               ` Ping Cheng

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=CAF8JNh+fDOktK39uaXa8Fdq7v058RrwMd7rmKv8b2V_sXCXRLA@mail.gmail.com \
    --to=pinglinux@gmail.com \
    --cc=dmitry.torokhov@gmail.com \
    --cc=linux-input@vger.kernel.org \
    --cc=peter.hutterer@who-t.net \
    --cc=pingc@wacom.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.