From: Pavel Machek <pavel@ucw.cz>
To: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: linux-input@vger.kernel.org,
kernel list <linux-kernel@vger.kernel.org>,
Andrew Morton <akpm@osdl.org>
Subject: Re: ads7846 touchscreen: fix pressure
Date: Fri, 20 Nov 2009 19:50:58 +0100 [thread overview]
Message-ID: <20091120185058.GA1472@ucw.cz> (raw)
In-Reply-To: <20091120182528.GB16447@core.coreip.homeip.net>
Hi!
> > On Zaurus, pressure is reported inverted -- the lighter the pressure,
> > the bigger numerical value. This should fix it.
> >
>
> Thanks. Didn't you also have a bigger cleanup patch for ads7846?
Yes, I did, but I wanted to avoid risk for collision. So pick one...
--
Cleanup touchscreen driver and fix pressure on spitz.
Signed-off-by: Pavel Machek <pavel@ucw.cz>
--- linux-rc/drivers/input/touchscreen/ads7846.c 2009-10-06 13:49:56.000000000 +0200
+++ linux-rc/drivers/input/touchscreen/ads7846.c 2009-10-06 21:18:25.000000000 +0200
@@ -29,10 +29,14 @@
#include <linux/spi/ads7846.h>
#include <asm/irq.h>
+#ifndef VERBOSE
+#undef dev_dbg
+#define dev_dbg(...) do {} while(0)
+#endif
/*
* This code has been heavily tested on a Nokia 770, and lightly
- * tested on other ads7846 devices (OSK/Mistral, Lubbock).
+ * tested on other ads7846 devices (OSK/Mistral, Lubbock, Spitz).
* TSC2046 is just newer ads7846 silicon.
* Support for ads7843 tested on Atmel at91sam926x-EK.
* Support for ads7845 has only been stubbed in.
@@ -43,7 +47,7 @@
* have to maintain our own SW IRQ disabled status. This should be
* removed as soon as the affected platform's IRQ handling is fixed.
*
- * app note sbaa036 talks in more detail about accurate sampling...
+ * App note sbaa036 talks in more detail about accurate sampling...
* that ought to help in situations like LCDs inducing noise (which
* can also be helped by using synch signals) and more generally.
* This driver tries to utilize the measures described in the app
@@ -566,10 +570,8 @@
* once more the measurement
*/
if (packet->tc.ignore || Rt > ts->pressure_max) {
-#ifdef VERBOSE
- pr_debug("%s: ignored %d pressure %d\n",
- dev_name(&ts->spi->dev), packet->tc.ignore, Rt);
-#endif
+ dev_dbg(&ts->spi->dev, "ignored %d pressure %d\n",
+ packet->tc.ignore, Rt);
hrtimer_start(&ts->timer, ktime_set(0, TS_POLL_PERIOD),
HRTIMER_MODE_REL);
return;
@@ -584,10 +586,11 @@
Rt = 0;
}
- /* NOTE: We can't rely on the pressure to determine the pen down
- * state, even this controller has a pressure sensor. The pressure
- * value can fluctuate for quite a while after lifting the pen and
- * in some cases may not even settle at the expected value.
+ /* NOTE: We can't rely on the pressure to determine the pen
+ * down state, not even if this controller has a pressure
+ * sensor. The pressure value can fluctuate for quite a while
+ * after lifting the pen and in some cases may not even settle
+ * at the expected value.
*
* The only safe way to check for the pen up condition is in the
* timer by reading the pen signal state (it's a GPIO _and_ IRQ).
@@ -598,9 +601,7 @@
if (!ts->pendown) {
input_report_key(input, BTN_TOUCH, 1);
ts->pendown = 1;
-#ifdef VERBOSE
dev_dbg(&ts->spi->dev, "DOWN\n");
-#endif
}
if (ts->swap_xy)
@@ -608,12 +609,10 @@
input_report_abs(input, ABS_X, x);
input_report_abs(input, ABS_Y, y);
- input_report_abs(input, ABS_PRESSURE, Rt);
+ input_report_abs(input, ABS_PRESSURE, ts->pressure_max-Rt);
input_sync(input);
-#ifdef VERBOSE
dev_dbg(&ts->spi->dev, "%4d/%4d/%4d\n", x, y, Rt);
-#endif
}
hrtimer_start(&ts->timer, ktime_set(0, TS_POLL_PERIOD),
@@ -723,9 +722,7 @@
input_sync(input);
ts->pendown = 0;
-#ifdef VERBOSE
dev_dbg(&ts->spi->dev, "UP\n");
-#endif
}
/* measurement cycle ended */
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
next prev parent reply other threads:[~2009-11-20 18:51 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-11-20 18:22 ads7846 touchscreen: fix pressure Pavel Machek
2009-11-20 18:25 ` Dmitry Torokhov
2009-11-20 18:50 ` Pavel Machek [this message]
2009-11-26 2:10 ` Dmitry Torokhov
-- strict thread matches above, loose matches on Subject: below --
2009-10-06 19:54 Pavel Machek
2009-10-08 5:09 ` Trilok Soni
2009-10-08 5:09 ` Trilok Soni
2009-10-08 9:24 ` Pavel Machek
2009-10-08 9:24 ` Pavel Machek
2009-10-09 16:35 ` Dmitry Torokhov
2009-10-09 20:22 ` Pavel Machek
2009-10-13 13:29 ` Pavel Machek
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=20091120185058.GA1472@ucw.cz \
--to=pavel@ucw.cz \
--cc=akpm@osdl.org \
--cc=dmitry.torokhov@gmail.com \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@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 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.