Thread (4 messages) read the whole thread 4 messages, 2 authors, 2010-09-30

Re: [Patch v7 1/2] input: add support for Nomadik SKE keypad controller

From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Date: 2010-09-30 02:40:54
Subsystem: arm port, arm/nomadik/ux500 architectures, input (keyboard, mouse, joystick, touchscreen) drivers, the rest · Maintainers: Russell King, Linus Walleij, Dmitry Torokhov, Linus Torvalds

On Tue, Sep 28, 2010 at 03:02:04PM +0530, Sundar Iyer wrote:
Add support for the keypad controller in the Scroll Key Encoder (SKE)
module on the Nomadik family and the DB8500 SoC.

Acked-by: Linus Walleij <redacted>
Signed-off-by: Sundar Iyer <redacted>
Signed-off-by: Dmitry Torokhov <redacted>
Applied with the following small changes:

 arch/arm/mach-ux500/board-mop500.c          |    2 +-
 arch/arm/plat-nomadik/include/plat/ske.h    |    2 +-
 drivers/input/keyboard/nomadik-ske-keypad.c |   12 ++++++------
 3 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/arch/arm/mach-ux500/board-mop500.c b/arch/arm/mach-ux500/board-mop500.c
index 3450b74..5265fb9 100644
--- a/arch/arm/mach-ux500/board-mop500.c
+++ b/arch/arm/mach-ux500/board-mop500.c
@@ -177,7 +177,7 @@ static const unsigned int ux500_keymap[] = {
 	KEY(3, 2, KEY_7),
 };
 
-static struct matrix_keymap_data ux500_keymap_data = {
+static const struct matrix_keymap_data ux500_keymap_data = {
 	.keymap         = ux500_keymap,
 	.keymap_size    = ARRAY_SIZE(ux500_keymap),
 };
diff --git a/arch/arm/plat-nomadik/include/plat/ske.h b/arch/arm/plat-nomadik/include/plat/ske.h
index 148b2bc..31382fb 100644
--- a/arch/arm/plat-nomadik/include/plat/ske.h
+++ b/arch/arm/plat-nomadik/include/plat/ske.h
@@ -40,7 +40,7 @@
 struct ske_keypad_platform_data {
 	int (*init)(void);
 	int (*exit)(void);
-	struct matrix_keymap_data *keymap_data;
+	const struct matrix_keymap_data *keymap_data;
 	u8 krow;
 	u8 kcol;
 	u8 debounce_ms;
diff --git a/drivers/input/keyboard/nomadik-ske-keypad.c b/drivers/input/keyboard/nomadik-ske-keypad.c
index 8c6ce8a..6e0f230 100644
--- a/drivers/input/keyboard/nomadik-ske-keypad.c
+++ b/drivers/input/keyboard/nomadik-ske-keypad.c
@@ -83,7 +83,7 @@ static void ske_keypad_set_bits(struct ske_keypad *keypad, u16 addr,
 }
 
 /*
- * ske_keypad_chip_init : init keypad controller configuration
+ * ske_keypad_chip_init: init keypad controller configuration
  *
  * Enable Multi key press detection, auto scan mode
  */
@@ -144,7 +144,7 @@ static void ske_keypad_read_data(struct ske_keypad *keypad)
 	 * Read the auto scan registers
 	 *
 	 * Each SKE_ASRx (x=0 to x=3) contains two row values.
-	 * lower byte contains row value for coloumn 2*x,
+	 * lower byte contains row value for column 2*x,
 	 * upper byte contains row value for column 2*x + 1
 	 */
 	for (i = 0; i < SKE_NUM_ASRX_REGISTERS; i++) {
@@ -152,7 +152,7 @@ static void ske_keypad_read_data(struct ske_keypad *keypad)
 		if (!ske_asr)
 			continue;
 
-		/* now that ASRx is zero, find out the coloumn x and row y*/
+		/* now that ASRx is zero, find out the column x and row y*/
 		if (ske_asr & 0xff) {
 			col = i * 2;
 			status = ske_asr & 0xff;
@@ -251,7 +251,7 @@ static int __devinit ske_keypad_probe(struct platform_device *pdev)
 
 	keypad->clk = clk_get(&pdev->dev, NULL);
 	if (IS_ERR(keypad->clk)) {
-		dev_err(&pdev->dev, "failed to clk_get\n");
+		dev_err(&pdev->dev, "failed to get clk\n");
 		error = PTR_ERR(keypad->clk);
 		goto err_iounmap;
 	}
@@ -285,8 +285,8 @@ static int __devinit ske_keypad_probe(struct platform_device *pdev)
 		goto err_clk_disable;
 	}
 
-	error = request_irq(keypad->irq, ske_keypad_irq, 0,
-			"ske-keypad", keypad);
+	error = request_threaded_irq(keypad->irq, NULL, ske_keypad_irq,
+				     IRQF_ONESHOT, "ske-keypad", keypad);
 	if (error) {
 		dev_err(&pdev->dev, "allocate irq %d failed\n", keypad->irq);
 		goto err_clk_disable;
The main change is use of request_threaded_irq() - we do need it as you
msleep() in the handler.

Thanks.

-- 
Dmitry
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help