All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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.