Thread (7 messages) flat view 7 messages, 2 authors, 2011-06-06

Re: [PATCH 3/3] Input: gpio_keys.c: Enable use with non-local GPIO chips.

From: Grant Likely <hidden>
Date: 2011-06-06 16:16:02

On Mon, Jun 6, 2011 at 9:12 AM, David Jander [off-list ref] wrote:
Use a threaded interrupt handler in order to permit the handler to use
a GPIO driver that causes things like I2C transactions being done inside
the handler context.
Also, gpio_keys_init needs to be declared as a late_initcall, to make sure
all needed GPIO drivers have been loaded if the drivers are built into the
kernel.

Signed-off-by: David Jander <redacted>
Looks okay to me.  Acked-by: Grant Likely [off-list ref]
quoted hunk ↗ jump to hunk
---
 drivers/input/keyboard/gpio_keys.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/input/keyboard/gpio_keys.c b/drivers/input/keyboard/gpio_keys.c
index 4efd067..bfbdfe8 100644
--- a/drivers/input/keyboard/gpio_keys.c
+++ b/drivers/input/keyboard/gpio_keys.c
@@ -3,7 +3,7 @@
 *
 * Copyright 2005 Phil Blundell
 *
- * Added OF support:
+ * Added OF support and enabled use with I2C GPIO expanders:
 * Copyright 2010 David Jander [off-list ref]
 *
 * This program is free software; you can redistribute it and/or modify
@@ -418,7 +418,7 @@ static int __devinit gpio_keys_setup_key(struct device *dev,
       if (!button->can_disable)
               irqflags |= IRQF_SHARED;

-       error = request_any_context_irq(irq, gpio_keys_isr, irqflags, desc, bdata);
+       error = request_threaded_irq(irq, NULL, gpio_keys_isr, irqflags, desc, bdata);
       if (error < 0) {
               dev_err(dev, "Unable to claim irq %d; error %d\n",
                       irq, error);
@@ -771,10 +771,10 @@ static void __exit gpio_keys_exit(void)
       platform_driver_unregister(&gpio_keys_device_driver);
 }

-module_init(gpio_keys_init);
+late_initcall(gpio_keys_init);
 module_exit(gpio_keys_exit);

 MODULE_LICENSE("GPL");
 MODULE_AUTHOR("Phil Blundell [off-list ref]");
-MODULE_DESCRIPTION("Keyboard driver for CPU GPIOs");
+MODULE_DESCRIPTION("Keyboard driver for GPIOs");
 MODULE_ALIAS("platform:gpio-keys");
--
1.7.4.1


-- 
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help