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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 <linus.walleij@xxxxxxxxxxxxxx>
> Signed-off-by: Sundar Iyer <sundar.iyer@xxxxxxxxxxxxxx>
> Signed-off-by: Dmitry Torokhov <dtor@xxxxxxx>

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
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux