From d7b1643ddaab18d4e1a3c70d1cbd10e2ecafb4f0 Mon Sep 17 00:00:00 2001 From: merge Date: Thu, 27 Nov 2008 19:57:17 +0000 Subject: 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 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 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 --- arch/arm/configs/gta02-moredrivers-defconfig | 47 ++++++++++++++++++++++++++-- drivers/input/touchscreen/s3c2410_ts.c | 10 +++++- 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]); -- cgit v1.2.3