summaryrefslogtreecommitdiff
path: root/target/linux/s3c24xx/patches-2.6.24/1287-soft_tap.patch.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/s3c24xx/patches-2.6.24/1287-soft_tap.patch.patch')
-rw-r--r--target/linux/s3c24xx/patches-2.6.24/1287-soft_tap.patch.patch82
1 files changed, 0 insertions, 82 deletions
diff --git a/target/linux/s3c24xx/patches-2.6.24/1287-soft_tap.patch.patch b/target/linux/s3c24xx/patches-2.6.24/1287-soft_tap.patch.patch
deleted file mode 100644
index c73dd5e..0000000
--- a/target/linux/s3c24xx/patches-2.6.24/1287-soft_tap.patch.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From eff39cde0d3cdd2afd5e1b4be5a8eb6cf195543e Mon Sep 17 00:00:00 2001
-From: Dima Kogan <dkogan@cds.caltech.edu>
-Date: Thu, 11 Sep 2008 20:38:55 +0800
-Subject: [PATCH] soft_tap.patch
-
-Hi all.
-
-I'm seeing a behavior in my freerunner where light taps on the
-touchscreen are not registered as clicks by the kernel even though the
-base hardware does report clicking events. I'm seeing the kernel
-generate extra "unclick" events in these cases. It looks like in the
-driver, an unclick event is processed before the click event, thus
-suppressing the click from ever being generated. I'm attaching a patch
-that addresses this. I'm now able to type much faster on the matchbox
-keyboard, even when using my fingertips instead of fingernails.
-
-Dima
-
-Signed-off-by: Dima Kogan <dkogan@cds.caltech.edu>
----
- drivers/input/touchscreen/s3c2410_ts.c | 17 +++++++++++++++++
- 1 files changed, 17 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/input/touchscreen/s3c2410_ts.c b/drivers/input/touchscreen/s3c2410_ts.c
-index 9fb95c1..fc1c500 100644
---- a/drivers/input/touchscreen/s3c2410_ts.c
-+++ b/drivers/input/touchscreen/s3c2410_ts.c
-@@ -118,6 +118,7 @@ struct s3c2410ts {
- struct s3c2410ts_sample raw_running_avg;
- int reject_threshold_vs_avg;
- int flag_previous_exceeded_threshold;
-+ int flag_first_touch_sent;
- };
-
- static struct s3c2410ts ts;
-@@ -130,6 +131,7 @@ static void clear_raw_fifo(void)
- ts.raw_running_avg.x = 0;
- ts.raw_running_avg.y = 0;
- ts.flag_previous_exceeded_threshold = 0;
-+ ts.flag_first_touch_sent = 0;
- }
-
-
-@@ -153,6 +155,19 @@ static void touch_timer_fire(unsigned long data)
- updown = (!(data0 & S3C2410_ADCDAT0_UPDOWN)) &&
- (!(data1 & S3C2410_ADCDAT0_UPDOWN));
-
-+ // if we need to send an untouch event, but we haven't yet sent the
-+ // touch event (this happens if the touchscreen was tapped lightly),
-+ // send the touch event first
-+ if (!updown && !ts.flag_first_touch_sent && ts.count != 0) {
-+ input_report_abs(ts.dev, ABS_X, ts.xp >> ts.shift);
-+ input_report_abs(ts.dev, ABS_Y, ts.yp >> ts.shift);
-+
-+ input_report_key(ts.dev, BTN_TOUCH, 1);
-+ input_report_abs(ts.dev, ABS_PRESSURE, 1);
-+ input_sync(ts.dev);
-+ ts.flag_first_touch_sent = 1;
-+ }
-+
- if (updown) {
- if (ts.count != 0) {
- ts.xp >>= ts.shift;
-@@ -174,6 +189,7 @@ static void touch_timer_fire(unsigned long data)
- input_report_key(ts.dev, BTN_TOUCH, 1);
- input_report_abs(ts.dev, ABS_PRESSURE, 1);
- input_sync(ts.dev);
-+ ts.flag_first_touch_sent = 1;
- }
-
- ts.xp = 0;
-@@ -190,6 +206,7 @@ static void touch_timer_fire(unsigned long data)
- input_report_key(ts.dev, BTN_TOUCH, 0);
- input_report_abs(ts.dev, ABS_PRESSURE, 0);
- input_sync(ts.dev);
-+ ts.flag_first_touch_sent = 0;
-
- writel(WAIT4INT(0), base_addr+S3C2410_ADCTSC);
- }
---
-1.5.6.5
-