aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormerge <null@invalid>2008-11-27 19:57:17 +0000
committerAndy Green <agreen@pads.home.warmcat.com>2008-11-27 19:57:17 +0000
commitd7b1643ddaab18d4e1a3c70d1cbd10e2ecafb4f0 (patch)
treecdcc9877ff435401bfb4f7616fd0168826e38e0e
parent918125bfde6d8d681296e9f0dfce46da6c69ad43 (diff)
MERGE-via-pending-tracking-hist-MERGE-via-stable-tracking-hist-ignore-very-short-clicks-s3c24
pending-tracking-hist top was MERGE-via-stable-tracking-hist-ignore-very-short-clicks-s3c24 / 8e8a39f8d43430ae4543b6d13b1626bd8b913881 ... parent commitmessage: From: merge <null@invalid> MERGE-via-stable-tracking-hist-ignore-very-short-clicks-s3c24 stable-tracking-hist top was ignore-very-short-clicks-s3c24 / aa3d2f306e4ca5b04a01ca3ad635caae1c1e8e33 ... parent commitmessage: From: Nelson Castillo <nelsoneci@gmail.com> ignore-very-short-clicks-s3c2410_ts.patch With this patch the issue of the noisy clicks seems to be alleviated. We ignore the first two points. If a click has less than 3 points we ignore it. On a normal click (I mean with at least 3 points) this patch will delay the first DOWN event by 20 milliseconds. I'm looking for a better solution but this one works and it should make the driver more usable. Signed-off-by: Nelson Castillo <nelsoneci@gmail.com>
-rw-r--r--arch/arm/configs/gta02-moredrivers-defconfig47
-rw-r--r--drivers/input/touchscreen/s3c2410_ts.c10
2 files changed, 53 insertions, 4 deletions
diff --git a/arch/arm/configs/gta02-moredrivers-defconfig b/arch/arm/configs/gta02-moredrivers-defconfig
index 823a3da8339..c06002a88a1 100644
--- a/arch/arm/configs/gta02-moredrivers-defconfig
+++ b/arch/arm/configs/gta02-moredrivers-defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.28-rc4
-# Thu Nov 27 08:12:15 2008
+# Thu Nov 27 13:55:13 2008
#
CONFIG_ARM=y
CONFIG_HAVE_PWM=y
@@ -438,9 +438,27 @@ CONFIG_BRIDGE_NETFILTER=y
CONFIG_NETFILTER_NETLINK=m
CONFIG_NETFILTER_NETLINK_QUEUE=m
CONFIG_NETFILTER_NETLINK_LOG=m
-# CONFIG_NF_CONNTRACK is not set
+CONFIG_NF_CONNTRACK=y
+# CONFIG_NF_CT_ACCT is not set
+# CONFIG_NF_CONNTRACK_MARK is not set
+# CONFIG_NF_CONNTRACK_EVENTS is not set
+# CONFIG_NF_CT_PROTO_DCCP is not set
+# CONFIG_NF_CT_PROTO_SCTP is not set
+# CONFIG_NF_CT_PROTO_UDPLITE is not set
+# CONFIG_NF_CONNTRACK_AMANDA is not set
+# CONFIG_NF_CONNTRACK_FTP is not set
+# CONFIG_NF_CONNTRACK_H323 is not set
+# CONFIG_NF_CONNTRACK_IRC is not set
+# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set
+# CONFIG_NF_CONNTRACK_PPTP is not set
+# CONFIG_NF_CONNTRACK_SANE is not set
+# CONFIG_NF_CONNTRACK_SIP is not set
+# CONFIG_NF_CONNTRACK_TFTP is not set
+# CONFIG_NF_CT_NETLINK is not set
+# CONFIG_NETFILTER_TPROXY is not set
CONFIG_NETFILTER_XTABLES=m
CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set
CONFIG_NETFILTER_XT_TARGET_DSCP=m
CONFIG_NETFILTER_XT_TARGET_MARK=m
CONFIG_NETFILTER_XT_TARGET_NFLOG=m
@@ -449,10 +467,15 @@ CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set
# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNMARK is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNTRACK is not set
CONFIG_NETFILTER_XT_MATCH_DCCP=m
CONFIG_NETFILTER_XT_MATCH_DSCP=m
CONFIG_NETFILTER_XT_MATCH_ESP=m
CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
+# CONFIG_NETFILTER_XT_MATCH_HELPER is not set
# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
CONFIG_NETFILTER_XT_MATCH_LENGTH=m
CONFIG_NETFILTER_XT_MATCH_LIMIT=m
@@ -468,6 +491,7 @@ CONFIG_NETFILTER_XT_MATCH_QUOTA=m
CONFIG_NETFILTER_XT_MATCH_REALM=m
# CONFIG_NETFILTER_XT_MATCH_RECENT is not set
CONFIG_NETFILTER_XT_MATCH_SCTP=m
+# CONFIG_NETFILTER_XT_MATCH_STATE is not set
CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
CONFIG_NETFILTER_XT_MATCH_STRING=m
CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
@@ -478,7 +502,9 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
#
# IP: Netfilter Configuration
#
-# CONFIG_NF_DEFRAG_IPV4 is not set
+CONFIG_NF_DEFRAG_IPV4=y
+CONFIG_NF_CONNTRACK_IPV4=y
+# CONFIG_NF_CONNTRACK_PROC_COMPAT is not set
# CONFIG_IP_NF_QUEUE is not set
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_MATCH_ADDRTYPE=m
@@ -489,7 +515,21 @@ CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_TARGET_LOG=m
CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_NF_NAT=m
+CONFIG_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+# CONFIG_IP_NF_TARGET_NETMAP is not set
+# CONFIG_IP_NF_TARGET_REDIRECT is not set
+# CONFIG_NF_NAT_SNMP_BASIC is not set
+# CONFIG_NF_NAT_FTP is not set
+# CONFIG_NF_NAT_IRC is not set
+# CONFIG_NF_NAT_TFTP is not set
+# CONFIG_NF_NAT_AMANDA is not set
+# CONFIG_NF_NAT_PPTP is not set
+# CONFIG_NF_NAT_H323 is not set
+# CONFIG_NF_NAT_SIP is not set
CONFIG_IP_NF_MANGLE=m
+# CONFIG_IP_NF_TARGET_CLUSTERIP is not set
CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_TTL=m
# CONFIG_IP_NF_RAW is not set
@@ -498,6 +538,7 @@ CONFIG_IP_NF_TARGET_TTL=m
#
# IPv6: Netfilter Configuration
#
+CONFIG_NF_CONNTRACK_IPV6=m
# CONFIG_IP6_NF_QUEUE is not set
CONFIG_IP6_NF_IPTABLES=m
CONFIG_IP6_NF_MATCH_AH=m
diff --git a/drivers/input/touchscreen/s3c2410_ts.c b/drivers/input/touchscreen/s3c2410_ts.c
index 990408886fe..5a31c4f250c 100644
--- a/drivers/input/touchscreen/s3c2410_ts.c
+++ b/drivers/input/touchscreen/s3c2410_ts.c
@@ -189,6 +189,7 @@ static void event_send_timer_f(unsigned long data)
static unsigned long running;
static int noop_counter;
int event_type;
+ static unsigned n_points;
if (unlikely(test_and_set_bit(0, &running))) {
mod_timer(&event_send_timer,
@@ -224,6 +225,9 @@ static void event_send_timer_f(unsigned long data)
!= sizeof(int) * 2))
goto ts_exit_error;
+ if (n_points++ < 2)
+ break;
+
if (ts.state == TS_STATE_PRESSED_PENDING)
ts_input_report(IE_DOWN, buf);
else
@@ -246,8 +250,12 @@ static void event_send_timer_f(unsigned long data)
/* We delay the UP event for a
* while to avoid jitter. If we get a DOWN
* event we do not send it. */
- ts_input_report(IE_UP, NULL);
+
+ if (n_points > 2)
+ ts_input_report(IE_UP, NULL);
+
ts.state = TS_STATE_STANDBY;
+ n_points = 0;
if (ts.tsf[0])
(ts.tsf[0]->api->clear)(ts.tsf[0]);