All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ben Gardiner <bengardiner@nanometrics.ca>
To: Gabor Juhos <juhosg@openwrt.org>
Cc: linux-input@vger.kernel.org
Subject: [PATCH WIP 1/6] fixup gpio_buttons: use the same debounce_interval member found in gpio_key to obtain a threshold count based on polling interval
Date: Wed, 24 Nov 2010 16:01:35 -0500	[thread overview]
Message-ID: <08372c879762c2b1c2accd013318ffb6765f806c.1290631852.git.bengardiner@nanometrics.ca> (raw)
In-Reply-To: <cover.1290631852.git.bengardiner@nanometrics.ca>

my reasoning was that if the debounce interval was set then the platform 
_wants_ to supress spurious events so it was better to roundup and swallow 
real events than round down and not supress. 

I'm fine also with using the poll_interval and debuonce_interval directly as
you suggested.

Signed-off-by: Ben Gardiner <bengardiner@nanometrics.ca>
---
 drivers/input/misc/gpio_buttons.c |    7 +++++--
 include/linux/gpio_buttons.h      |    2 +-
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/input/misc/gpio_buttons.c b/drivers/input/misc/gpio_buttons.c
index 51288a3..f42906c 100644
--- a/drivers/input/misc/gpio_buttons.c
+++ b/drivers/input/misc/gpio_buttons.c
@@ -68,13 +68,16 @@ static void gpio_buttons_poll(struct input_polled_dev *dev)
 	struct gpio_buttons_dev *bdev = dev->private;
 	struct gpio_buttons_platform_data *pdata = bdev->pdata;
 	struct input_dev *input = dev->input;
-	int i;
+	int i, threshold;
 
 	for (i = 0; i < bdev->pdata->nbuttons; i++) {
 		struct gpio_button *button = &pdata->buttons[i];
 		struct gpio_button_data *bdata = &bdev->data[i];
 
-		if (bdata->count < button->threshold)
+		threshold = round_up(button->debounce_interval,
+				pdata->poll_interval) /
+				pdata->poll_interval;
+		if (bdata->count < threshold)
 			bdata->count++;
 		else
 			gpio_buttons_check_state(input, button, bdata);
diff --git a/include/linux/gpio_buttons.h b/include/linux/gpio_buttons.h
index f85b993..c016f07 100644
--- a/include/linux/gpio_buttons.h
+++ b/include/linux/gpio_buttons.h
@@ -21,7 +21,7 @@ struct gpio_button {
 	char	*desc;		/* button description */
 	int	type;		/* input event type (EV_KEY, EV_SW) */
 	int	code;		/* input event code (KEY_*, SW_*) */
-	int	threshold;	/* count threshold */
+	int debounce_interval;	/* debounce ticks interval in msecs */
 };
 
 struct gpio_buttons_platform_data {
-- 
1.7.0.4


  reply	other threads:[~2010-11-24 21:01 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-11-23 15:06 [PATCH 00/18] MIPS: initial support for the Atheros AR71XX/AR724X/AR913X SoCs Gabor Juhos
2010-11-23 15:06 ` [PATCH 01/18] MIPS: add initial support for the Atheros AR71XX/AR724X/AR931X SoCs Gabor Juhos
2010-11-23 15:06 ` [PATCH 02/18] MIPS: ath79: add GPIOLIB support Gabor Juhos
2010-11-23 15:06 ` [PATCH 03/18] MIPS: add generic support for multiple machines within a single kernel Gabor Juhos
2010-11-23 18:29   ` Arnaud Lacombe
2010-11-23 18:49     ` Luis R. Rodriguez
2010-11-23 18:51     ` Gabor Juhos
2010-11-23 19:06       ` Felix Fietkau
2010-11-23 19:20         ` David Daney
2010-11-23 22:12           ` Ralf Baechle
2010-11-23 15:06 ` [PATCH 04/18] MIPS: ath79: utilize the MIPS multi-machine support Gabor Juhos
2010-11-23 15:06 ` [PATCH 05/18] MIPS: ath79: add initial support for the Atheros PB44 reference board Gabor Juhos
2010-11-23 15:06 ` [PATCH 06/18] MIPS: ath79: add common GPIO LEDs device Gabor Juhos
2010-11-23 15:06 ` [PATCH 07/18] watchdog: add driver for the Atheros AR71XX/AR724X/AR913X SoCs Gabor Juhos
2010-11-23 15:06 ` [PATCH 08/18] MIPS: ath79: add common watchdog device Gabor Juhos
2010-11-23 15:06 ` [PATCH 09/18] input: add input driver for polled GPIO buttons Gabor Juhos
2010-11-23 19:24   ` Ben Gardiner
2010-11-24 17:24   ` Ben Gardiner
2010-11-24 17:24     ` Ben Gardiner
2010-11-24 18:54     ` Gabor Juhos
2010-11-24 20:28       ` Ben Gardiner
2010-11-24 21:01   ` [PATCH WIP 0/6] suggested changes to gpio_buttons driver Ben Gardiner
2010-11-24 21:01     ` Ben Gardiner [this message]
2010-11-24 21:01     ` [PATCH WIP 2/6] fixup gpio_buttons: use existing gpio_keys_button structure instead of introducing new gpio_button structure Ben Gardiner
2010-11-24 21:01     ` [PATCH WIP 3/6] fixup gpio_buttons: detect and error-out if a button is requested for wakeup Ben Gardiner
2010-11-24 21:01     ` [PATCH WIP 4/6] fixup gpio_buttons: show units of poll_interval platform data member Ben Gardiner
2010-11-24 21:01     ` [PATCH WIP 5/6] fixup gpio_buttons: move gpio_buttons.c to drivers/input/keyboard from drivers/input/misc Ben Gardiner
2010-11-24 21:01     ` [PATCH WIP 6/6] fixup gpio_buttons : rename gpio-buttons / gpio_buttons to gpio-keys-polled / gpio_keys_polled Ben Gardiner
2010-11-30  7:56     ` [PATCH WIP 0/6] suggested changes to gpio_buttons driver Dmitry Torokhov
2010-11-30 10:30       ` Gabor Juhos
2010-11-30 14:29         ` Ben Gardiner
2010-11-30 18:26           ` Gabor Juhos
2010-11-30 18:44             ` [PATCH 0/8] input: gpio_keys_polled fixes Gabor Juhos
2010-11-30 22:16               ` Ben Gardiner
2010-12-05  9:11                 ` Gabor Juhos
2010-12-09  0:06                 ` Dmitry Torokhov
2010-12-09  8:07                   ` Gabor Juhos
2010-12-09 21:36                   ` Ben Gardiner
2010-11-30 18:44             ` [PATCH 1/8] input: gpio_keys_polled: add MODULE_ALIAS Gabor Juhos
2010-11-30 18:44             ` [PATCH 2/8] input: gpio_keys_polled: return -EINVAL if wakeup specified Gabor Juhos
2010-11-30 18:44             ` [PATCH 3/8] input: gpio_keys_polled: avoid possible division by zero Gabor Juhos
2010-11-30 18:44             ` [PATCH 4/8] input: gpio_keys_polled: use DIV_ROUND_UP to compute the threshold value Gabor Juhos
2010-11-30 18:44             ` [PATCH 5/8] input: gpio_keys_polled: precompute threshold value in the probe routine Gabor Juhos
2010-11-30 18:44             ` [PATCH 6/8] input: gpio_keys_polled: use tabs instead of spaces for indentation Gabor Juhos
2010-11-30 18:44             ` [PATCH 7/8] input: gpio_keys_polled: remove a local variable Gabor Juhos
2010-11-30 18:44             ` [PATCH 8/8] input: gpio_keys_polled: fix Kconfig help text Gabor Juhos
2010-12-01 22:53               ` Ferenc Wagner
2010-12-05  9:11                 ` Gabor Juhos
2010-12-05  9:34               ` [PATCH v2 " Gabor Juhos
2010-11-28  8:31   ` [PATCH 09/18] input: add input driver for polled GPIO buttons Dmitry Torokhov
2010-11-23 15:06 ` [PATCH 10/18] MIPS: ath79: add common GPIO buttons device Gabor Juhos
     [not found] ` <1290524800-21419-1-git-send-email-juhosg-p3rKhJxN3npAfugRpC6u6w@public.gmane.org>
2010-11-23 15:06   ` [PATCH 11/18] spi: add SPI controller driver for the Atheros AR71XX/AR724X/AR913X SoCs Gabor Juhos
2010-11-23 15:06     ` Gabor Juhos
2010-11-23 15:06 ` [PATCH 12/18] MIPS: ath79: add common SPI controller device Gabor Juhos
2010-11-23 15:06 ` [PATCH 13/18] USB: ehci: add workaround for Synopsys HC bug Gabor Juhos
2010-11-23 15:06 ` [PATCH 14/18] USB: ehci: add bus glue for the Atheros AR71XX/AR724X/AR913X SoCs Gabor Juhos
2010-11-23 15:06 ` [PATCH 15/18] USB: ohci: add bus glue for the Atheros AR71XX/AR7240 SoCs Gabor Juhos
2010-11-23 15:06 ` [PATCH 16/18] MIPS: ath79: add common USB Host Controller device Gabor Juhos
2010-11-23 15:06 ` [PATCH 17/18] MIPS: ath79: add initial support for the Atheros AP81 reference board Gabor Juhos
2010-11-23 15:06 ` [PATCH 18/18] MIPS: ath79: add common WMAC device for AR913X based boards Gabor Juhos
2010-11-23 18:16 ` [PATCH 00/18] MIPS: initial support for the Atheros AR71XX/AR724X/AR913X SoCs Arnaud Lacombe
2010-11-23 18:18   ` Arnaud Lacombe

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=08372c879762c2b1c2accd013318ffb6765f806c.1290631852.git.bengardiner@nanometrics.ca \
    --to=bengardiner@nanometrics.ca \
    --cc=juhosg@openwrt.org \
    --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 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.