linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Thierry Reding <thierry.reding@avionic-design.de>
To: linux-input@vger.kernel.org
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>,
	Kwangwoo Lee <kwlee@mtekvision.com>
Subject: [PATCH 2/5] tsc2007: Add max_rt module parameter.
Date: Mon, 16 May 2011 10:33:00 +0200	[thread overview]
Message-ID: <1305534783-4917-2-git-send-email-thierry.reding@avionic-design.de> (raw)
In-Reply-To: <1305534783-4917-1-git-send-email-thierry.reding@avionic-design.de>

Finger touch events or very quick stylus events on low-quality panels
can cause the tsc2007 to read bogus values. Looking at oscilloscope
snapshots, this seems to be caused by the touch event disappearing
during the measurements. These bogus values result in misclicks, where
the X and Y values deviate from the real position.

Most of these misclicks can be filtered out by setting a low enough
threshold for the maximum resistance (which is loosely the inverse of
the pressure) allowed to consider a set of values valid. Since this
behaviour is largely dependent on the type and quality of the panel,
this commit introduces the max_rt parameter. The default value is kept
at MAX_12BIT.

Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Kwangwoo Lee <kwlee@mtekvision.com>
Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de>
---
 drivers/input/touchscreen/tsc2007.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/drivers/input/touchscreen/tsc2007.c b/drivers/input/touchscreen/tsc2007.c
index df4ae35..95d619c 100644
--- a/drivers/input/touchscreen/tsc2007.c
+++ b/drivers/input/touchscreen/tsc2007.c
@@ -83,6 +83,10 @@ struct tsc2007 {
 	void			(*clear_penirq)(void);
 };
 
+static int max_rt = MAX_12BIT;
+module_param(max_rt, int, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(max_rt, "Maximum resistance above which samples are ignored");
+
 static inline int tsc2007_xfer(struct tsc2007 *tsc, u8 cmd)
 {
 	s32 data;
@@ -185,7 +189,7 @@ static void tsc2007_work(struct work_struct *work)
 	tsc2007_read_values(ts, &tc);
 
 	rt = tsc2007_calculate_pressure(ts, &tc);
-	if (rt > MAX_12BIT) {
+	if (rt > max_rt) {
 		/*
 		 * Sample found inconsistent by debouncing or pressure is
 		 * beyond the maximum. Don't report it to user space,
-- 
1.7.5.1


  reply	other threads:[~2011-05-16  8:33 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-16  8:32 [PATCH 1/5] tsc2007: Debounce pressure measurement Thierry Reding
2011-05-16  8:33 ` Thierry Reding [this message]
2011-05-16 16:53   ` [PATCH 2/5] tsc2007: Add max_rt module parameter Dmitry Torokhov
2011-05-17  5:46     ` Thierry Reding
2011-05-17  5:58       ` Dmitry Torokhov
2011-05-17  6:59     ` Thierry Reding
2011-05-17  7:24       ` Dmitry Torokhov
2011-05-16  8:33 ` [PATCH 3/5] tsc2007: Introduce poll_delay parameter Thierry Reding
2011-05-16  8:33 ` [PATCH 4/5] tsc2007: Introduce poll_period parameter Thierry Reding
2011-05-16  8:33 ` [PATCH 5/5] tsc2007: Add X, Y and Z fuzz factors to platform data Thierry Reding
2011-05-17  6:02 ` [PATCH 1/5] tsc2007: Debounce pressure measurement Dmitry Torokhov
2011-05-17  6:27   ` Thierry Reding
2011-05-17  6:32     ` Dmitry Torokhov
2011-05-17  6:45       ` Thierry Reding

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=1305534783-4917-2-git-send-email-thierry.reding@avionic-design.de \
    --to=thierry.reding@avionic-design.de \
    --cc=dmitry.torokhov@gmail.com \
    --cc=kwlee@mtekvision.com \
    --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).