linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] Input: gpio_keys_polled - defer probing if GPIO probing is deferred
@ 2012-12-23  8:32 Gabor Juhos
  2012-12-23 10:06 ` Dmitry Torokhov
  0 siblings, 1 reply; 3+ messages in thread
From: Gabor Juhos @ 2012-12-23  8:32 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: linux-input, Alexandre Pereira da Silva, Gabor Juhos, stable

If GPIO probing is deferred, the driver tries to
claim an invalid GPIO line which leads to an error
message like this:

  gpio-keys-polled buttons.2: unable to claim gpio 4294966779, err=-22
  gpio-keys-polled: probe of buttons.2 failed with error -22

The patch ensures that 'gpio_keys_polled_get_devtree_pdata'
returns -EPROBE_DEFER if any of the GPIOs to register are
deferred.

Cc: <stable@vger.kernel.org>
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
---
 drivers/input/keyboard/gpio_keys_polled.c |    6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/input/keyboard/gpio_keys_polled.c b/drivers/input/keyboard/gpio_keys_polled.c
index f686fd9..cfb54cc 100644
--- a/drivers/input/keyboard/gpio_keys_polled.c
+++ b/drivers/input/keyboard/gpio_keys_polled.c
@@ -120,6 +120,12 @@ static struct gpio_keys_platform_data *gpio_keys_polled_get_devtree_pdata(struct
 	if (nbuttons == 0)
 		return NULL;
 
+	for_each_child_of_node(node, pp) {
+		error = of_get_gpio(pp, 0);
+		if (error == -EPROBE_DEFER)
+			goto err_out;
+	}
+
 	pdata = kzalloc(sizeof(*pdata) + nbuttons * (sizeof *button),
 			GFP_KERNEL);
 	if (!pdata) {
-- 
1.7.10


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2012-12-23 17:51 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-12-23  8:32 [PATCH] Input: gpio_keys_polled - defer probing if GPIO probing is deferred Gabor Juhos
2012-12-23 10:06 ` Dmitry Torokhov
2012-12-23 17:51   ` Gabor Juhos

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).