From: Philipp Merkel <mail@philmerk.de>
To: "Stéphane Chatty" <chatty@enac.fr>
Cc: linux-input <linux-input@vger.kernel.org>, Jiri Kosina <jkosina@suse.cz>
Subject: Re: [PATCH] Fix for problems with eGalax/DWAV multi-touch-screen
Date: Tue, 21 Sep 2010 10:20:15 +0200 [thread overview]
Message-ID: <1285057215.1567.28.camel@PhEeeTab> (raw)
In-Reply-To: <DAB0AEF8-B5D1-4D21-83E2-6535B8AA0A4B@enac.fr>
> > 1) While there is a dedicated multitouch driver for the screen
> > (hid-egalax.c), the MULTI_INPUT quirk is also applied, preventing
> > the hid-egalax driver from working. This patch removes the quirk
> > so the hid-egalax driver can handle the device correctly.
>
> No opinion here, I'm not comfortable with MULTI_INPUT and multitouch
> (too much variability from one device to another).
I can only tell you what I experienced: Before the hid_egalax driver,
one had to use the MULTI_INPUT quirk in order to make the device work as
a single-touch screen, otherwise the coordinates were sent for the wrong
axes. But now with hid_egalax handling the device, the MULTI_INPUT quirk
is of no use any more for this device and instead seems to prevent
hid_egalax from working (it's loaded, but doesn't seem to handle the
device as no multitouch events are sent). So it's a leftover from before
hid_egalax and can safely be removed.
> > 2) The x and y coordinates sent by the screen in multi-touch mode are
> > shifted by three bits from the events sent in single-touch mode,
> > thus
> > the coordinates are out of range, leading to the pointer being
> > stuck
> > in the bottom-right corner if no additional calibration is applied
> > (e.g. in the X evdev driver). This patch shifts the coordinates
> > back.
> > This does not decrease accuracy as the last three bits of the
> > "wrong"
> > coordinates are always 0.
>
> Mmm. This would be a bug in the firmware? I'll notify the eGalax
> folks. Anyway, if there's a bug we must fix it. But the driver was
> (probably too quickly) registered for another eGalax product with a
> different protocol: 0x0eef:0x720c (the one in the Joojoo). Can
> someone check if the fix applies to this product as well? Otherwise
> we'll have to devise a solution.
I don't have a Joojoo, but as its touch screen seems to be quite
different, it's probably necessary to distinguish the devices in the
driver anyway. At least from what I know from other T101MT users, all
screens with the id 0x0eef:0x480d seem to suffer from this problem.
Another possibility would maybe be the following: If the coordinates of
the first touch after loading the driver are within the range, the
device is set to "Normal" mode and all coordinates are passed as they
are. If the first touch is out of range, the device is set to "Quirks"
mode and all coordinates are shifted by three bits. This way, the driver
would continue working even if the bug in the firmware was corrected for
new devices with the same ID. It would be no problem to adapt my patch
this way.
For me, the values are as follows: In the HID descriptor, a range of
0-4095 is given for the X and Y axes. So the only situation in which the
above solution would not switch the mode correctly would be if the first
touch after loading the driver would be in the very top-left corner,
with an X and Y coordinate between 0 and 4, as in this case it would be
reported as <=4000 and thus not registered as being out of range. This
is very unlikely as at least for my screen, one has to press the stylus
with force into the corner in order to get such coordinates, which
probably no user will do just after turning on his machine...
next prev parent reply other threads:[~2010-09-21 8:20 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-14 15:08 [PATCH] Fix for problems with eGalax/DWAV multi-touch-screen Philipp Merkel
2010-09-20 17:03 ` Stéphane Chatty
2010-09-21 8:20 ` Philipp Merkel [this message]
2010-09-21 14:06 ` Jiri Kosina
2010-09-21 15:07 ` Stéphane Chatty
2010-09-28 19:32 ` Henrik Rydberg
2010-09-28 19:43 ` Stéphane Chatty
2010-09-28 19:52 ` Henrik Rydberg
2010-09-28 19:55 ` Philipp Merkel
2010-09-28 20:14 ` Stéphane Chatty
2010-10-01 13:32 ` Jiri Kosina
2010-10-01 13:36 ` Stéphane Chatty
2010-10-01 13:40 ` Jiri Kosina
2010-09-28 19:51 ` Philipp Merkel
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=1285057215.1567.28.camel@PhEeeTab \
--to=mail@philmerk.de \
--cc=chatty@enac.fr \
--cc=jkosina@suse.cz \
--cc=linux-input@vger.kernel.org \
/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).