From: "Heiko Stübner" <heiko@sntech.de>
To: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: linux-input@vger.kernel.org, Henrik Rydberg <rydberg@euromail.se>
Subject: Re: [PATCH v2] Driver for AUO In-Cell touchscreens using pixcir ICs
Date: Wed, 7 Dec 2011 23:09:43 +0100 [thread overview]
Message-ID: <201112072309.43589.heiko@sntech.de> (raw)
In-Reply-To: <201112071531.21157.heiko@sntech.de>
Am Mittwoch 07 Dezember 2011, 15:31:20 schrieb Heiko Stübner:
> Hi Dmitry,
>
> thanks for the review
>
> Am Dienstag, 6. Dezember 2011, 06:56:37 schrieb Dmitry Torokhov:
> > On Mon, Dec 05, 2011 at 09:05:30PM +0100, Heiko Stübner wrote:
> > > Some displays from AUO have a so called in-cell touchscreen, meaning it
> > > is built directly into the display unit.
> > >
> > > Touchdata is gathered through PIXCIR Tango-ICs and processed in an
> > > Atmel ATmega168P with custom firmware. Communication between the host
> > > system and ATmega is done via I2C.
> > >
> > > Devices using this touch solution include the Dell Streak5 and the
> > > family of Qisda ebook readers.
> > >
> > > The driver reports single- and multi-touch events including touch area
> > > values.
> > >
> > > Signed-off-by: Heiko Stuebner <heiko@sntech.de>
> > > ---
> > > changes since v1: address comments from Christoph Fritz
> > > (wrong type for error checks, wrong call to input_free_device)
> > >
> > > drivers/input/touchscreen/Kconfig | 14 +
> > > drivers/input/touchscreen/Makefile | 1 +
> > > drivers/input/touchscreen/auo-pixcir-ts.c | 656
> > > +++++++++++++++++++++++++++++ include/linux/input/auo-pixcir-ts.h
> > >
> > > | 57 +++
> > >
> > > 4 files changed, 728 insertions(+), 0 deletions(-)
> > > create mode 100644 drivers/input/touchscreen/auo-pixcir-ts.c
> > > create mode 100644 include/linux/input/auo-pixcir-ts.h
>
> [ ... small corrections, thanks for finding them ... ]
>
> > > +
> > > + for (i = 0; i < AUO_PIXCIR_REPORT_POINTS; i++) {
> > > + if (point[i].coord_x > 0 || point[i].coord_y > 0) {
> > > + input_report_abs(ts->input, ABS_MT_POSITION_X,
> > > + point[i].coord_x);
> > > + input_report_abs(ts->input, ABS_MT_POSITION_Y,
> > > + point[i].coord_y);
> > > + input_report_abs(ts->input, ABS_MT_TOUCH_MAJOR,
> > > + point[i].area_major);
> > > + input_report_abs(ts->input, ABS_MT_TOUCH_MINOR,
> > > + point[i].area_minor);
> > > + input_report_abs(ts->input, ABS_MT_ORIENTATION,
> > > + point[i].orientation);
> > > + input_mt_sync(ts->input);
> >
> > Is there a way to track the contacts and switch to protocol B by any
> > chance?
>
> I'm not sure, but will check how the device handles changing the number of
> touching fingers and if it would be possible to switch.
Sadly, the device does not seem capable of really tracking the contacts
individually.
My testcase:
- p0 <-> finger0, p1 <-> finger1
- finger0 is lifted
in todays test: new mapping finger1 <-> p0
some time ago during another test sometimes it did this switch and sometimes
not, so the mapping reported point <-> finger is probably not stable.
> > > +
> > > + /* use first finger as source for singletouch */
> > > + if (fingers == 0)
> > > + abs = i;
> > > +
> > > + /* number of touch points could also be queried
> > > + * via i2c but would require an additional call
> > > + */
> > > + fingers++;
> > > + }
> > > + }
>
> [ ... more small stuff for me to fix ... ]
>
> > > +
> > > + ret = input_register_device(input_dev);
> > > + if (ret) {
> > > + dev_err(&client->dev, "could not register input device\n");
> > > + goto err_input_register;
> > > + }
> > > +
> > > + input_set_drvdata(ts->input, ts);
> >
> > Just do this earlier and then auo_pixcir_stop() is enough, you won't
> > need to call auo_pixcir_int_enable() before registering IRQ.
>
> Just to be sure, you mean moving the input_set_drvdata before the irq-
> registration?
seems to work
> > > +
> > > + i2c_set_clientdata(client, ts);
> > > +
> > > + return 0;
> > > +
>
> [ ... and still more small stuff ]
>
> Thanks
> Heiko
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
prev parent reply other threads:[~2011-12-07 22:09 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-05 20:05 [PATCH v2] Driver for AUO In-Cell touchscreens using pixcir ICs Heiko Stübner
2011-12-06 5:56 ` Dmitry Torokhov
2011-12-07 14:31 ` Heiko Stübner
2011-12-07 22:09 ` Heiko Stübner [this message]
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=201112072309.43589.heiko@sntech.de \
--to=heiko@sntech.de \
--cc=dmitry.torokhov@gmail.com \
--cc=linux-input@vger.kernel.org \
--cc=rydberg@euromail.se \
/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).