All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v6 1/3] ARM: SAMSUNG: Add keypad device support
@ 2010-06-28 11:33 ` Joonyoung Shim
  0 siblings, 0 replies; 42+ messages in thread
From: Joonyoung Shim @ 2010-06-28 11:33 UTC (permalink / raw)
  To: linux-arm-kernel
  Cc: linux-samsung-soc, linux-input, ben-linux, dmitry.torokhov,
	kyungmin.park, kgene.kim

This patch adds samsung keypad device definition for samsung cpus.

Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
 arch/arm/plat-samsung/Kconfig               |    5 ++
 arch/arm/plat-samsung/Makefile              |    1 +
 arch/arm/plat-samsung/dev-keypad.c          |   58 ++++++++++++++++++++++++++
 arch/arm/plat-samsung/include/plat/devs.h   |    2 +
 arch/arm/plat-samsung/include/plat/keypad.h |   59 +++++++++++++++++++++++++++
 5 files changed, 125 insertions(+), 0 deletions(-)
 create mode 100644 arch/arm/plat-samsung/dev-keypad.c
 create mode 100644 arch/arm/plat-samsung/include/plat/keypad.h

diff --git a/arch/arm/plat-samsung/Kconfig b/arch/arm/plat-samsung/Kconfig
index 2753fb3..bd007e3 100644
--- a/arch/arm/plat-samsung/Kconfig
+++ b/arch/arm/plat-samsung/Kconfig
@@ -227,6 +227,11 @@ config SAMSUNG_DEV_TS
 	help
 	    Common in platform device definitions for touchscreen device
 
+config SAMSUNG_DEV_KEYPAD
+	bool
+	help
+	  Compile in platform device definitions for keypad
+
 # DMA
 
 config S3C_DMA
diff --git a/arch/arm/plat-samsung/Makefile b/arch/arm/plat-samsung/Makefile
index b1d82cc..8269d80 100644
--- a/arch/arm/plat-samsung/Makefile
+++ b/arch/arm/plat-samsung/Makefile
@@ -48,6 +48,7 @@ obj-$(CONFIG_S3C_DEV_RTC)	+= dev-rtc.o
 
 obj-$(CONFIG_SAMSUNG_DEV_ADC)	+= dev-adc.o
 obj-$(CONFIG_SAMSUNG_DEV_TS)	+= dev-ts.o
+obj-$(CONFIG_SAMSUNG_DEV_KEYPAD)	+= dev-keypad.o
 
 # DMA support
 
diff --git a/arch/arm/plat-samsung/dev-keypad.c b/arch/arm/plat-samsung/dev-keypad.c
new file mode 100644
index 0000000..679b444
--- /dev/null
+++ b/arch/arm/plat-samsung/dev-keypad.c
@@ -0,0 +1,58 @@
+/*
+ * linux/arch/arm/plat-samsung/dev-keypad.c
+ *
+ * Copyright (C) 2010 Samsung Electronics Co.Ltd
+ * Author: Joonyoung Shim <jy0922.shim@samsung.com>
+ *
+ *  This program is free software; you can redistribute  it and/or modify it
+ *  under  the terms of  the GNU General  Public License as published by the
+ *  Free Software Foundation;  either version 2 of the  License, or (at your
+ *  option) any later version.
+ *
+ */
+
+#include <linux/platform_device.h>
+#include <mach/irqs.h>
+#include <mach/map.h>
+#include <plat/cpu.h>
+#include <plat/devs.h>
+#include <plat/keypad.h>
+
+static struct resource samsung_keypad_resources[] = {
+	[0] = {
+		.start	= SAMSUNG_PA_KEYPAD,
+		.end	= SAMSUNG_PA_KEYPAD + 0x20 - 1,
+		.flags	= IORESOURCE_MEM,
+	},
+	[1] = {
+		.start	= IRQ_KEYPAD,
+		.end	= IRQ_KEYPAD,
+		.flags	= IORESOURCE_IRQ,
+	},
+};
+
+struct platform_device samsung_device_keypad = {
+	.name		= "samsung-keypad",
+	.id		= -1,
+	.num_resources	= ARRAY_SIZE(samsung_keypad_resources),
+	.resource	= samsung_keypad_resources,
+};
+
+void __init samsung_keypad_set_platdata(struct samsung_keypad_platdata *pd)
+{
+	struct samsung_keypad_platdata *npd;
+
+	if (!pd) {
+		printk(KERN_ERR "%s: no platform data\n", __func__);
+		return;
+	}
+
+	npd = kmemdup(pd, sizeof(struct samsung_keypad_platdata), GFP_KERNEL);
+	if (!npd)
+		printk(KERN_ERR "%s: no memory for platform data\n", __func__);
+
+	if (!npd->cfg_gpio)
+		npd->cfg_gpio = samsung_keypad_cfg_gpio;
+
+	samsung_device_keypad.dev.platform_data = npd;
+}
diff --git a/arch/arm/plat-samsung/include/plat/devs.h b/arch/arm/plat-samsung/include/plat/devs.h
index e6144e4..6d9f01b 100644
--- a/arch/arm/plat-samsung/include/plat/devs.h
+++ b/arch/arm/plat-samsung/include/plat/devs.h
@@ -100,6 +100,8 @@ extern struct platform_device s5pc100_device_iis0;
 extern struct platform_device s5pc100_device_iis1;
 extern struct platform_device s5pc100_device_iis2;
 
+extern struct platform_device samsung_device_keypad;
+
 /* s3c2440 specific devices */
 
 #ifdef CONFIG_CPU_S3C2440
diff --git a/arch/arm/plat-samsung/include/plat/keypad.h b/arch/arm/plat-samsung/include/plat/keypad.h
new file mode 100644
index 0000000..f87646b
--- /dev/null
+++ b/arch/arm/plat-samsung/include/plat/keypad.h
@@ -0,0 +1,59 @@
+/*
+ * linux/arch/arm/plat-samsung/include/plat/keypad.h
+ *
+ * Copyright (C) 2010 Samsung Electronics Co.Ltd
+ * Author: Joonyoung Shim <jy0922.shim@samsung.com>
+ *
+ * Samsung Platform - Keypad platform data definitions
+ *
+ *  This program is free software; you can redistribute  it and/or modify it
+ *  under  the terms of  the GNU General  Public License as published by the
+ *  Free Software Foundation;  either version 2 of the  License, or (at your
+ *  option) any later version.
+ *
+ */
+
+#ifndef __PLAT_SAMSUNG_KEYPAD_H
+#define __PLAT_SAMSUNG_KEYPAD_H
+
+#include <linux/input/matrix_keypad.h>
+
+#define SAMSUNG_MAX_ROWS	8
+#define SAMSUNG_MAX_COLS	8
+
+/**
+ * struct samsung_keypad_platdata - Platform device data for Samsung Keypad.
+ * @keymap_data: pointer to &matrix_keymap_data.
+ * @rows: number of keypad row supported.
+ * @cols: number of keypad col supported.
+ * @no_autorepeat: disable key autorepeat.
+ * @wakeup: controls whether the device should be set up as wakeup source.
+ * @cfg_gpio: configure the GPIO.
+ *
+ * Initialisation data specific to either the machine or the platform
+ * for the device driver to use or call-back when configuring gpio.
+ */
+struct samsung_keypad_platdata {
+	const struct matrix_keymap_data	*keymap_data;
+	unsigned int rows;
+	unsigned int cols;
+	bool no_autorepeat;
+	bool wakeup;
+
+	void (*cfg_gpio)(unsigned int rows, unsigned int cols);
+};
+
+/**
+ * samsung_keypad_set_platdata - Set platform data for Samsung Keypad device.
+ * @pd: Platform data to register to device.
+ *
+ * Register the given platform data for use with Samsung Keypad device.
+ * The call will copy the platform data, so the board definitions can
+ * make the structure itself __initdata.
+ */
+extern void samsung_keypad_set_platdata(struct samsung_keypad_platdata *pd);
+
+/* defined by architecture to configure gpio. */
+extern void samsung_keypad_cfg_gpio(unsigned int rows, unsigned int cols);
+
+#endif /* __PLAT_SAMSUNG_KEYPAD_H */
-- 
1.7.0.4


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

* [PATCH v6 1/3] ARM: SAMSUNG: Add keypad device support
@ 2010-06-28 11:33 ` Joonyoung Shim
  0 siblings, 0 replies; 42+ messages in thread
From: Joonyoung Shim @ 2010-06-28 11:33 UTC (permalink / raw)
  To: linux-arm-kernel

This patch adds samsung keypad device definition for samsung cpus.

Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
 arch/arm/plat-samsung/Kconfig               |    5 ++
 arch/arm/plat-samsung/Makefile              |    1 +
 arch/arm/plat-samsung/dev-keypad.c          |   58 ++++++++++++++++++++++++++
 arch/arm/plat-samsung/include/plat/devs.h   |    2 +
 arch/arm/plat-samsung/include/plat/keypad.h |   59 +++++++++++++++++++++++++++
 5 files changed, 125 insertions(+), 0 deletions(-)
 create mode 100644 arch/arm/plat-samsung/dev-keypad.c
 create mode 100644 arch/arm/plat-samsung/include/plat/keypad.h

diff --git a/arch/arm/plat-samsung/Kconfig b/arch/arm/plat-samsung/Kconfig
index 2753fb3..bd007e3 100644
--- a/arch/arm/plat-samsung/Kconfig
+++ b/arch/arm/plat-samsung/Kconfig
@@ -227,6 +227,11 @@ config SAMSUNG_DEV_TS
 	help
 	    Common in platform device definitions for touchscreen device
 
+config SAMSUNG_DEV_KEYPAD
+	bool
+	help
+	  Compile in platform device definitions for keypad
+
 # DMA
 
 config S3C_DMA
diff --git a/arch/arm/plat-samsung/Makefile b/arch/arm/plat-samsung/Makefile
index b1d82cc..8269d80 100644
--- a/arch/arm/plat-samsung/Makefile
+++ b/arch/arm/plat-samsung/Makefile
@@ -48,6 +48,7 @@ obj-$(CONFIG_S3C_DEV_RTC)	+= dev-rtc.o
 
 obj-$(CONFIG_SAMSUNG_DEV_ADC)	+= dev-adc.o
 obj-$(CONFIG_SAMSUNG_DEV_TS)	+= dev-ts.o
+obj-$(CONFIG_SAMSUNG_DEV_KEYPAD)	+= dev-keypad.o
 
 # DMA support
 
diff --git a/arch/arm/plat-samsung/dev-keypad.c b/arch/arm/plat-samsung/dev-keypad.c
new file mode 100644
index 0000000..679b444
--- /dev/null
+++ b/arch/arm/plat-samsung/dev-keypad.c
@@ -0,0 +1,58 @@
+/*
+ * linux/arch/arm/plat-samsung/dev-keypad.c
+ *
+ * Copyright (C) 2010 Samsung Electronics Co.Ltd
+ * Author: Joonyoung Shim <jy0922.shim@samsung.com>
+ *
+ *  This program is free software; you can redistribute  it and/or modify it
+ *  under  the terms of  the GNU General  Public License as published by the
+ *  Free Software Foundation;  either version 2 of the  License, or (at your
+ *  option) any later version.
+ *
+ */
+
+#include <linux/platform_device.h>
+#include <mach/irqs.h>
+#include <mach/map.h>
+#include <plat/cpu.h>
+#include <plat/devs.h>
+#include <plat/keypad.h>
+
+static struct resource samsung_keypad_resources[] = {
+	[0] = {
+		.start	= SAMSUNG_PA_KEYPAD,
+		.end	= SAMSUNG_PA_KEYPAD + 0x20 - 1,
+		.flags	= IORESOURCE_MEM,
+	},
+	[1] = {
+		.start	= IRQ_KEYPAD,
+		.end	= IRQ_KEYPAD,
+		.flags	= IORESOURCE_IRQ,
+	},
+};
+
+struct platform_device samsung_device_keypad = {
+	.name		= "samsung-keypad",
+	.id		= -1,
+	.num_resources	= ARRAY_SIZE(samsung_keypad_resources),
+	.resource	= samsung_keypad_resources,
+};
+
+void __init samsung_keypad_set_platdata(struct samsung_keypad_platdata *pd)
+{
+	struct samsung_keypad_platdata *npd;
+
+	if (!pd) {
+		printk(KERN_ERR "%s: no platform data\n", __func__);
+		return;
+	}
+
+	npd = kmemdup(pd, sizeof(struct samsung_keypad_platdata), GFP_KERNEL);
+	if (!npd)
+		printk(KERN_ERR "%s: no memory for platform data\n", __func__);
+
+	if (!npd->cfg_gpio)
+		npd->cfg_gpio = samsung_keypad_cfg_gpio;
+
+	samsung_device_keypad.dev.platform_data = npd;
+}
diff --git a/arch/arm/plat-samsung/include/plat/devs.h b/arch/arm/plat-samsung/include/plat/devs.h
index e6144e4..6d9f01b 100644
--- a/arch/arm/plat-samsung/include/plat/devs.h
+++ b/arch/arm/plat-samsung/include/plat/devs.h
@@ -100,6 +100,8 @@ extern struct platform_device s5pc100_device_iis0;
 extern struct platform_device s5pc100_device_iis1;
 extern struct platform_device s5pc100_device_iis2;
 
+extern struct platform_device samsung_device_keypad;
+
 /* s3c2440 specific devices */
 
 #ifdef CONFIG_CPU_S3C2440
diff --git a/arch/arm/plat-samsung/include/plat/keypad.h b/arch/arm/plat-samsung/include/plat/keypad.h
new file mode 100644
index 0000000..f87646b
--- /dev/null
+++ b/arch/arm/plat-samsung/include/plat/keypad.h
@@ -0,0 +1,59 @@
+/*
+ * linux/arch/arm/plat-samsung/include/plat/keypad.h
+ *
+ * Copyright (C) 2010 Samsung Electronics Co.Ltd
+ * Author: Joonyoung Shim <jy0922.shim@samsung.com>
+ *
+ * Samsung Platform - Keypad platform data definitions
+ *
+ *  This program is free software; you can redistribute  it and/or modify it
+ *  under  the terms of  the GNU General  Public License as published by the
+ *  Free Software Foundation;  either version 2 of the  License, or (at your
+ *  option) any later version.
+ *
+ */
+
+#ifndef __PLAT_SAMSUNG_KEYPAD_H
+#define __PLAT_SAMSUNG_KEYPAD_H
+
+#include <linux/input/matrix_keypad.h>
+
+#define SAMSUNG_MAX_ROWS	8
+#define SAMSUNG_MAX_COLS	8
+
+/**
+ * struct samsung_keypad_platdata - Platform device data for Samsung Keypad.
+ * @keymap_data: pointer to &matrix_keymap_data.
+ * @rows: number of keypad row supported.
+ * @cols: number of keypad col supported.
+ * @no_autorepeat: disable key autorepeat.
+ * @wakeup: controls whether the device should be set up as wakeup source.
+ * @cfg_gpio: configure the GPIO.
+ *
+ * Initialisation data specific to either the machine or the platform
+ * for the device driver to use or call-back when configuring gpio.
+ */
+struct samsung_keypad_platdata {
+	const struct matrix_keymap_data	*keymap_data;
+	unsigned int rows;
+	unsigned int cols;
+	bool no_autorepeat;
+	bool wakeup;
+
+	void (*cfg_gpio)(unsigned int rows, unsigned int cols);
+};
+
+/**
+ * samsung_keypad_set_platdata - Set platform data for Samsung Keypad device.
+ * @pd: Platform data to register to device.
+ *
+ * Register the given platform data for use with Samsung Keypad device.
+ * The call will copy the platform data, so the board definitions can
+ * make the structure itself __initdata.
+ */
+extern void samsung_keypad_set_platdata(struct samsung_keypad_platdata *pd);
+
+/* defined by architecture to configure gpio. */
+extern void samsung_keypad_cfg_gpio(unsigned int rows, unsigned int cols);
+
+#endif /* __PLAT_SAMSUNG_KEYPAD_H */
-- 
1.7.0.4

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

* [PATCH v6 2/3] ARM: S5PV210: Add keypad device helpers
  2010-06-28 11:33 ` Joonyoung Shim
@ 2010-06-28 11:33   ` Joonyoung Shim
  -1 siblings, 0 replies; 42+ messages in thread
From: Joonyoung Shim @ 2010-06-28 11:33 UTC (permalink / raw)
  To: linux-arm-kernel
  Cc: kgene.kim, dmitry.torokhov, kyungmin.park, linux-samsung-soc,
	ben-linux, linux-input

This patch adds the keypad device platform helpers for S5PV210 cpu.

Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
 arch/arm/mach-s5pv210/Kconfig                    |    5 +++
 arch/arm/mach-s5pv210/Makefile                   |    1 +
 arch/arm/mach-s5pv210/cpu.c                      |    4 ++
 arch/arm/mach-s5pv210/include/mach/map.h         |    3 ++
 arch/arm/mach-s5pv210/setup-keypad.c             |   34 ++++++++++++++++++++++
 arch/arm/plat-samsung/include/plat/keypad-core.h |   31 ++++++++++++++++++++
 6 files changed, 78 insertions(+), 0 deletions(-)
 create mode 100644 arch/arm/mach-s5pv210/setup-keypad.c
 create mode 100644 arch/arm/plat-samsung/include/plat/keypad-core.h

diff --git a/arch/arm/mach-s5pv210/Kconfig b/arch/arm/mach-s5pv210/Kconfig
index 0761eac..692d01c 100644
--- a/arch/arm/mach-s5pv210/Kconfig
+++ b/arch/arm/mach-s5pv210/Kconfig
@@ -32,6 +32,11 @@ config S5PV210_SETUP_FB_24BPP
 	help
           Common setup code for S5PV210 with an 24bpp RGB display helper.
 
+config S5PV210_SETUP_KEYPAD
+	bool
+	help
+	  Common setup code for keypad.
+
 config S5PV210_SETUP_SDHCI
         bool
         select S5PV210_SETUP_SDHCI_GPIO
diff --git a/arch/arm/mach-s5pv210/Makefile b/arch/arm/mach-s5pv210/Makefile
index 30be9a6..aae592a 100644
--- a/arch/arm/mach-s5pv210/Makefile
+++ b/arch/arm/mach-s5pv210/Makefile
@@ -31,5 +31,6 @@ obj-$(CONFIG_S5PC110_DEV_ONENAND) += dev-onenand.o
 obj-$(CONFIG_S5PV210_SETUP_FB_24BPP)	+= setup-fb-24bpp.o
 obj-$(CONFIG_S5PV210_SETUP_I2C1) 	+= setup-i2c1.o
 obj-$(CONFIG_S5PV210_SETUP_I2C2) 	+= setup-i2c2.o
+obj-$(CONFIG_S5PV210_SETUP_KEYPAD)	+= setup-keypad.o
 obj-$(CONFIG_S5PV210_SETUP_SDHCI)       += setup-sdhci.o
 obj-$(CONFIG_S5PV210_SETUP_SDHCI_GPIO)	+= setup-sdhci-gpio.o
diff --git a/arch/arm/mach-s5pv210/cpu.c b/arch/arm/mach-s5pv210/cpu.c
index 411a4a9..94c632b 100644
--- a/arch/arm/mach-s5pv210/cpu.c
+++ b/arch/arm/mach-s5pv210/cpu.c
@@ -33,6 +33,7 @@
 #include <plat/clock.h>
 #include <plat/s5pv210.h>
 #include <plat/iic-core.h>
+#include <plat/keypad-core.h>
 #include <plat/sdhci.h>
 
 /* Initial IO mappings */
@@ -91,6 +92,9 @@ void __init s5pv210_map_io(void)
 	s3c_i2c0_setname("s3c2440-i2c");
 	s3c_i2c1_setname("s3c2440-i2c");
 	s3c_i2c2_setname("s3c2440-i2c");
+
+	/* Use s5pv210-keypad instead of samsung-keypad */
+	samsung_keypad_setname("s5pv210-keypad");
 }
 
 void __init s5pv210_init_clocks(int xtal)
diff --git a/arch/arm/mach-s5pv210/include/mach/map.h b/arch/arm/mach-s5pv210/include/mach/map.h
index 34eb168..e2f6e2a 100644
--- a/arch/arm/mach-s5pv210/include/mach/map.h
+++ b/arch/arm/mach-s5pv210/include/mach/map.h
@@ -32,6 +32,8 @@
 #define S5PV210_PA_SPI0		0xE1300000
 #define S5PV210_PA_SPI1		0xE1400000
 
+#define S5PV210_PA_KEYPAD	(0xE1600000)
+
 #define S5PV210_PA_IIC0		(0xE1800000)
 #define S5PV210_PA_IIC1		(0xFAB00000)
 #define S5PV210_PA_IIC2		(0xE1A00000)
@@ -104,5 +106,6 @@
 #define S3C_PA_WDT		S5PV210_PA_WATCHDOG
 
 #define SAMSUNG_PA_ADC		S5PV210_PA_ADC
+#define SAMSUNG_PA_KEYPAD	S5PV210_PA_KEYPAD
 
 #endif /* __ASM_ARCH_MAP_H */
diff --git a/arch/arm/mach-s5pv210/setup-keypad.c b/arch/arm/mach-s5pv210/setup-keypad.c
new file mode 100644
index 0000000..37b2790
--- /dev/null
+++ b/arch/arm/mach-s5pv210/setup-keypad.c
@@ -0,0 +1,34 @@
+/*
+ * linux/arch/arm/mach-s5pv210/setup-keypad.c
+ *
+ * Copyright (C) 2010 Samsung Electronics Co.Ltd
+ * Author: Joonyoung Shim <jy0922.shim@samsung.com>
+ *
+ *  This program is free software; you can redistribute  it and/or modify it
+ *  under  the terms of  the GNU General  Public License as published by the
+ *  Free Software Foundation;  either version 2 of the  License, or (at your
+ *  option) any later version.
+ *
+ */
+
+#include <linux/gpio.h>
+#include <plat/gpio-cfg.h>
+
+void samsung_keypad_cfg_gpio(unsigned int rows, unsigned int cols)
+{
+	unsigned int gpio, end;
+
+	/* Set all the necessary GPH3 pins to special-function 3: KP_ROW[x] */
+	end = S5PV210_GPH3(rows);
+	for (gpio = S5PV210_GPH3(0); gpio < end; gpio++) {
+		s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(3));
+		s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
+	}
+
+	/* Set all the necessary GPH2 pins to special-function 3: KP_COL[x] */
+	end = S5PV210_GPH2(cols);
+	for (gpio = S5PV210_GPH2(0); gpio < end; gpio++) {
+		s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(3));
+		s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
+	}
+}
diff --git a/arch/arm/plat-samsung/include/plat/keypad-core.h b/arch/arm/plat-samsung/include/plat/keypad-core.h
new file mode 100644
index 0000000..d513e1b
--- /dev/null
+++ b/arch/arm/plat-samsung/include/plat/keypad-core.h
@@ -0,0 +1,31 @@
+/*
+ * linux/arch/arm/plat-samsung/include/plat/keypad-core.h
+ *
+ * Copyright (C) 2010 Samsung Electronics Co.Ltd
+ * Author: Joonyoung Shim <jy0922.shim@samsung.com>
+ *
+ * Samsung keypad controller core function
+ *
+ *  This program is free software; you can redistribute  it and/or modify it
+ *  under  the terms of  the GNU General  Public License as published by the
+ *  Free Software Foundation;  either version 2 of the  License, or (at your
+ *  option) any later version.
+ *
+ */
+
+#ifndef __ASM_ARCH_KEYPAD_CORE_H
+#define __ASM_ARCH_KEYPAD_CORE_H
+
+/* These function are only for use with the core support code, such as
+ * the cpu specific initialisation code
+ */
+
+/* re-define device name depending on support. */
+static inline void samsung_keypad_setname(char *name)
+{
+#ifdef CONFIG_SAMSUNG_DEV_KEYPAD
+	samsung_device_keypad.name = name;
+#endif
+}
+
+#endif /* __ASM_ARCH_KEYPAD_CORE_H */
-- 
1.7.0.4

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

* [PATCH v6 2/3] ARM: S5PV210: Add keypad device helpers
@ 2010-06-28 11:33   ` Joonyoung Shim
  0 siblings, 0 replies; 42+ messages in thread
From: Joonyoung Shim @ 2010-06-28 11:33 UTC (permalink / raw)
  To: linux-arm-kernel

This patch adds the keypad device platform helpers for S5PV210 cpu.

Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
 arch/arm/mach-s5pv210/Kconfig                    |    5 +++
 arch/arm/mach-s5pv210/Makefile                   |    1 +
 arch/arm/mach-s5pv210/cpu.c                      |    4 ++
 arch/arm/mach-s5pv210/include/mach/map.h         |    3 ++
 arch/arm/mach-s5pv210/setup-keypad.c             |   34 ++++++++++++++++++++++
 arch/arm/plat-samsung/include/plat/keypad-core.h |   31 ++++++++++++++++++++
 6 files changed, 78 insertions(+), 0 deletions(-)
 create mode 100644 arch/arm/mach-s5pv210/setup-keypad.c
 create mode 100644 arch/arm/plat-samsung/include/plat/keypad-core.h

diff --git a/arch/arm/mach-s5pv210/Kconfig b/arch/arm/mach-s5pv210/Kconfig
index 0761eac..692d01c 100644
--- a/arch/arm/mach-s5pv210/Kconfig
+++ b/arch/arm/mach-s5pv210/Kconfig
@@ -32,6 +32,11 @@ config S5PV210_SETUP_FB_24BPP
 	help
           Common setup code for S5PV210 with an 24bpp RGB display helper.
 
+config S5PV210_SETUP_KEYPAD
+	bool
+	help
+	  Common setup code for keypad.
+
 config S5PV210_SETUP_SDHCI
         bool
         select S5PV210_SETUP_SDHCI_GPIO
diff --git a/arch/arm/mach-s5pv210/Makefile b/arch/arm/mach-s5pv210/Makefile
index 30be9a6..aae592a 100644
--- a/arch/arm/mach-s5pv210/Makefile
+++ b/arch/arm/mach-s5pv210/Makefile
@@ -31,5 +31,6 @@ obj-$(CONFIG_S5PC110_DEV_ONENAND) += dev-onenand.o
 obj-$(CONFIG_S5PV210_SETUP_FB_24BPP)	+= setup-fb-24bpp.o
 obj-$(CONFIG_S5PV210_SETUP_I2C1) 	+= setup-i2c1.o
 obj-$(CONFIG_S5PV210_SETUP_I2C2) 	+= setup-i2c2.o
+obj-$(CONFIG_S5PV210_SETUP_KEYPAD)	+= setup-keypad.o
 obj-$(CONFIG_S5PV210_SETUP_SDHCI)       += setup-sdhci.o
 obj-$(CONFIG_S5PV210_SETUP_SDHCI_GPIO)	+= setup-sdhci-gpio.o
diff --git a/arch/arm/mach-s5pv210/cpu.c b/arch/arm/mach-s5pv210/cpu.c
index 411a4a9..94c632b 100644
--- a/arch/arm/mach-s5pv210/cpu.c
+++ b/arch/arm/mach-s5pv210/cpu.c
@@ -33,6 +33,7 @@
 #include <plat/clock.h>
 #include <plat/s5pv210.h>
 #include <plat/iic-core.h>
+#include <plat/keypad-core.h>
 #include <plat/sdhci.h>
 
 /* Initial IO mappings */
@@ -91,6 +92,9 @@ void __init s5pv210_map_io(void)
 	s3c_i2c0_setname("s3c2440-i2c");
 	s3c_i2c1_setname("s3c2440-i2c");
 	s3c_i2c2_setname("s3c2440-i2c");
+
+	/* Use s5pv210-keypad instead of samsung-keypad */
+	samsung_keypad_setname("s5pv210-keypad");
 }
 
 void __init s5pv210_init_clocks(int xtal)
diff --git a/arch/arm/mach-s5pv210/include/mach/map.h b/arch/arm/mach-s5pv210/include/mach/map.h
index 34eb168..e2f6e2a 100644
--- a/arch/arm/mach-s5pv210/include/mach/map.h
+++ b/arch/arm/mach-s5pv210/include/mach/map.h
@@ -32,6 +32,8 @@
 #define S5PV210_PA_SPI0		0xE1300000
 #define S5PV210_PA_SPI1		0xE1400000
 
+#define S5PV210_PA_KEYPAD	(0xE1600000)
+
 #define S5PV210_PA_IIC0		(0xE1800000)
 #define S5PV210_PA_IIC1		(0xFAB00000)
 #define S5PV210_PA_IIC2		(0xE1A00000)
@@ -104,5 +106,6 @@
 #define S3C_PA_WDT		S5PV210_PA_WATCHDOG
 
 #define SAMSUNG_PA_ADC		S5PV210_PA_ADC
+#define SAMSUNG_PA_KEYPAD	S5PV210_PA_KEYPAD
 
 #endif /* __ASM_ARCH_MAP_H */
diff --git a/arch/arm/mach-s5pv210/setup-keypad.c b/arch/arm/mach-s5pv210/setup-keypad.c
new file mode 100644
index 0000000..37b2790
--- /dev/null
+++ b/arch/arm/mach-s5pv210/setup-keypad.c
@@ -0,0 +1,34 @@
+/*
+ * linux/arch/arm/mach-s5pv210/setup-keypad.c
+ *
+ * Copyright (C) 2010 Samsung Electronics Co.Ltd
+ * Author: Joonyoung Shim <jy0922.shim@samsung.com>
+ *
+ *  This program is free software; you can redistribute  it and/or modify it
+ *  under  the terms of  the GNU General  Public License as published by the
+ *  Free Software Foundation;  either version 2 of the  License, or (at your
+ *  option) any later version.
+ *
+ */
+
+#include <linux/gpio.h>
+#include <plat/gpio-cfg.h>
+
+void samsung_keypad_cfg_gpio(unsigned int rows, unsigned int cols)
+{
+	unsigned int gpio, end;
+
+	/* Set all the necessary GPH3 pins to special-function 3: KP_ROW[x] */
+	end = S5PV210_GPH3(rows);
+	for (gpio = S5PV210_GPH3(0); gpio < end; gpio++) {
+		s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(3));
+		s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
+	}
+
+	/* Set all the necessary GPH2 pins to special-function 3: KP_COL[x] */
+	end = S5PV210_GPH2(cols);
+	for (gpio = S5PV210_GPH2(0); gpio < end; gpio++) {
+		s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(3));
+		s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
+	}
+}
diff --git a/arch/arm/plat-samsung/include/plat/keypad-core.h b/arch/arm/plat-samsung/include/plat/keypad-core.h
new file mode 100644
index 0000000..d513e1b
--- /dev/null
+++ b/arch/arm/plat-samsung/include/plat/keypad-core.h
@@ -0,0 +1,31 @@
+/*
+ * linux/arch/arm/plat-samsung/include/plat/keypad-core.h
+ *
+ * Copyright (C) 2010 Samsung Electronics Co.Ltd
+ * Author: Joonyoung Shim <jy0922.shim@samsung.com>
+ *
+ * Samsung keypad controller core function
+ *
+ *  This program is free software; you can redistribute  it and/or modify it
+ *  under  the terms of  the GNU General  Public License as published by the
+ *  Free Software Foundation;  either version 2 of the  License, or (at your
+ *  option) any later version.
+ *
+ */
+
+#ifndef __ASM_ARCH_KEYPAD_CORE_H
+#define __ASM_ARCH_KEYPAD_CORE_H
+
+/* These function are only for use with the core support code, such as
+ * the cpu specific initialisation code
+ */
+
+/* re-define device name depending on support. */
+static inline void samsung_keypad_setname(char *name)
+{
+#ifdef CONFIG_SAMSUNG_DEV_KEYPAD
+	samsung_device_keypad.name = name;
+#endif
+}
+
+#endif /* __ASM_ARCH_KEYPAD_CORE_H */
-- 
1.7.0.4

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

* [PATCH v6 3/3] input: samsung-keypad - Add samsung keypad driver
  2010-06-28 11:33 ` Joonyoung Shim
@ 2010-06-28 11:33   ` Joonyoung Shim
  -1 siblings, 0 replies; 42+ messages in thread
From: Joonyoung Shim @ 2010-06-28 11:33 UTC (permalink / raw)
  To: linux-arm-kernel
  Cc: kgene.kim, dmitry.torokhov, kyungmin.park, linux-samsung-soc,
	ben-linux, linux-input

This patch adds support for keypad driver running on Samsung cpus. This
driver is tested on GONI and Aquila board using S5PC110 cpu.

Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
 drivers/input/keyboard/Kconfig          |    9 +
 drivers/input/keyboard/Makefile         |    1 +
 drivers/input/keyboard/samsung-keypad.c |  491 +++++++++++++++++++++++++++++++
 3 files changed, 501 insertions(+), 0 deletions(-)
 create mode 100644 drivers/input/keyboard/samsung-keypad.c

diff --git a/drivers/input/keyboard/Kconfig b/drivers/input/keyboard/Kconfig
index d8fa5d7..bf6a50f 100644
--- a/drivers/input/keyboard/Kconfig
+++ b/drivers/input/keyboard/Kconfig
@@ -342,6 +342,15 @@ config KEYBOARD_PXA930_ROTARY
 	  To compile this driver as a module, choose M here: the
 	  module will be called pxa930_rotary.
 
+config KEYBOARD_SAMSUNG
+	tristate "Samsung keypad support"
+	depends on SAMSUNG_DEV_KEYPAD
+	help
+	  Say Y here if you want to use the Samsung keypad.
+
+	  To compile this driver as a module, choose M here: the
+	  module will be called samsung-keypad.
+
 config KEYBOARD_STOWAWAY
 	tristate "Stowaway keyboard"
 	select SERIO
diff --git a/drivers/input/keyboard/Makefile b/drivers/input/keyboard/Makefile
index 4596d0c..8f973ed 100644
--- a/drivers/input/keyboard/Makefile
+++ b/drivers/input/keyboard/Makefile
@@ -32,6 +32,7 @@ obj-$(CONFIG_KEYBOARD_OPENCORES)	+= opencores-kbd.o
 obj-$(CONFIG_KEYBOARD_PXA27x)		+= pxa27x_keypad.o
 obj-$(CONFIG_KEYBOARD_PXA930_ROTARY)	+= pxa930_rotary.o
 obj-$(CONFIG_KEYBOARD_QT2160)		+= qt2160.o
+obj-$(CONFIG_KEYBOARD_SAMSUNG)		+= samsung-keypad.o
 obj-$(CONFIG_KEYBOARD_SH_KEYSC)		+= sh_keysc.o
 obj-$(CONFIG_KEYBOARD_STOWAWAY)		+= stowaway.o
 obj-$(CONFIG_KEYBOARD_SUNKBD)		+= sunkbd.o
diff --git a/drivers/input/keyboard/samsung-keypad.c b/drivers/input/keyboard/samsung-keypad.c
new file mode 100644
index 0000000..e467195
--- /dev/null
+++ b/drivers/input/keyboard/samsung-keypad.c
@@ -0,0 +1,491 @@
+/*
+ * Samsung keypad driver
+ *
+ * Copyright (C) 2010 Samsung Electronics Co.Ltd
+ * Author: Joonyoung Shim <jy0922.shim@samsung.com>
+ * Author: Donghwa Lee <dh09.lee@samsung.com>
+ *
+ *  This program is free software; you can redistribute  it and/or modify it
+ *  under  the terms of  the GNU General  Public License as published by the
+ *  Free Software Foundation;  either version 2 of the  License, or (at your
+ *  option) any later version.
+ */
+
+#include <linux/clk.h>
+#include <linux/delay.h>
+#include <linux/err.h>
+#include <linux/init.h>
+#include <linux/input.h>
+#include <linux/interrupt.h>
+#include <linux/io.h>
+#include <linux/module.h>
+#include <linux/platform_device.h>
+#include <linux/slab.h>
+#include <plat/keypad.h>
+
+#define SAMSUNG_KEYIFCON			0x00
+#define SAMSUNG_KEYIFSTSCLR			0x04
+#define SAMSUNG_KEYIFCOL			0x08
+#define SAMSUNG_KEYIFROW			0x0c
+#define SAMSUNG_KEYIFFC				0x10
+
+/* SAMSUNG_KEYIFCON */
+#define SAMSUNG_KEYIFCON_INT_F_EN		(1 << 0)
+#define SAMSUNG_KEYIFCON_INT_R_EN		(1 << 1)
+#define SAMSUNG_KEYIFCON_DF_EN			(1 << 2)
+#define SAMSUNG_KEYIFCON_FC_EN			(1 << 3)
+#define SAMSUNG_KEYIFCON_WAKEUPEN		(1 << 4)
+
+/* SAMSUNG_KEYIFSTSCLR */
+#define SAMSUNG_KEYIFSTSCLR_P_INT_MASK		(0xff << 0)
+#define SAMSUNG_KEYIFSTSCLR_R_INT_MASK		(0xff << 8)
+#define SAMSUNG_KEYIFSTSCLR_R_INT_OFFSET	8
+#define S5PV210_KEYIFSTSCLR_P_INT_MASK		(0x3fff << 0)
+#define S5PV210_KEYIFSTSCLR_R_INT_MASK		(0x3fff << 16)
+#define S5PV210_KEYIFSTSCLR_R_INT_OFFSET	16
+
+/* SAMSUNG_KEYIFCOL */
+#define SAMSUNG_KEYIFCOL_MASK			(0xff << 0)
+#define S5PV210_KEYIFCOLEN_MASK			(0xff << 8)
+
+/* SAMSUNG_KEYIFROW */
+#define SAMSUNG_KEYIFROW_MASK			(0xff << 0)
+#define S5PV210_KEYIFROW_MASK			(0x3fff << 0)
+
+/* SAMSUNG_KEYIFFC */
+#define SAMSUNG_KEYIFFC_MASK			(0x3ff << 0)
+
+enum samsung_keypad_type {
+	KEYPAD_TYPE_SAMSUNG,
+	KEYPAD_TYPE_S5PV210,
+};
+
+struct samsung_keypad {
+	struct input_dev *input_dev;
+	struct clk *clk;
+	void __iomem *base;
+	wait_queue_head_t wait;
+	bool stopped;
+	int irq;
+	unsigned int row_shift;
+	unsigned int rows;
+	unsigned int cols;
+	unsigned int row_state[SAMSUNG_MAX_COLS];
+	unsigned short keycodes[];
+};
+
+static int samsung_keypad_is_s5pv210(struct device *dev)
+{
+	struct platform_device *pdev = to_platform_device(dev);
+	enum samsung_keypad_type type =
+		platform_get_device_id(pdev)->driver_data;
+
+	return type == KEYPAD_TYPE_S5PV210;
+}
+
+static void samsung_keypad_scan(struct samsung_keypad *keypad,
+				unsigned int *row_state)
+{
+	struct device *dev = keypad->input_dev->dev.parent;
+	unsigned int col;
+	unsigned int val;
+
+	for (col = 0; col < keypad->cols; col++) {
+		if (samsung_keypad_is_s5pv210(dev)) {
+			val = S5PV210_KEYIFCOLEN_MASK;
+			val &= ~(1 << col) << 8;
+		} else {
+			val = SAMSUNG_KEYIFCOL_MASK;
+			val &= ~(1 << col);
+		}
+
+		writel(val, keypad->base + SAMSUNG_KEYIFCOL);
+		mdelay(1);
+
+		val = readl(keypad->base + SAMSUNG_KEYIFROW);
+		row_state[col] = ~val & ((1 << keypad->rows) - 1);
+	}
+
+	/* KEYIFCOL reg clear */
+	writel(0, keypad->base + SAMSUNG_KEYIFCOL);
+}
+
+static bool samsung_keypad_report(struct samsung_keypad *keypad,
+				  unsigned int *row_state)
+{
+	struct input_dev *input_dev = keypad->input_dev;
+	unsigned int changed;
+	unsigned int pressed;
+	unsigned int key_down = 0;
+	unsigned int val;
+	unsigned int col, row;
+
+	for (col = 0; col < keypad->cols; col++) {
+		changed = row_state[col] ^ keypad->row_state[col];
+		key_down |= row_state[col];
+		if (!changed)
+			continue;
+
+		for (row = 0; row < keypad->rows; row++) {
+			if (!(changed & (1 << row)))
+				continue;
+
+			pressed = row_state[col] & (1 << row);
+
+			dev_dbg(&keypad->input_dev->dev,
+				"key %s, row: %d, col: %d\n",
+				pressed ? "pressed" : "released", row, col);
+
+			val = MATRIX_SCAN_CODE(row, col, keypad->row_shift);
+
+			input_event(input_dev, EV_MSC, MSC_SCAN, val);
+			input_report_key(input_dev,
+					keypad->keycodes[val], pressed);
+		}
+		input_sync(keypad->input_dev);
+	}
+
+	memcpy(keypad->row_state, row_state,
+			sizeof(row_state) * SAMSUNG_MAX_COLS);
+
+	return key_down;
+}
+
+static irqreturn_t samsung_keypad_irq(int irq, void *dev_id)
+{
+	struct samsung_keypad *keypad = dev_id;
+	unsigned int row_state[SAMSUNG_MAX_COLS];
+	unsigned int val;
+	bool key_down;
+
+	do {
+		val = readl(keypad->base + SAMSUNG_KEYIFSTSCLR);
+		/* Clear interrupt. */
+		writel(~0x0, keypad->base + SAMSUNG_KEYIFSTSCLR);
+
+		samsung_keypad_scan(keypad, row_state);
+
+		key_down = samsung_keypad_report(keypad, row_state);
+		if (key_down)
+			wait_event_timeout(keypad->wait, keypad->stopped,
+					   msecs_to_jiffies(50));
+
+	} while (key_down && !keypad->stopped);
+
+	return IRQ_HANDLED;
+}
+
+static void samsung_keypad_start(struct samsung_keypad *keypad)
+{
+	unsigned int val;
+
+	/* Tell IRQ thread that it may poll the device. */
+	keypad->stopped = false;
+
+	clk_enable(keypad->clk);
+
+	/* Enable interrupt bits. */
+	val = readl(keypad->base + SAMSUNG_KEYIFCON);
+	val |= SAMSUNG_KEYIFCON_INT_F_EN | SAMSUNG_KEYIFCON_INT_R_EN;
+	writel(val, keypad->base + SAMSUNG_KEYIFCON);
+
+	/* KEYIFCOL reg clear. */
+	writel(0, keypad->base + SAMSUNG_KEYIFCOL);
+}
+
+static void samsung_keypad_stop(struct samsung_keypad *keypad)
+{
+	unsigned int val;
+
+	/* Signal IRQ thread to stop polling and disable the handler. */
+	keypad->stopped = true;
+	wake_up(&keypad->wait);
+	disable_irq(keypad->irq);
+
+	/* Clear interrupt. */
+	writel(~0x0, keypad->base + SAMSUNG_KEYIFSTSCLR);
+
+	/* Disable interrupt bits. */
+	val = readl(keypad->base + SAMSUNG_KEYIFCON);
+	val &= ~(SAMSUNG_KEYIFCON_INT_F_EN | SAMSUNG_KEYIFCON_INT_R_EN);
+	writel(val, keypad->base + SAMSUNG_KEYIFCON);
+
+	clk_disable(keypad->clk);
+
+	/*
+	 * Now that chip should not generate interrupts we can safely
+	 * re-enable the handler.
+	 */
+	enable_irq(keypad->irq);
+}
+
+static int samsung_keypad_open(struct input_dev *input_dev)
+{
+	struct samsung_keypad *keypad = input_get_drvdata(input_dev);
+
+	samsung_keypad_start(keypad);
+
+	return 0;
+}
+
+static void samsung_keypad_close(struct input_dev *input_dev)
+{
+	struct samsung_keypad *keypad = input_get_drvdata(input_dev);
+
+	samsung_keypad_stop(keypad);
+}
+
+static int __devinit samsung_keypad_probe(struct platform_device *pdev)
+{
+	const struct samsung_keypad_platdata *pdata;
+	const struct matrix_keymap_data *keymap_data;
+	struct samsung_keypad *keypad;
+	struct resource *res;
+	struct input_dev *input_dev;
+	unsigned int row_shift;
+	unsigned int keymap_size;
+	int error;
+
+	pdata = pdev->dev.platform_data;
+	if (!pdata) {
+		dev_err(&pdev->dev, "no platform data defined\n");
+		return -EINVAL;
+	}
+
+	keymap_data = pdata->keymap_data;
+	if (!keymap_data) {
+		dev_err(&pdev->dev, "no keymap data defined\n");
+		return -EINVAL;
+	}
+
+	if (!pdata->rows || pdata->rows > SAMSUNG_MAX_ROWS)
+		return -EINVAL;
+
+	if (!pdata->cols || pdata->cols > SAMSUNG_MAX_COLS)
+		return -EINVAL;
+
+	/* initialize the gpio */
+	if (pdata->cfg_gpio)
+		pdata->cfg_gpio(pdata->rows, pdata->cols);
+
+	row_shift = get_count_order(pdata->cols);
+	keymap_size = (pdata->rows << row_shift) * sizeof(keypad->keycodes[0]);
+
+	keypad = kzalloc(sizeof(*keypad) + keymap_size, GFP_KERNEL);
+	input_dev = input_allocate_device();
+	if (!keypad || !input_dev) {
+		error = -ENOMEM;
+		goto err_free_mem;
+	}
+
+	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+	if (!res) {
+		error = -ENODEV;
+		goto err_free_mem;
+	}
+
+	keypad->base = ioremap(res->start, resource_size(res));
+	if (!keypad->base) {
+		error = -EBUSY;
+		goto err_free_mem;
+	}
+
+	keypad->clk = clk_get(&pdev->dev, "keypad");
+	if (IS_ERR(keypad->clk)) {
+		dev_err(&pdev->dev, "failed to get keypad clk\n");
+		error = PTR_ERR(keypad->clk);
+		goto err_unmap_base;
+	}
+
+	keypad->input_dev = input_dev;
+	keypad->row_shift = row_shift;
+	keypad->rows = pdata->rows;
+	keypad->cols = pdata->cols;
+	init_waitqueue_head(&keypad->wait);
+
+	input_dev->name = pdev->name;
+	input_dev->id.bustype = BUS_HOST;
+	input_dev->dev.parent = &pdev->dev;
+	input_set_drvdata(input_dev, keypad);
+
+	input_dev->open = samsung_keypad_open;
+	input_dev->close = samsung_keypad_close;
+
+	input_dev->evbit[0] = BIT_MASK(EV_KEY);
+	if (!pdata->no_autorepeat)
+		input_dev->evbit[0] |= BIT_MASK(EV_REP);
+
+	input_set_capability(input_dev, EV_MSC, MSC_SCAN);
+
+	input_dev->keycode = keypad->keycodes;
+	input_dev->keycodesize = sizeof(keypad->keycodes[0]);
+	input_dev->keycodemax = pdata->rows << row_shift;
+
+	matrix_keypad_build_keymap(keymap_data, row_shift,
+			input_dev->keycode, input_dev->keybit);
+
+	keypad->irq = platform_get_irq(pdev, 0);
+	if (keypad->irq < 0) {
+		error = keypad->irq;
+		goto err_put_clk;
+	}
+
+	error = request_threaded_irq(keypad->irq, NULL, samsung_keypad_irq,
+			IRQF_ONESHOT, dev_name(&pdev->dev), keypad);
+	if (error) {
+		dev_err(&pdev->dev, "failed to register keypad interrupt\n");
+		goto err_put_clk;
+	}
+
+	error = input_register_device(keypad->input_dev);
+	if (error)
+		goto err_free_irq;
+
+	device_init_wakeup(&pdev->dev, pdata->wakeup);
+	platform_set_drvdata(pdev, keypad);
+	return 0;
+
+err_free_irq:
+	free_irq(keypad->irq, keypad);
+err_put_clk:
+	clk_put(keypad->clk);
+err_unmap_base:
+	iounmap(keypad->base);
+err_free_mem:
+	input_free_device(input_dev);
+	kfree(keypad);
+
+	return error;
+}
+
+static int __devexit samsung_keypad_remove(struct platform_device *pdev)
+{
+	struct samsung_keypad *keypad = platform_get_drvdata(pdev);
+
+	device_init_wakeup(&pdev->dev, 0);
+	platform_set_drvdata(pdev, NULL);
+
+	input_unregister_device(keypad->input_dev);
+
+	/*
+	 * It is safe to free IRQ after unregistering device because
+	 * samsung_keypad_close will shut off interrupts.
+	 */
+	free_irq(keypad->irq, keypad);
+
+	clk_put(keypad->clk);
+
+	iounmap(keypad->base);
+	kfree(keypad);
+
+	return 0;
+}
+
+#ifdef CONFIG_PM
+static void samsung_keypad_toggle_wakeup(struct samsung_keypad *keypad,
+					 bool enable)
+{
+	struct device *dev = keypad->input_dev->dev.parent;
+	unsigned int val;
+
+	clk_enable(keypad->clk);
+
+	val = readl(keypad->base + SAMSUNG_KEYIFCON);
+	if (enable) {
+		val |= SAMSUNG_KEYIFCON_WAKEUPEN;
+		if (device_may_wakeup(dev))
+			enable_irq_wake(keypad->irq);
+	} else {
+		val &= ~SAMSUNG_KEYIFCON_WAKEUPEN;
+		if (device_may_wakeup(dev))
+			disable_irq_wake(keypad->irq);
+	}
+	writel(val, keypad->base + SAMSUNG_KEYIFCON);
+
+	clk_disable(keypad->clk);
+}
+
+static int samsung_keypad_suspend(struct device *dev)
+{
+	struct platform_device *pdev = to_platform_device(dev);
+	struct samsung_keypad *keypad = platform_get_drvdata(pdev);
+	struct input_dev *input_dev = keypad->input_dev;
+
+	mutex_lock(&input_dev->mutex);
+
+	if (input_dev->users)
+		samsung_keypad_stop(keypad);
+
+	samsung_keypad_toggle_wakeup(keypad, true);
+
+	mutex_unlock(&input_dev->mutex);
+
+	return 0;
+}
+
+static int samsung_keypad_resume(struct device *dev)
+{
+	struct platform_device *pdev = to_platform_device(dev);
+	struct samsung_keypad *keypad = platform_get_drvdata(pdev);
+	struct input_dev *input_dev = keypad->input_dev;
+
+	mutex_lock(&input_dev->mutex);
+
+	samsung_keypad_toggle_wakeup(keypad, false);
+
+	if (input_dev->users)
+		samsung_keypad_start(keypad);
+
+	mutex_unlock(&input_dev->mutex);
+
+	return 0;
+}
+
+static const struct dev_pm_ops samsung_keypad_pm_ops = {
+	.suspend	= samsung_keypad_suspend,
+	.resume		= samsung_keypad_resume,
+};
+#endif
+
+static struct platform_device_id samsung_keypad_driver_ids[] = {
+	{
+		.name		= "samsung-keypad",
+		.driver_data	= KEYPAD_TYPE_SAMSUNG,
+	}, {
+		.name		= "s5pv210-keypad",
+		.driver_data	= KEYPAD_TYPE_S5PV210,
+	},
+	{ },
+};
+MODULE_DEVICE_TABLE(platform, samsung_keypad_driver_ids);
+
+static struct platform_driver samsung_keypad_driver = {
+	.probe		= samsung_keypad_probe,
+	.remove		= __devexit_p(samsung_keypad_remove),
+	.driver		= {
+		.name	= "samsung-keypad",
+		.owner	= THIS_MODULE,
+#ifdef CONFIG_PM
+		.pm	= &samsung_keypad_pm_ops,
+#endif
+	},
+	.id_table	= samsung_keypad_driver_ids,
+};
+
+static int __init samsung_keypad_init(void)
+{
+	return platform_driver_register(&samsung_keypad_driver);
+}
+module_init(samsung_keypad_init);
+
+static void __exit samsung_keypad_exit(void)
+{
+	platform_driver_unregister(&samsung_keypad_driver);
+}
+module_exit(samsung_keypad_exit);
+
+MODULE_DESCRIPTION("Samsung keypad driver");
+MODULE_AUTHOR("Joonyoung Shim <jy0922.shim@samsung.com>");
+MODULE_AUTHOR("Donghwa Lee <dh09.lee@samsung.com>");
+MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:samsung-keypad");
-- 
1.7.0.4

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

* [PATCH v6 3/3] input: samsung-keypad - Add samsung keypad driver
@ 2010-06-28 11:33   ` Joonyoung Shim
  0 siblings, 0 replies; 42+ messages in thread
From: Joonyoung Shim @ 2010-06-28 11:33 UTC (permalink / raw)
  To: linux-arm-kernel

This patch adds support for keypad driver running on Samsung cpus. This
driver is tested on GONI and Aquila board using S5PC110 cpu.

Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
 drivers/input/keyboard/Kconfig          |    9 +
 drivers/input/keyboard/Makefile         |    1 +
 drivers/input/keyboard/samsung-keypad.c |  491 +++++++++++++++++++++++++++++++
 3 files changed, 501 insertions(+), 0 deletions(-)
 create mode 100644 drivers/input/keyboard/samsung-keypad.c

diff --git a/drivers/input/keyboard/Kconfig b/drivers/input/keyboard/Kconfig
index d8fa5d7..bf6a50f 100644
--- a/drivers/input/keyboard/Kconfig
+++ b/drivers/input/keyboard/Kconfig
@@ -342,6 +342,15 @@ config KEYBOARD_PXA930_ROTARY
 	  To compile this driver as a module, choose M here: the
 	  module will be called pxa930_rotary.
 
+config KEYBOARD_SAMSUNG
+	tristate "Samsung keypad support"
+	depends on SAMSUNG_DEV_KEYPAD
+	help
+	  Say Y here if you want to use the Samsung keypad.
+
+	  To compile this driver as a module, choose M here: the
+	  module will be called samsung-keypad.
+
 config KEYBOARD_STOWAWAY
 	tristate "Stowaway keyboard"
 	select SERIO
diff --git a/drivers/input/keyboard/Makefile b/drivers/input/keyboard/Makefile
index 4596d0c..8f973ed 100644
--- a/drivers/input/keyboard/Makefile
+++ b/drivers/input/keyboard/Makefile
@@ -32,6 +32,7 @@ obj-$(CONFIG_KEYBOARD_OPENCORES)	+= opencores-kbd.o
 obj-$(CONFIG_KEYBOARD_PXA27x)		+= pxa27x_keypad.o
 obj-$(CONFIG_KEYBOARD_PXA930_ROTARY)	+= pxa930_rotary.o
 obj-$(CONFIG_KEYBOARD_QT2160)		+= qt2160.o
+obj-$(CONFIG_KEYBOARD_SAMSUNG)		+= samsung-keypad.o
 obj-$(CONFIG_KEYBOARD_SH_KEYSC)		+= sh_keysc.o
 obj-$(CONFIG_KEYBOARD_STOWAWAY)		+= stowaway.o
 obj-$(CONFIG_KEYBOARD_SUNKBD)		+= sunkbd.o
diff --git a/drivers/input/keyboard/samsung-keypad.c b/drivers/input/keyboard/samsung-keypad.c
new file mode 100644
index 0000000..e467195
--- /dev/null
+++ b/drivers/input/keyboard/samsung-keypad.c
@@ -0,0 +1,491 @@
+/*
+ * Samsung keypad driver
+ *
+ * Copyright (C) 2010 Samsung Electronics Co.Ltd
+ * Author: Joonyoung Shim <jy0922.shim@samsung.com>
+ * Author: Donghwa Lee <dh09.lee@samsung.com>
+ *
+ *  This program is free software; you can redistribute  it and/or modify it
+ *  under  the terms of  the GNU General  Public License as published by the
+ *  Free Software Foundation;  either version 2 of the  License, or (at your
+ *  option) any later version.
+ */
+
+#include <linux/clk.h>
+#include <linux/delay.h>
+#include <linux/err.h>
+#include <linux/init.h>
+#include <linux/input.h>
+#include <linux/interrupt.h>
+#include <linux/io.h>
+#include <linux/module.h>
+#include <linux/platform_device.h>
+#include <linux/slab.h>
+#include <plat/keypad.h>
+
+#define SAMSUNG_KEYIFCON			0x00
+#define SAMSUNG_KEYIFSTSCLR			0x04
+#define SAMSUNG_KEYIFCOL			0x08
+#define SAMSUNG_KEYIFROW			0x0c
+#define SAMSUNG_KEYIFFC				0x10
+
+/* SAMSUNG_KEYIFCON */
+#define SAMSUNG_KEYIFCON_INT_F_EN		(1 << 0)
+#define SAMSUNG_KEYIFCON_INT_R_EN		(1 << 1)
+#define SAMSUNG_KEYIFCON_DF_EN			(1 << 2)
+#define SAMSUNG_KEYIFCON_FC_EN			(1 << 3)
+#define SAMSUNG_KEYIFCON_WAKEUPEN		(1 << 4)
+
+/* SAMSUNG_KEYIFSTSCLR */
+#define SAMSUNG_KEYIFSTSCLR_P_INT_MASK		(0xff << 0)
+#define SAMSUNG_KEYIFSTSCLR_R_INT_MASK		(0xff << 8)
+#define SAMSUNG_KEYIFSTSCLR_R_INT_OFFSET	8
+#define S5PV210_KEYIFSTSCLR_P_INT_MASK		(0x3fff << 0)
+#define S5PV210_KEYIFSTSCLR_R_INT_MASK		(0x3fff << 16)
+#define S5PV210_KEYIFSTSCLR_R_INT_OFFSET	16
+
+/* SAMSUNG_KEYIFCOL */
+#define SAMSUNG_KEYIFCOL_MASK			(0xff << 0)
+#define S5PV210_KEYIFCOLEN_MASK			(0xff << 8)
+
+/* SAMSUNG_KEYIFROW */
+#define SAMSUNG_KEYIFROW_MASK			(0xff << 0)
+#define S5PV210_KEYIFROW_MASK			(0x3fff << 0)
+
+/* SAMSUNG_KEYIFFC */
+#define SAMSUNG_KEYIFFC_MASK			(0x3ff << 0)
+
+enum samsung_keypad_type {
+	KEYPAD_TYPE_SAMSUNG,
+	KEYPAD_TYPE_S5PV210,
+};
+
+struct samsung_keypad {
+	struct input_dev *input_dev;
+	struct clk *clk;
+	void __iomem *base;
+	wait_queue_head_t wait;
+	bool stopped;
+	int irq;
+	unsigned int row_shift;
+	unsigned int rows;
+	unsigned int cols;
+	unsigned int row_state[SAMSUNG_MAX_COLS];
+	unsigned short keycodes[];
+};
+
+static int samsung_keypad_is_s5pv210(struct device *dev)
+{
+	struct platform_device *pdev = to_platform_device(dev);
+	enum samsung_keypad_type type =
+		platform_get_device_id(pdev)->driver_data;
+
+	return type == KEYPAD_TYPE_S5PV210;
+}
+
+static void samsung_keypad_scan(struct samsung_keypad *keypad,
+				unsigned int *row_state)
+{
+	struct device *dev = keypad->input_dev->dev.parent;
+	unsigned int col;
+	unsigned int val;
+
+	for (col = 0; col < keypad->cols; col++) {
+		if (samsung_keypad_is_s5pv210(dev)) {
+			val = S5PV210_KEYIFCOLEN_MASK;
+			val &= ~(1 << col) << 8;
+		} else {
+			val = SAMSUNG_KEYIFCOL_MASK;
+			val &= ~(1 << col);
+		}
+
+		writel(val, keypad->base + SAMSUNG_KEYIFCOL);
+		mdelay(1);
+
+		val = readl(keypad->base + SAMSUNG_KEYIFROW);
+		row_state[col] = ~val & ((1 << keypad->rows) - 1);
+	}
+
+	/* KEYIFCOL reg clear */
+	writel(0, keypad->base + SAMSUNG_KEYIFCOL);
+}
+
+static bool samsung_keypad_report(struct samsung_keypad *keypad,
+				  unsigned int *row_state)
+{
+	struct input_dev *input_dev = keypad->input_dev;
+	unsigned int changed;
+	unsigned int pressed;
+	unsigned int key_down = 0;
+	unsigned int val;
+	unsigned int col, row;
+
+	for (col = 0; col < keypad->cols; col++) {
+		changed = row_state[col] ^ keypad->row_state[col];
+		key_down |= row_state[col];
+		if (!changed)
+			continue;
+
+		for (row = 0; row < keypad->rows; row++) {
+			if (!(changed & (1 << row)))
+				continue;
+
+			pressed = row_state[col] & (1 << row);
+
+			dev_dbg(&keypad->input_dev->dev,
+				"key %s, row: %d, col: %d\n",
+				pressed ? "pressed" : "released", row, col);
+
+			val = MATRIX_SCAN_CODE(row, col, keypad->row_shift);
+
+			input_event(input_dev, EV_MSC, MSC_SCAN, val);
+			input_report_key(input_dev,
+					keypad->keycodes[val], pressed);
+		}
+		input_sync(keypad->input_dev);
+	}
+
+	memcpy(keypad->row_state, row_state,
+			sizeof(row_state) * SAMSUNG_MAX_COLS);
+
+	return key_down;
+}
+
+static irqreturn_t samsung_keypad_irq(int irq, void *dev_id)
+{
+	struct samsung_keypad *keypad = dev_id;
+	unsigned int row_state[SAMSUNG_MAX_COLS];
+	unsigned int val;
+	bool key_down;
+
+	do {
+		val = readl(keypad->base + SAMSUNG_KEYIFSTSCLR);
+		/* Clear interrupt. */
+		writel(~0x0, keypad->base + SAMSUNG_KEYIFSTSCLR);
+
+		samsung_keypad_scan(keypad, row_state);
+
+		key_down = samsung_keypad_report(keypad, row_state);
+		if (key_down)
+			wait_event_timeout(keypad->wait, keypad->stopped,
+					   msecs_to_jiffies(50));
+
+	} while (key_down && !keypad->stopped);
+
+	return IRQ_HANDLED;
+}
+
+static void samsung_keypad_start(struct samsung_keypad *keypad)
+{
+	unsigned int val;
+
+	/* Tell IRQ thread that it may poll the device. */
+	keypad->stopped = false;
+
+	clk_enable(keypad->clk);
+
+	/* Enable interrupt bits. */
+	val = readl(keypad->base + SAMSUNG_KEYIFCON);
+	val |= SAMSUNG_KEYIFCON_INT_F_EN | SAMSUNG_KEYIFCON_INT_R_EN;
+	writel(val, keypad->base + SAMSUNG_KEYIFCON);
+
+	/* KEYIFCOL reg clear. */
+	writel(0, keypad->base + SAMSUNG_KEYIFCOL);
+}
+
+static void samsung_keypad_stop(struct samsung_keypad *keypad)
+{
+	unsigned int val;
+
+	/* Signal IRQ thread to stop polling and disable the handler. */
+	keypad->stopped = true;
+	wake_up(&keypad->wait);
+	disable_irq(keypad->irq);
+
+	/* Clear interrupt. */
+	writel(~0x0, keypad->base + SAMSUNG_KEYIFSTSCLR);
+
+	/* Disable interrupt bits. */
+	val = readl(keypad->base + SAMSUNG_KEYIFCON);
+	val &= ~(SAMSUNG_KEYIFCON_INT_F_EN | SAMSUNG_KEYIFCON_INT_R_EN);
+	writel(val, keypad->base + SAMSUNG_KEYIFCON);
+
+	clk_disable(keypad->clk);
+
+	/*
+	 * Now that chip should not generate interrupts we can safely
+	 * re-enable the handler.
+	 */
+	enable_irq(keypad->irq);
+}
+
+static int samsung_keypad_open(struct input_dev *input_dev)
+{
+	struct samsung_keypad *keypad = input_get_drvdata(input_dev);
+
+	samsung_keypad_start(keypad);
+
+	return 0;
+}
+
+static void samsung_keypad_close(struct input_dev *input_dev)
+{
+	struct samsung_keypad *keypad = input_get_drvdata(input_dev);
+
+	samsung_keypad_stop(keypad);
+}
+
+static int __devinit samsung_keypad_probe(struct platform_device *pdev)
+{
+	const struct samsung_keypad_platdata *pdata;
+	const struct matrix_keymap_data *keymap_data;
+	struct samsung_keypad *keypad;
+	struct resource *res;
+	struct input_dev *input_dev;
+	unsigned int row_shift;
+	unsigned int keymap_size;
+	int error;
+
+	pdata = pdev->dev.platform_data;
+	if (!pdata) {
+		dev_err(&pdev->dev, "no platform data defined\n");
+		return -EINVAL;
+	}
+
+	keymap_data = pdata->keymap_data;
+	if (!keymap_data) {
+		dev_err(&pdev->dev, "no keymap data defined\n");
+		return -EINVAL;
+	}
+
+	if (!pdata->rows || pdata->rows > SAMSUNG_MAX_ROWS)
+		return -EINVAL;
+
+	if (!pdata->cols || pdata->cols > SAMSUNG_MAX_COLS)
+		return -EINVAL;
+
+	/* initialize the gpio */
+	if (pdata->cfg_gpio)
+		pdata->cfg_gpio(pdata->rows, pdata->cols);
+
+	row_shift = get_count_order(pdata->cols);
+	keymap_size = (pdata->rows << row_shift) * sizeof(keypad->keycodes[0]);
+
+	keypad = kzalloc(sizeof(*keypad) + keymap_size, GFP_KERNEL);
+	input_dev = input_allocate_device();
+	if (!keypad || !input_dev) {
+		error = -ENOMEM;
+		goto err_free_mem;
+	}
+
+	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+	if (!res) {
+		error = -ENODEV;
+		goto err_free_mem;
+	}
+
+	keypad->base = ioremap(res->start, resource_size(res));
+	if (!keypad->base) {
+		error = -EBUSY;
+		goto err_free_mem;
+	}
+
+	keypad->clk = clk_get(&pdev->dev, "keypad");
+	if (IS_ERR(keypad->clk)) {
+		dev_err(&pdev->dev, "failed to get keypad clk\n");
+		error = PTR_ERR(keypad->clk);
+		goto err_unmap_base;
+	}
+
+	keypad->input_dev = input_dev;
+	keypad->row_shift = row_shift;
+	keypad->rows = pdata->rows;
+	keypad->cols = pdata->cols;
+	init_waitqueue_head(&keypad->wait);
+
+	input_dev->name = pdev->name;
+	input_dev->id.bustype = BUS_HOST;
+	input_dev->dev.parent = &pdev->dev;
+	input_set_drvdata(input_dev, keypad);
+
+	input_dev->open = samsung_keypad_open;
+	input_dev->close = samsung_keypad_close;
+
+	input_dev->evbit[0] = BIT_MASK(EV_KEY);
+	if (!pdata->no_autorepeat)
+		input_dev->evbit[0] |= BIT_MASK(EV_REP);
+
+	input_set_capability(input_dev, EV_MSC, MSC_SCAN);
+
+	input_dev->keycode = keypad->keycodes;
+	input_dev->keycodesize = sizeof(keypad->keycodes[0]);
+	input_dev->keycodemax = pdata->rows << row_shift;
+
+	matrix_keypad_build_keymap(keymap_data, row_shift,
+			input_dev->keycode, input_dev->keybit);
+
+	keypad->irq = platform_get_irq(pdev, 0);
+	if (keypad->irq < 0) {
+		error = keypad->irq;
+		goto err_put_clk;
+	}
+
+	error = request_threaded_irq(keypad->irq, NULL, samsung_keypad_irq,
+			IRQF_ONESHOT, dev_name(&pdev->dev), keypad);
+	if (error) {
+		dev_err(&pdev->dev, "failed to register keypad interrupt\n");
+		goto err_put_clk;
+	}
+
+	error = input_register_device(keypad->input_dev);
+	if (error)
+		goto err_free_irq;
+
+	device_init_wakeup(&pdev->dev, pdata->wakeup);
+	platform_set_drvdata(pdev, keypad);
+	return 0;
+
+err_free_irq:
+	free_irq(keypad->irq, keypad);
+err_put_clk:
+	clk_put(keypad->clk);
+err_unmap_base:
+	iounmap(keypad->base);
+err_free_mem:
+	input_free_device(input_dev);
+	kfree(keypad);
+
+	return error;
+}
+
+static int __devexit samsung_keypad_remove(struct platform_device *pdev)
+{
+	struct samsung_keypad *keypad = platform_get_drvdata(pdev);
+
+	device_init_wakeup(&pdev->dev, 0);
+	platform_set_drvdata(pdev, NULL);
+
+	input_unregister_device(keypad->input_dev);
+
+	/*
+	 * It is safe to free IRQ after unregistering device because
+	 * samsung_keypad_close will shut off interrupts.
+	 */
+	free_irq(keypad->irq, keypad);
+
+	clk_put(keypad->clk);
+
+	iounmap(keypad->base);
+	kfree(keypad);
+
+	return 0;
+}
+
+#ifdef CONFIG_PM
+static void samsung_keypad_toggle_wakeup(struct samsung_keypad *keypad,
+					 bool enable)
+{
+	struct device *dev = keypad->input_dev->dev.parent;
+	unsigned int val;
+
+	clk_enable(keypad->clk);
+
+	val = readl(keypad->base + SAMSUNG_KEYIFCON);
+	if (enable) {
+		val |= SAMSUNG_KEYIFCON_WAKEUPEN;
+		if (device_may_wakeup(dev))
+			enable_irq_wake(keypad->irq);
+	} else {
+		val &= ~SAMSUNG_KEYIFCON_WAKEUPEN;
+		if (device_may_wakeup(dev))
+			disable_irq_wake(keypad->irq);
+	}
+	writel(val, keypad->base + SAMSUNG_KEYIFCON);
+
+	clk_disable(keypad->clk);
+}
+
+static int samsung_keypad_suspend(struct device *dev)
+{
+	struct platform_device *pdev = to_platform_device(dev);
+	struct samsung_keypad *keypad = platform_get_drvdata(pdev);
+	struct input_dev *input_dev = keypad->input_dev;
+
+	mutex_lock(&input_dev->mutex);
+
+	if (input_dev->users)
+		samsung_keypad_stop(keypad);
+
+	samsung_keypad_toggle_wakeup(keypad, true);
+
+	mutex_unlock(&input_dev->mutex);
+
+	return 0;
+}
+
+static int samsung_keypad_resume(struct device *dev)
+{
+	struct platform_device *pdev = to_platform_device(dev);
+	struct samsung_keypad *keypad = platform_get_drvdata(pdev);
+	struct input_dev *input_dev = keypad->input_dev;
+
+	mutex_lock(&input_dev->mutex);
+
+	samsung_keypad_toggle_wakeup(keypad, false);
+
+	if (input_dev->users)
+		samsung_keypad_start(keypad);
+
+	mutex_unlock(&input_dev->mutex);
+
+	return 0;
+}
+
+static const struct dev_pm_ops samsung_keypad_pm_ops = {
+	.suspend	= samsung_keypad_suspend,
+	.resume		= samsung_keypad_resume,
+};
+#endif
+
+static struct platform_device_id samsung_keypad_driver_ids[] = {
+	{
+		.name		= "samsung-keypad",
+		.driver_data	= KEYPAD_TYPE_SAMSUNG,
+	}, {
+		.name		= "s5pv210-keypad",
+		.driver_data	= KEYPAD_TYPE_S5PV210,
+	},
+	{ },
+};
+MODULE_DEVICE_TABLE(platform, samsung_keypad_driver_ids);
+
+static struct platform_driver samsung_keypad_driver = {
+	.probe		= samsung_keypad_probe,
+	.remove		= __devexit_p(samsung_keypad_remove),
+	.driver		= {
+		.name	= "samsung-keypad",
+		.owner	= THIS_MODULE,
+#ifdef CONFIG_PM
+		.pm	= &samsung_keypad_pm_ops,
+#endif
+	},
+	.id_table	= samsung_keypad_driver_ids,
+};
+
+static int __init samsung_keypad_init(void)
+{
+	return platform_driver_register(&samsung_keypad_driver);
+}
+module_init(samsung_keypad_init);
+
+static void __exit samsung_keypad_exit(void)
+{
+	platform_driver_unregister(&samsung_keypad_driver);
+}
+module_exit(samsung_keypad_exit);
+
+MODULE_DESCRIPTION("Samsung keypad driver");
+MODULE_AUTHOR("Joonyoung Shim <jy0922.shim@samsung.com>");
+MODULE_AUTHOR("Donghwa Lee <dh09.lee@samsung.com>");
+MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:samsung-keypad");
-- 
1.7.0.4

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

* Re: [PATCH v6 3/3] input: samsung-keypad - Add samsung keypad driver
  2010-06-28 11:33   ` Joonyoung Shim
@ 2010-07-06  7:58     ` Joonyoung Shim
  -1 siblings, 0 replies; 42+ messages in thread
From: Joonyoung Shim @ 2010-07-06  7:58 UTC (permalink / raw)
  To: ch.naveen
  Cc: linux-arm-kernel, kgene.kim, dmitry.torokhov, kyungmin.park,
	linux-samsung-soc, ben-linux, linux-input

Hi, Naveen.

On 6/28/2010 8:33 PM, Joonyoung Shim wrote:
> This patch adds support for keypad driver running on Samsung cpus. This
> driver is tested on GONI and Aquila board using S5PC110 cpu.
> 
> Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> ---
>  drivers/input/keyboard/Kconfig          |    9 +
>  drivers/input/keyboard/Makefile         |    1 +
>  drivers/input/keyboard/samsung-keypad.c |  491 +++++++++++++++++++++++++++++++
>  3 files changed, 501 insertions(+), 0 deletions(-)
>  create mode 100644 drivers/input/keyboard/samsung-keypad.c
> 

Could you please test this v6 keypad driver on your various targets?

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

* [PATCH v6 3/3] input: samsung-keypad - Add samsung keypad driver
@ 2010-07-06  7:58     ` Joonyoung Shim
  0 siblings, 0 replies; 42+ messages in thread
From: Joonyoung Shim @ 2010-07-06  7:58 UTC (permalink / raw)
  To: linux-arm-kernel

Hi, Naveen.

On 6/28/2010 8:33 PM, Joonyoung Shim wrote:
> This patch adds support for keypad driver running on Samsung cpus. This
> driver is tested on GONI and Aquila board using S5PC110 cpu.
> 
> Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> ---
>  drivers/input/keyboard/Kconfig          |    9 +
>  drivers/input/keyboard/Makefile         |    1 +
>  drivers/input/keyboard/samsung-keypad.c |  491 +++++++++++++++++++++++++++++++
>  3 files changed, 501 insertions(+), 0 deletions(-)
>  create mode 100644 drivers/input/keyboard/samsung-keypad.c
> 

Could you please test this v6 keypad driver on your various targets?

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

* RE: [PATCH v6 3/3] input: samsung-keypad - Add samsung keypad driver
  2010-07-06  7:58     ` Joonyoung Shim
@ 2010-07-06 23:52       ` Kukjin Kim
  -1 siblings, 0 replies; 42+ messages in thread
From: Kukjin Kim @ 2010-07-06 23:52 UTC (permalink / raw)
  To: 'Joonyoung Shim', ch.naveen
  Cc: linux-arm-kernel, dmitry.torokhov, kyungmin.park,
	linux-samsung-soc, ben-linux, linux-input

Joonyoung Shim wrote:
> 
> Hi, Naveen.
> 
> On 6/28/2010 8:33 PM, Joonyoung Shim wrote:
> > This patch adds support for keypad driver running on Samsung cpus. This
> > driver is tested on GONI and Aquila board using S5PC110 cpu.
> >
> > Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
> > Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> > ---
> >  drivers/input/keyboard/Kconfig          |    9 +
> >  drivers/input/keyboard/Makefile         |    1 +
> >  drivers/input/keyboard/samsung-keypad.c |  491
> +++++++++++++++++++++++++++++++
> >  3 files changed, 501 insertions(+), 0 deletions(-)
> >  create mode 100644 drivers/input/keyboard/samsung-keypad.c
> >
> 
> Could you please test this v6 keypad driver on your various targets?

Hi,

I received the test result from Naveen.
And now he is debugging about that.

..his e-mail client has some problem..so I replied...

---
From: Naveen Ch

I've tested with v6 patches and they are working fine on SMDK6410, SMDKC100 and SMDKV210, except for some header inclusion (linux/sched.h) in samsung-keypad.c.

The build breaking error is like following:
(make s5pc100_defconfig and select input->keypad->samsung keypad)

drivers/input/keyboard/samsung-keypad.c: In function 'samsung_keypad_irq':
drivers/input/keyboard/samsung-keypad.c:170: error: 'TASK_UNINTERRUPTIBLE' undeclared (first use in this function)
drivers/input/keyboard/samsung-keypad.c:170: error: (Each undeclared identifier is reported only once
drivers/input/keyboard/samsung-keypad.c:170: error: for each function it appears in.)
drivers/input/keyboard/samsung-keypad.c:170: error: implicit declaration of function 'schedule_timeout'
drivers/input/keyboard/samsung-keypad.c: In function 'samsung_keypad_stop':
drivers/input/keyboard/samsung-keypad.c:202: error: 'TASK_NORMAL' undeclared (first use in this function)
make[3]: *** [drivers/input/keyboard/samsung-keypad.o] Error 1

---

Thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.


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

* [PATCH v6 3/3] input: samsung-keypad - Add samsung keypad driver
@ 2010-07-06 23:52       ` Kukjin Kim
  0 siblings, 0 replies; 42+ messages in thread
From: Kukjin Kim @ 2010-07-06 23:52 UTC (permalink / raw)
  To: linux-arm-kernel

Joonyoung Shim wrote:
> 
> Hi, Naveen.
> 
> On 6/28/2010 8:33 PM, Joonyoung Shim wrote:
> > This patch adds support for keypad driver running on Samsung cpus. This
> > driver is tested on GONI and Aquila board using S5PC110 cpu.
> >
> > Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
> > Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> > ---
> >  drivers/input/keyboard/Kconfig          |    9 +
> >  drivers/input/keyboard/Makefile         |    1 +
> >  drivers/input/keyboard/samsung-keypad.c |  491
> +++++++++++++++++++++++++++++++
> >  3 files changed, 501 insertions(+), 0 deletions(-)
> >  create mode 100644 drivers/input/keyboard/samsung-keypad.c
> >
> 
> Could you please test this v6 keypad driver on your various targets?

Hi,

I received the test result from Naveen.
And now he is debugging about that.

..his e-mail client has some problem..so I replied...

---
From: Naveen Ch

I've tested with v6 patches and they are working fine on SMDK6410, SMDKC100 and SMDKV210, except for some header inclusion (linux/sched.h) in samsung-keypad.c.

The build breaking error is like following:
(make s5pc100_defconfig and select input->keypad->samsung keypad)

drivers/input/keyboard/samsung-keypad.c: In function 'samsung_keypad_irq':
drivers/input/keyboard/samsung-keypad.c:170: error: 'TASK_UNINTERRUPTIBLE' undeclared (first use in this function)
drivers/input/keyboard/samsung-keypad.c:170: error: (Each undeclared identifier is reported only once
drivers/input/keyboard/samsung-keypad.c:170: error: for each function it appears in.)
drivers/input/keyboard/samsung-keypad.c:170: error: implicit declaration of function 'schedule_timeout'
drivers/input/keyboard/samsung-keypad.c: In function 'samsung_keypad_stop':
drivers/input/keyboard/samsung-keypad.c:202: error: 'TASK_NORMAL' undeclared (first use in this function)
make[3]: *** [drivers/input/keyboard/samsung-keypad.o] Error 1

---

Thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

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

* Re: [PATCH v6 3/3] input: samsung-keypad - Add samsung keypad driver
  2010-07-06 23:52       ` Kukjin Kim
@ 2010-07-07  1:28         ` Joonyoung Shim
  -1 siblings, 0 replies; 42+ messages in thread
From: Joonyoung Shim @ 2010-07-07  1:28 UTC (permalink / raw)
  To: Kukjin Kim
  Cc: ch.naveen, linux-arm-kernel, dmitry.torokhov, kyungmin.park,
	linux-samsung-soc, ben-linux, linux-input

On 7/7/2010 8:52 AM, Kukjin Kim wrote:
> Joonyoung Shim wrote:
>> Hi, Naveen.
>>
>> On 6/28/2010 8:33 PM, Joonyoung Shim wrote:
>>> This patch adds support for keypad driver running on Samsung cpus. This
>>> driver is tested on GONI and Aquila board using S5PC110 cpu.
>>>
>>> Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
>>> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
>>> ---
>>>  drivers/input/keyboard/Kconfig          |    9 +
>>>  drivers/input/keyboard/Makefile         |    1 +
>>>  drivers/input/keyboard/samsung-keypad.c |  491
>> +++++++++++++++++++++++++++++++
>>>  3 files changed, 501 insertions(+), 0 deletions(-)
>>>  create mode 100644 drivers/input/keyboard/samsung-keypad.c
>>>
>> Could you please test this v6 keypad driver on your various targets?
> 
> Hi,
> 
> I received the test result from Naveen.
> And now he is debugging about that.
> 
> ..his e-mail client has some problem..so I replied...
> 
> ---
> From: Naveen Ch
> 
> I've tested with v6 patches and they are working fine on SMDK6410, SMDKC100 and SMDKV210, except for some header inclusion (linux/sched.h) in samsung-keypad.c.
> 
> The build breaking error is like following:
> (make s5pc100_defconfig and select input->keypad->samsung keypad)
> 
> drivers/input/keyboard/samsung-keypad.c: In function 'samsung_keypad_irq':
> drivers/input/keyboard/samsung-keypad.c:170: error: 'TASK_UNINTERRUPTIBLE' undeclared (first use in this function)
> drivers/input/keyboard/samsung-keypad.c:170: error: (Each undeclared identifier is reported only once
> drivers/input/keyboard/samsung-keypad.c:170: error: for each function it appears in.)
> drivers/input/keyboard/samsung-keypad.c:170: error: implicit declaration of function 'schedule_timeout'
> drivers/input/keyboard/samsung-keypad.c: In function 'samsung_keypad_stop':
> drivers/input/keyboard/samsung-keypad.c:202: error: 'TASK_NORMAL' undeclared (first use in this function)
> make[3]: *** [drivers/input/keyboard/samsung-keypad.o] Error 1
> 

This error occurs on s5pc100_defconfig having disabled CONFIG_PREEMPT 
option. I think sched.h should be included to remove like this 
dependency in driver, are there other ways?

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

* [PATCH v6 3/3] input: samsung-keypad - Add samsung keypad driver
@ 2010-07-07  1:28         ` Joonyoung Shim
  0 siblings, 0 replies; 42+ messages in thread
From: Joonyoung Shim @ 2010-07-07  1:28 UTC (permalink / raw)
  To: linux-arm-kernel

On 7/7/2010 8:52 AM, Kukjin Kim wrote:
> Joonyoung Shim wrote:
>> Hi, Naveen.
>>
>> On 6/28/2010 8:33 PM, Joonyoung Shim wrote:
>>> This patch adds support for keypad driver running on Samsung cpus. This
>>> driver is tested on GONI and Aquila board using S5PC110 cpu.
>>>
>>> Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
>>> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
>>> ---
>>>  drivers/input/keyboard/Kconfig          |    9 +
>>>  drivers/input/keyboard/Makefile         |    1 +
>>>  drivers/input/keyboard/samsung-keypad.c |  491
>> +++++++++++++++++++++++++++++++
>>>  3 files changed, 501 insertions(+), 0 deletions(-)
>>>  create mode 100644 drivers/input/keyboard/samsung-keypad.c
>>>
>> Could you please test this v6 keypad driver on your various targets?
> 
> Hi,
> 
> I received the test result from Naveen.
> And now he is debugging about that.
> 
> ..his e-mail client has some problem..so I replied...
> 
> ---
> From: Naveen Ch
> 
> I've tested with v6 patches and they are working fine on SMDK6410, SMDKC100 and SMDKV210, except for some header inclusion (linux/sched.h) in samsung-keypad.c.
> 
> The build breaking error is like following:
> (make s5pc100_defconfig and select input->keypad->samsung keypad)
> 
> drivers/input/keyboard/samsung-keypad.c: In function 'samsung_keypad_irq':
> drivers/input/keyboard/samsung-keypad.c:170: error: 'TASK_UNINTERRUPTIBLE' undeclared (first use in this function)
> drivers/input/keyboard/samsung-keypad.c:170: error: (Each undeclared identifier is reported only once
> drivers/input/keyboard/samsung-keypad.c:170: error: for each function it appears in.)
> drivers/input/keyboard/samsung-keypad.c:170: error: implicit declaration of function 'schedule_timeout'
> drivers/input/keyboard/samsung-keypad.c: In function 'samsung_keypad_stop':
> drivers/input/keyboard/samsung-keypad.c:202: error: 'TASK_NORMAL' undeclared (first use in this function)
> make[3]: *** [drivers/input/keyboard/samsung-keypad.o] Error 1
> 

This error occurs on s5pc100_defconfig having disabled CONFIG_PREEMPT 
option. I think sched.h should be included to remove like this 
dependency in driver, are there other ways?

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

* RE: [PATCH v6 3/3] input: samsung-keypad - Add samsung keypad driver
  2010-07-07  1:28         ` Joonyoung Shim
@ 2010-07-09  7:07           ` Kukjin Kim
  -1 siblings, 0 replies; 42+ messages in thread
From: Kukjin Kim @ 2010-07-09  7:07 UTC (permalink / raw)
  To: 'Joonyoung Shim'
  Cc: ch.naveen, linux-arm-kernel, dmitry.torokhov, kyungmin.park,
	linux-samsung-soc, ben-linux, linux-input

Joonyoung Shim wrote:
> 
> On 7/7/2010 8:52 AM, Kukjin Kim wrote:
> > Joonyoung Shim wrote:
> >> Hi, Naveen.
> >>
> >> On 6/28/2010 8:33 PM, Joonyoung Shim wrote:
> >>> This patch adds support for keypad driver running on Samsung cpus. This
> >>> driver is tested on GONI and Aquila board using S5PC110 cpu.
> >>>
> >>> Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
> >>> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> >>> ---
> >>>  drivers/input/keyboard/Kconfig          |    9 +
> >>>  drivers/input/keyboard/Makefile         |    1 +
> >>>  drivers/input/keyboard/samsung-keypad.c |  491
> >> +++++++++++++++++++++++++++++++
> >>>  3 files changed, 501 insertions(+), 0 deletions(-)
> >>>  create mode 100644 drivers/input/keyboard/samsung-keypad.c
> >>>
> >> Could you please test this v6 keypad driver on your various targets?
> >
> > Hi,
> >
> > I received the test result from Naveen.
> > And now he is debugging about that.
> >
> > ..his e-mail client has some problem..so I replied...
> >
> > ---
> > From: Naveen Ch
> >
> > I've tested with v6 patches and they are working fine on SMDK6410, SMDKC100
> and SMDKV210, except for some header inclusion (linux/sched.h) in samsung-
> keypad.c.
> >
> > The build breaking error is like following:
> > (make s5pc100_defconfig and select input->keypad->samsung keypad)
> >
> > drivers/input/keyboard/samsung-keypad.c: In function 'samsung_keypad_irq':
> > drivers/input/keyboard/samsung-keypad.c:170: error: 'TASK_UNINTERRUPTIBLE'
> undeclared (first use in this function)
> > drivers/input/keyboard/samsung-keypad.c:170: error: (Each undeclared identifier
> is reported only once
> > drivers/input/keyboard/samsung-keypad.c:170: error: for each function it appears
> in.)
> > drivers/input/keyboard/samsung-keypad.c:170: error: implicit declaration of
> function 'schedule_timeout'
> > drivers/input/keyboard/samsung-keypad.c: In function 'samsung_keypad_stop':
> > drivers/input/keyboard/samsung-keypad.c:202: error: 'TASK_NORMAL'
> undeclared (first use in this function)
> > make[3]: *** [drivers/input/keyboard/samsung-keypad.o] Error 1
> >
> 
> This error occurs on s5pc100_defconfig having disabled CONFIG_PREEMPT
> option. I think sched.h should be included to remove like this
> dependency in driver, are there other ways?

I'm not sure root cause is that. But as you said, I think need inclusion it for prevent the problem.
Actually didn't happen it before..so maybe the some core functions have moved between rc-3 and earlier versions...

Anyway, if no any issues, could you please re-submit updated it soon?

Thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.


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

* [PATCH v6 3/3] input: samsung-keypad - Add samsung keypad driver
@ 2010-07-09  7:07           ` Kukjin Kim
  0 siblings, 0 replies; 42+ messages in thread
From: Kukjin Kim @ 2010-07-09  7:07 UTC (permalink / raw)
  To: linux-arm-kernel

Joonyoung Shim wrote:
> 
> On 7/7/2010 8:52 AM, Kukjin Kim wrote:
> > Joonyoung Shim wrote:
> >> Hi, Naveen.
> >>
> >> On 6/28/2010 8:33 PM, Joonyoung Shim wrote:
> >>> This patch adds support for keypad driver running on Samsung cpus. This
> >>> driver is tested on GONI and Aquila board using S5PC110 cpu.
> >>>
> >>> Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
> >>> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> >>> ---
> >>>  drivers/input/keyboard/Kconfig          |    9 +
> >>>  drivers/input/keyboard/Makefile         |    1 +
> >>>  drivers/input/keyboard/samsung-keypad.c |  491
> >> +++++++++++++++++++++++++++++++
> >>>  3 files changed, 501 insertions(+), 0 deletions(-)
> >>>  create mode 100644 drivers/input/keyboard/samsung-keypad.c
> >>>
> >> Could you please test this v6 keypad driver on your various targets?
> >
> > Hi,
> >
> > I received the test result from Naveen.
> > And now he is debugging about that.
> >
> > ..his e-mail client has some problem..so I replied...
> >
> > ---
> > From: Naveen Ch
> >
> > I've tested with v6 patches and they are working fine on SMDK6410, SMDKC100
> and SMDKV210, except for some header inclusion (linux/sched.h) in samsung-
> keypad.c.
> >
> > The build breaking error is like following:
> > (make s5pc100_defconfig and select input->keypad->samsung keypad)
> >
> > drivers/input/keyboard/samsung-keypad.c: In function 'samsung_keypad_irq':
> > drivers/input/keyboard/samsung-keypad.c:170: error: 'TASK_UNINTERRUPTIBLE'
> undeclared (first use in this function)
> > drivers/input/keyboard/samsung-keypad.c:170: error: (Each undeclared identifier
> is reported only once
> > drivers/input/keyboard/samsung-keypad.c:170: error: for each function it appears
> in.)
> > drivers/input/keyboard/samsung-keypad.c:170: error: implicit declaration of
> function 'schedule_timeout'
> > drivers/input/keyboard/samsung-keypad.c: In function 'samsung_keypad_stop':
> > drivers/input/keyboard/samsung-keypad.c:202: error: 'TASK_NORMAL'
> undeclared (first use in this function)
> > make[3]: *** [drivers/input/keyboard/samsung-keypad.o] Error 1
> >
> 
> This error occurs on s5pc100_defconfig having disabled CONFIG_PREEMPT
> option. I think sched.h should be included to remove like this
> dependency in driver, are there other ways?

I'm not sure root cause is that. But as you said, I think need inclusion it for prevent the problem.
Actually didn't happen it before..so maybe the some core functions have moved between rc-3 and earlier versions...

Anyway, if no any issues, could you please re-submit updated it soon?

Thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

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

* Re: [PATCH v6 3/3] input: samsung-keypad - Add samsung keypad driver
  2010-07-09  7:07           ` Kukjin Kim
@ 2010-07-09  7:39             ` Joonyoung Shim
  -1 siblings, 0 replies; 42+ messages in thread
From: Joonyoung Shim @ 2010-07-09  7:39 UTC (permalink / raw)
  To: Kukjin Kim
  Cc: ch.naveen, linux-arm-kernel, dmitry.torokhov, kyungmin.park,
	linux-samsung-soc, ben-linux, linux-input

On 7/9/2010 4:07 PM, Kukjin Kim wrote:
> Joonyoung Shim wrote:
>> On 7/7/2010 8:52 AM, Kukjin Kim wrote:
>>> Joonyoung Shim wrote:
>>>> Hi, Naveen.
>>>>
>>>> On 6/28/2010 8:33 PM, Joonyoung Shim wrote:
>>>>> This patch adds support for keypad driver running on Samsung cpus. This
>>>>> driver is tested on GONI and Aquila board using S5PC110 cpu.
>>>>>
>>>>> Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
>>>>> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
>>>>> ---
>>>>>  drivers/input/keyboard/Kconfig          |    9 +
>>>>>  drivers/input/keyboard/Makefile         |    1 +
>>>>>  drivers/input/keyboard/samsung-keypad.c |  491
>>>> +++++++++++++++++++++++++++++++
>>>>>  3 files changed, 501 insertions(+), 0 deletions(-)
>>>>>  create mode 100644 drivers/input/keyboard/samsung-keypad.c
>>>>>
>>>> Could you please test this v6 keypad driver on your various targets?
>>> Hi,
>>>
>>> I received the test result from Naveen.
>>> And now he is debugging about that.
>>>
>>> ..his e-mail client has some problem..so I replied...
>>>
>>> ---
>>> From: Naveen Ch
>>>
>>> I've tested with v6 patches and they are working fine on SMDK6410, SMDKC100
>> and SMDKV210, except for some header inclusion (linux/sched.h) in samsung-
>> keypad.c.
>>> The build breaking error is like following:
>>> (make s5pc100_defconfig and select input->keypad->samsung keypad)
>>>
>>> drivers/input/keyboard/samsung-keypad.c: In function 'samsung_keypad_irq':
>>> drivers/input/keyboard/samsung-keypad.c:170: error: 'TASK_UNINTERRUPTIBLE'
>> undeclared (first use in this function)
>>> drivers/input/keyboard/samsung-keypad.c:170: error: (Each undeclared identifier
>> is reported only once
>>> drivers/input/keyboard/samsung-keypad.c:170: error: for each function it appears
>> in.)
>>> drivers/input/keyboard/samsung-keypad.c:170: error: implicit declaration of
>> function 'schedule_timeout'
>>> drivers/input/keyboard/samsung-keypad.c: In function 'samsung_keypad_stop':
>>> drivers/input/keyboard/samsung-keypad.c:202: error: 'TASK_NORMAL'
>> undeclared (first use in this function)
>>> make[3]: *** [drivers/input/keyboard/samsung-keypad.o] Error 1
>>>
>> This error occurs on s5pc100_defconfig having disabled CONFIG_PREEMPT
>> option. I think sched.h should be included to remove like this
>> dependency in driver, are there other ways?
> 
> I'm not sure root cause is that. But as you said, I think need inclusion it for prevent the problem.
> Actually didn't happen it before..so maybe the some core functions have moved between rc-3 and earlier versions...

The sched.h is included by below path.

interrupt.h -> hardirq.h -> smp_lock.h -> sched.h

The smp_lock.h in hardirq.h is included if CONFIG_PREEMPT is defined. 
The samsung keypad driver haven't needed including sched.h before
Dmitry's patch is applied..

> 
> Anyway, if no any issues, could you please re-submit updated it soon?

I haven't get yet Dmitry's review of v6 patch set, so i am waiting it.

Thanks.

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

* [PATCH v6 3/3] input: samsung-keypad - Add samsung keypad driver
@ 2010-07-09  7:39             ` Joonyoung Shim
  0 siblings, 0 replies; 42+ messages in thread
From: Joonyoung Shim @ 2010-07-09  7:39 UTC (permalink / raw)
  To: linux-arm-kernel

On 7/9/2010 4:07 PM, Kukjin Kim wrote:
> Joonyoung Shim wrote:
>> On 7/7/2010 8:52 AM, Kukjin Kim wrote:
>>> Joonyoung Shim wrote:
>>>> Hi, Naveen.
>>>>
>>>> On 6/28/2010 8:33 PM, Joonyoung Shim wrote:
>>>>> This patch adds support for keypad driver running on Samsung cpus. This
>>>>> driver is tested on GONI and Aquila board using S5PC110 cpu.
>>>>>
>>>>> Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
>>>>> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
>>>>> ---
>>>>>  drivers/input/keyboard/Kconfig          |    9 +
>>>>>  drivers/input/keyboard/Makefile         |    1 +
>>>>>  drivers/input/keyboard/samsung-keypad.c |  491
>>>> +++++++++++++++++++++++++++++++
>>>>>  3 files changed, 501 insertions(+), 0 deletions(-)
>>>>>  create mode 100644 drivers/input/keyboard/samsung-keypad.c
>>>>>
>>>> Could you please test this v6 keypad driver on your various targets?
>>> Hi,
>>>
>>> I received the test result from Naveen.
>>> And now he is debugging about that.
>>>
>>> ..his e-mail client has some problem..so I replied...
>>>
>>> ---
>>> From: Naveen Ch
>>>
>>> I've tested with v6 patches and they are working fine on SMDK6410, SMDKC100
>> and SMDKV210, except for some header inclusion (linux/sched.h) in samsung-
>> keypad.c.
>>> The build breaking error is like following:
>>> (make s5pc100_defconfig and select input->keypad->samsung keypad)
>>>
>>> drivers/input/keyboard/samsung-keypad.c: In function 'samsung_keypad_irq':
>>> drivers/input/keyboard/samsung-keypad.c:170: error: 'TASK_UNINTERRUPTIBLE'
>> undeclared (first use in this function)
>>> drivers/input/keyboard/samsung-keypad.c:170: error: (Each undeclared identifier
>> is reported only once
>>> drivers/input/keyboard/samsung-keypad.c:170: error: for each function it appears
>> in.)
>>> drivers/input/keyboard/samsung-keypad.c:170: error: implicit declaration of
>> function 'schedule_timeout'
>>> drivers/input/keyboard/samsung-keypad.c: In function 'samsung_keypad_stop':
>>> drivers/input/keyboard/samsung-keypad.c:202: error: 'TASK_NORMAL'
>> undeclared (first use in this function)
>>> make[3]: *** [drivers/input/keyboard/samsung-keypad.o] Error 1
>>>
>> This error occurs on s5pc100_defconfig having disabled CONFIG_PREEMPT
>> option. I think sched.h should be included to remove like this
>> dependency in driver, are there other ways?
> 
> I'm not sure root cause is that. But as you said, I think need inclusion it for prevent the problem.
> Actually didn't happen it before..so maybe the some core functions have moved between rc-3 and earlier versions...

The sched.h is included by below path.

interrupt.h -> hardirq.h -> smp_lock.h -> sched.h

The smp_lock.h in hardirq.h is included if CONFIG_PREEMPT is defined. 
The samsung keypad driver haven't needed including sched.h before
Dmitry's patch is applied..

> 
> Anyway, if no any issues, could you please re-submit updated it soon?

I haven't get yet Dmitry's review of v6 patch set, so i am waiting it.

Thanks.

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

* Re: [PATCH v6 3/3] input: samsung-keypad - Add samsung keypad driver
  2010-07-09  7:39             ` Joonyoung Shim
@ 2010-07-21  5:42               ` Joonyoung Shim
  -1 siblings, 0 replies; 42+ messages in thread
From: Joonyoung Shim @ 2010-07-21  5:42 UTC (permalink / raw)
  To: dmitry.torokhov
  Cc: Kukjin Kim, linux-samsung-soc, kyungmin.park, ben-linux,
	linux-input, ch.naveen, linux-arm-kernel

Hi, Dmitry.

On 7/9/2010 4:39 PM, Joonyoung Shim wrote:
> On 7/9/2010 4:07 PM, Kukjin Kim wrote:
>> Joonyoung Shim wrote:
>>> On 7/7/2010 8:52 AM, Kukjin Kim wrote:
>>>> Joonyoung Shim wrote:
>>>>> Hi, Naveen.
>>>>>
>>>>> On 6/28/2010 8:33 PM, Joonyoung Shim wrote:
>>>>>> This patch adds support for keypad driver running on Samsung cpus. This
>>>>>> driver is tested on GONI and Aquila board using S5PC110 cpu.
>>>>>>
>>>>>> Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
>>>>>> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
>>>>>> ---
>>>>>>  drivers/input/keyboard/Kconfig          |    9 +
>>>>>>  drivers/input/keyboard/Makefile         |    1 +
>>>>>>  drivers/input/keyboard/samsung-keypad.c |  491
>>>>> +++++++++++++++++++++++++++++++
>>>>>>  3 files changed, 501 insertions(+), 0 deletions(-)
>>>>>>  create mode 100644 drivers/input/keyboard/samsung-keypad.c
>>>>>>
>>>>> Could you please test this v6 keypad driver on your various targets?
>>>> Hi,
>>>>
>>>> I received the test result from Naveen.
>>>> And now he is debugging about that.
>>>>
>>>> ..his e-mail client has some problem..so I replied...
>>>>
>>>> ---
>>>> From: Naveen Ch
>>>>
>>>> I've tested with v6 patches and they are working fine on SMDK6410, SMDKC100
>>> and SMDKV210, except for some header inclusion (linux/sched.h) in samsung-
>>> keypad.c.
>>>> The build breaking error is like following:
>>>> (make s5pc100_defconfig and select input->keypad->samsung keypad)
>>>>
>>>> drivers/input/keyboard/samsung-keypad.c: In function 'samsung_keypad_irq':
>>>> drivers/input/keyboard/samsung-keypad.c:170: error: 'TASK_UNINTERRUPTIBLE'
>>> undeclared (first use in this function)
>>>> drivers/input/keyboard/samsung-keypad.c:170: error: (Each undeclared identifier
>>> is reported only once
>>>> drivers/input/keyboard/samsung-keypad.c:170: error: for each function it appears
>>> in.)
>>>> drivers/input/keyboard/samsung-keypad.c:170: error: implicit declaration of
>>> function 'schedule_timeout'
>>>> drivers/input/keyboard/samsung-keypad.c: In function 'samsung_keypad_stop':
>>>> drivers/input/keyboard/samsung-keypad.c:202: error: 'TASK_NORMAL'
>>> undeclared (first use in this function)
>>>> make[3]: *** [drivers/input/keyboard/samsung-keypad.o] Error 1
>>>>
>>> This error occurs on s5pc100_defconfig having disabled CONFIG_PREEMPT
>>> option. I think sched.h should be included to remove like this
>>> dependency in driver, are there other ways?
>> I'm not sure root cause is that. But as you said, I think need inclusion it for prevent the problem.
>> Actually didn't happen it before..so maybe the some core functions have moved between rc-3 and earlier versions...
> 
> The sched.h is included by below path.
> 
> interrupt.h -> hardirq.h -> smp_lock.h -> sched.h
> 
> The smp_lock.h in hardirq.h is included if CONFIG_PREEMPT is defined. 
> The samsung keypad driver haven't needed including sched.h before
> Dmitry's patch is applied..
> 
>> Anyway, if no any issues, could you please re-submit updated it soon?
> 
> I haven't get yet Dmitry's review of v6 patch set, so i am waiting it.
> 

Ping.

Do you have any feedback? If ok, i want to go to input tree or samsung
tree these added sched.h including.

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

* [PATCH v6 3/3] input: samsung-keypad - Add samsung keypad driver
@ 2010-07-21  5:42               ` Joonyoung Shim
  0 siblings, 0 replies; 42+ messages in thread
From: Joonyoung Shim @ 2010-07-21  5:42 UTC (permalink / raw)
  To: linux-arm-kernel

Hi, Dmitry.

On 7/9/2010 4:39 PM, Joonyoung Shim wrote:
> On 7/9/2010 4:07 PM, Kukjin Kim wrote:
>> Joonyoung Shim wrote:
>>> On 7/7/2010 8:52 AM, Kukjin Kim wrote:
>>>> Joonyoung Shim wrote:
>>>>> Hi, Naveen.
>>>>>
>>>>> On 6/28/2010 8:33 PM, Joonyoung Shim wrote:
>>>>>> This patch adds support for keypad driver running on Samsung cpus. This
>>>>>> driver is tested on GONI and Aquila board using S5PC110 cpu.
>>>>>>
>>>>>> Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
>>>>>> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
>>>>>> ---
>>>>>>  drivers/input/keyboard/Kconfig          |    9 +
>>>>>>  drivers/input/keyboard/Makefile         |    1 +
>>>>>>  drivers/input/keyboard/samsung-keypad.c |  491
>>>>> +++++++++++++++++++++++++++++++
>>>>>>  3 files changed, 501 insertions(+), 0 deletions(-)
>>>>>>  create mode 100644 drivers/input/keyboard/samsung-keypad.c
>>>>>>
>>>>> Could you please test this v6 keypad driver on your various targets?
>>>> Hi,
>>>>
>>>> I received the test result from Naveen.
>>>> And now he is debugging about that.
>>>>
>>>> ..his e-mail client has some problem..so I replied...
>>>>
>>>> ---
>>>> From: Naveen Ch
>>>>
>>>> I've tested with v6 patches and they are working fine on SMDK6410, SMDKC100
>>> and SMDKV210, except for some header inclusion (linux/sched.h) in samsung-
>>> keypad.c.
>>>> The build breaking error is like following:
>>>> (make s5pc100_defconfig and select input->keypad->samsung keypad)
>>>>
>>>> drivers/input/keyboard/samsung-keypad.c: In function 'samsung_keypad_irq':
>>>> drivers/input/keyboard/samsung-keypad.c:170: error: 'TASK_UNINTERRUPTIBLE'
>>> undeclared (first use in this function)
>>>> drivers/input/keyboard/samsung-keypad.c:170: error: (Each undeclared identifier
>>> is reported only once
>>>> drivers/input/keyboard/samsung-keypad.c:170: error: for each function it appears
>>> in.)
>>>> drivers/input/keyboard/samsung-keypad.c:170: error: implicit declaration of
>>> function 'schedule_timeout'
>>>> drivers/input/keyboard/samsung-keypad.c: In function 'samsung_keypad_stop':
>>>> drivers/input/keyboard/samsung-keypad.c:202: error: 'TASK_NORMAL'
>>> undeclared (first use in this function)
>>>> make[3]: *** [drivers/input/keyboard/samsung-keypad.o] Error 1
>>>>
>>> This error occurs on s5pc100_defconfig having disabled CONFIG_PREEMPT
>>> option. I think sched.h should be included to remove like this
>>> dependency in driver, are there other ways?
>> I'm not sure root cause is that. But as you said, I think need inclusion it for prevent the problem.
>> Actually didn't happen it before..so maybe the some core functions have moved between rc-3 and earlier versions...
> 
> The sched.h is included by below path.
> 
> interrupt.h -> hardirq.h -> smp_lock.h -> sched.h
> 
> The smp_lock.h in hardirq.h is included if CONFIG_PREEMPT is defined. 
> The samsung keypad driver haven't needed including sched.h before
> Dmitry's patch is applied..
> 
>> Anyway, if no any issues, could you please re-submit updated it soon?
> 
> I haven't get yet Dmitry's review of v6 patch set, so i am waiting it.
> 

Ping.

Do you have any feedback? If ok, i want to go to input tree or samsung
tree these added sched.h including.

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

* RE: [PATCH v6 3/3] input: samsung-keypad - Add samsung keypad driver
  2010-07-21  5:42               ` Joonyoung Shim
@ 2010-07-21  6:21                 ` Kukjin Kim
  -1 siblings, 0 replies; 42+ messages in thread
From: Kukjin Kim @ 2010-07-21  6:21 UTC (permalink / raw)
  To: 'Joonyoung Shim', dmitry.torokhov
  Cc: linux-samsung-soc, kyungmin.park, ben-linux, linux-input,
	ch.naveen, linux-arm-kernel

Joonyoung Shim wrote:
> 
> Hi, Dmitry.
> 
> On 7/9/2010 4:39 PM, Joonyoung Shim wrote:
> > On 7/9/2010 4:07 PM, Kukjin Kim wrote:
> >> Joonyoung Shim wrote:
> >>> On 7/7/2010 8:52 AM, Kukjin Kim wrote:
> >>>> Joonyoung Shim wrote:
> >>>>> Hi, Naveen.
> >>>>>
> >>>>> On 6/28/2010 8:33 PM, Joonyoung Shim wrote:
> >>>>>> This patch adds support for keypad driver running on Samsung cpus. This
> >>>>>> driver is tested on GONI and Aquila board using S5PC110 cpu.
> >>>>>>
> >>>>>> Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
> >>>>>> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> >>>>>> ---
> >>>>>>  drivers/input/keyboard/Kconfig          |    9 +
> >>>>>>  drivers/input/keyboard/Makefile         |    1 +
> >>>>>>  drivers/input/keyboard/samsung-keypad.c |  491
> >>>>> +++++++++++++++++++++++++++++++
> >>>>>>  3 files changed, 501 insertions(+), 0 deletions(-)
> >>>>>>  create mode 100644 drivers/input/keyboard/samsung-keypad.c
> >>>>>>
> >>>>> Could you please test this v6 keypad driver on your various targets?
> >>>> Hi,
> >>>>
> >>>> I received the test result from Naveen.
> >>>> And now he is debugging about that.
> >>>>
> >>>> ..his e-mail client has some problem..so I replied...
> >>>>
> >>>> ---
> >>>> From: Naveen Ch
> >>>>
> >>>> I've tested with v6 patches and they are working fine on SMDK6410,
> SMDKC100
> >>> and SMDKV210, except for some header inclusion (linux/sched.h) in
> samsung-
> >>> keypad.c.
> >>>> The build breaking error is like following:
> >>>> (make s5pc100_defconfig and select input->keypad->samsung keypad)
> >>>>
> >>>> drivers/input/keyboard/samsung-keypad.c: In function 'samsung_keypad_irq':
> >>>> drivers/input/keyboard/samsung-keypad.c:170: error:
> 'TASK_UNINTERRUPTIBLE'
> >>> undeclared (first use in this function)
> >>>> drivers/input/keyboard/samsung-keypad.c:170: error: (Each undeclared
> identifier
> >>> is reported only once
> >>>> drivers/input/keyboard/samsung-keypad.c:170: error: for each function it
> appears
> >>> in.)
> >>>> drivers/input/keyboard/samsung-keypad.c:170: error: implicit declaration of
> >>> function 'schedule_timeout'
> >>>> drivers/input/keyboard/samsung-keypad.c: In function
> 'samsung_keypad_stop':
> >>>> drivers/input/keyboard/samsung-keypad.c:202: error: 'TASK_NORMAL'
> >>> undeclared (first use in this function)
> >>>> make[3]: *** [drivers/input/keyboard/samsung-keypad.o] Error 1
> >>>>
> >>> This error occurs on s5pc100_defconfig having disabled CONFIG_PREEMPT
> >>> option. I think sched.h should be included to remove like this
> >>> dependency in driver, are there other ways?
> >> I'm not sure root cause is that. But as you said, I think need inclusion it for
> prevent the problem.
> >> Actually didn't happen it before..so maybe the some core functions have
> moved between rc-3 and earlier versions...
> >
> > The sched.h is included by below path.
> >
> > interrupt.h -> hardirq.h -> smp_lock.h -> sched.h
> >
> > The smp_lock.h in hardirq.h is included if CONFIG_PREEMPT is defined.
> > The samsung keypad driver haven't needed including sched.h before
> > Dmitry's patch is applied..
> >
> >> Anyway, if no any issues, could you please re-submit updated it soon?
> >
> > I haven't get yet Dmitry's review of v6 patch set, so i am waiting it.
> >
> 
> Ping.
> 
> Do you have any feedback? If ok, i want to go to input tree or samsung
> tree these added sched.h including.

With including sched.h and Naveen's keypad support patches for SMDK6410, SMDKC100 and SMDKV210:

[ch.naveen@samsung.com: tested on SMDK6410, SMDKC100, and SMDKV210]
Tested-by: Naveen Krishna Ch <ch.naveen@samsung.com>
Acked-by: Kukjin Kim <kgene.kim@samsung.com>

Thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.


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

* [PATCH v6 3/3] input: samsung-keypad - Add samsung keypad driver
@ 2010-07-21  6:21                 ` Kukjin Kim
  0 siblings, 0 replies; 42+ messages in thread
From: Kukjin Kim @ 2010-07-21  6:21 UTC (permalink / raw)
  To: linux-arm-kernel

Joonyoung Shim wrote:
> 
> Hi, Dmitry.
> 
> On 7/9/2010 4:39 PM, Joonyoung Shim wrote:
> > On 7/9/2010 4:07 PM, Kukjin Kim wrote:
> >> Joonyoung Shim wrote:
> >>> On 7/7/2010 8:52 AM, Kukjin Kim wrote:
> >>>> Joonyoung Shim wrote:
> >>>>> Hi, Naveen.
> >>>>>
> >>>>> On 6/28/2010 8:33 PM, Joonyoung Shim wrote:
> >>>>>> This patch adds support for keypad driver running on Samsung cpus. This
> >>>>>> driver is tested on GONI and Aquila board using S5PC110 cpu.
> >>>>>>
> >>>>>> Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
> >>>>>> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> >>>>>> ---
> >>>>>>  drivers/input/keyboard/Kconfig          |    9 +
> >>>>>>  drivers/input/keyboard/Makefile         |    1 +
> >>>>>>  drivers/input/keyboard/samsung-keypad.c |  491
> >>>>> +++++++++++++++++++++++++++++++
> >>>>>>  3 files changed, 501 insertions(+), 0 deletions(-)
> >>>>>>  create mode 100644 drivers/input/keyboard/samsung-keypad.c
> >>>>>>
> >>>>> Could you please test this v6 keypad driver on your various targets?
> >>>> Hi,
> >>>>
> >>>> I received the test result from Naveen.
> >>>> And now he is debugging about that.
> >>>>
> >>>> ..his e-mail client has some problem..so I replied...
> >>>>
> >>>> ---
> >>>> From: Naveen Ch
> >>>>
> >>>> I've tested with v6 patches and they are working fine on SMDK6410,
> SMDKC100
> >>> and SMDKV210, except for some header inclusion (linux/sched.h) in
> samsung-
> >>> keypad.c.
> >>>> The build breaking error is like following:
> >>>> (make s5pc100_defconfig and select input->keypad->samsung keypad)
> >>>>
> >>>> drivers/input/keyboard/samsung-keypad.c: In function 'samsung_keypad_irq':
> >>>> drivers/input/keyboard/samsung-keypad.c:170: error:
> 'TASK_UNINTERRUPTIBLE'
> >>> undeclared (first use in this function)
> >>>> drivers/input/keyboard/samsung-keypad.c:170: error: (Each undeclared
> identifier
> >>> is reported only once
> >>>> drivers/input/keyboard/samsung-keypad.c:170: error: for each function it
> appears
> >>> in.)
> >>>> drivers/input/keyboard/samsung-keypad.c:170: error: implicit declaration of
> >>> function 'schedule_timeout'
> >>>> drivers/input/keyboard/samsung-keypad.c: In function
> 'samsung_keypad_stop':
> >>>> drivers/input/keyboard/samsung-keypad.c:202: error: 'TASK_NORMAL'
> >>> undeclared (first use in this function)
> >>>> make[3]: *** [drivers/input/keyboard/samsung-keypad.o] Error 1
> >>>>
> >>> This error occurs on s5pc100_defconfig having disabled CONFIG_PREEMPT
> >>> option. I think sched.h should be included to remove like this
> >>> dependency in driver, are there other ways?
> >> I'm not sure root cause is that. But as you said, I think need inclusion it for
> prevent the problem.
> >> Actually didn't happen it before..so maybe the some core functions have
> moved between rc-3 and earlier versions...
> >
> > The sched.h is included by below path.
> >
> > interrupt.h -> hardirq.h -> smp_lock.h -> sched.h
> >
> > The smp_lock.h in hardirq.h is included if CONFIG_PREEMPT is defined.
> > The samsung keypad driver haven't needed including sched.h before
> > Dmitry's patch is applied..
> >
> >> Anyway, if no any issues, could you please re-submit updated it soon?
> >
> > I haven't get yet Dmitry's review of v6 patch set, so i am waiting it.
> >
> 
> Ping.
> 
> Do you have any feedback? If ok, i want to go to input tree or samsung
> tree these added sched.h including.

With including sched.h and Naveen's keypad support patches for SMDK6410, SMDKC100 and SMDKV210:

[ch.naveen at samsung.com: tested on SMDK6410, SMDKC100, and SMDKV210]
Tested-by: Naveen Krishna Ch <ch.naveen@samsung.com>
Acked-by: Kukjin Kim <kgene.kim@samsung.com>

Thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

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

* Re: [PATCH v6 3/3] input: samsung-keypad - Add samsung keypad driver
  2010-07-21  5:42               ` Joonyoung Shim
@ 2010-07-21  8:07                 ` Dmitry Torokhov
  -1 siblings, 0 replies; 42+ messages in thread
From: Dmitry Torokhov @ 2010-07-21  8:07 UTC (permalink / raw)
  To: Joonyoung Shim
  Cc: Kukjin Kim, linux-samsung-soc, kyungmin.park, ben-linux,
	linux-input, ch.naveen, linux-arm-kernel

Hi Joonyoung,

On Wed, Jul 21, 2010 at 02:42:22PM +0900, Joonyoung Shim wrote:
> Hi, Dmitry.
> 
> On 7/9/2010 4:39 PM, Joonyoung Shim wrote:
> > On 7/9/2010 4:07 PM, Kukjin Kim wrote:
> >> Joonyoung Shim wrote:
> >>> On 7/7/2010 8:52 AM, Kukjin Kim wrote:
> >>>> Joonyoung Shim wrote:
> >>>>> Hi, Naveen.
> >>>>>
> >>>>> On 6/28/2010 8:33 PM, Joonyoung Shim wrote:
> >>>>>> This patch adds support for keypad driver running on Samsung cpus. This
> >>>>>> driver is tested on GONI and Aquila board using S5PC110 cpu.
> >>>>>>
> >>>>>> Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
> >>>>>> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> >>>>>> ---
> >>>>>>  drivers/input/keyboard/Kconfig          |    9 +
> >>>>>>  drivers/input/keyboard/Makefile         |    1 +
> >>>>>>  drivers/input/keyboard/samsung-keypad.c |  491
> >>>>> +++++++++++++++++++++++++++++++
> >>>>>>  3 files changed, 501 insertions(+), 0 deletions(-)
> >>>>>>  create mode 100644 drivers/input/keyboard/samsung-keypad.c
> >>>>>>
> >>>>> Could you please test this v6 keypad driver on your various targets?
> >>>> Hi,
> >>>>
> >>>> I received the test result from Naveen.
> >>>> And now he is debugging about that.
> >>>>
> >>>> ..his e-mail client has some problem..so I replied...
> >>>>
> >>>> ---
> >>>> From: Naveen Ch
> >>>>
> >>>> I've tested with v6 patches and they are working fine on SMDK6410, SMDKC100
> >>> and SMDKV210, except for some header inclusion (linux/sched.h) in samsung-
> >>> keypad.c.
> >>>> The build breaking error is like following:
> >>>> (make s5pc100_defconfig and select input->keypad->samsung keypad)
> >>>>
> >>>> drivers/input/keyboard/samsung-keypad.c: In function 'samsung_keypad_irq':
> >>>> drivers/input/keyboard/samsung-keypad.c:170: error: 'TASK_UNINTERRUPTIBLE'
> >>> undeclared (first use in this function)
> >>>> drivers/input/keyboard/samsung-keypad.c:170: error: (Each undeclared identifier
> >>> is reported only once
> >>>> drivers/input/keyboard/samsung-keypad.c:170: error: for each function it appears
> >>> in.)
> >>>> drivers/input/keyboard/samsung-keypad.c:170: error: implicit declaration of
> >>> function 'schedule_timeout'
> >>>> drivers/input/keyboard/samsung-keypad.c: In function 'samsung_keypad_stop':
> >>>> drivers/input/keyboard/samsung-keypad.c:202: error: 'TASK_NORMAL'
> >>> undeclared (first use in this function)
> >>>> make[3]: *** [drivers/input/keyboard/samsung-keypad.o] Error 1
> >>>>
> >>> This error occurs on s5pc100_defconfig having disabled CONFIG_PREEMPT
> >>> option. I think sched.h should be included to remove like this
> >>> dependency in driver, are there other ways?
> >> I'm not sure root cause is that. But as you said, I think need inclusion it for prevent the problem.
> >> Actually didn't happen it before..so maybe the some core functions have moved between rc-3 and earlier versions...
> > 
> > The sched.h is included by below path.
> > 
> > interrupt.h -> hardirq.h -> smp_lock.h -> sched.h
> > 
> > The smp_lock.h in hardirq.h is included if CONFIG_PREEMPT is defined. 
> > The samsung keypad driver haven't needed including sched.h before
> > Dmitry's patch is applied..
> > 
> >> Anyway, if no any issues, could you please re-submit updated it soon?
> > 
> > I haven't get yet Dmitry's review of v6 patch set, so i am waiting it.
> > 
> 
> Ping.
> 
> Do you have any feedback? If ok, i want to go to input tree or samsung
> tree these added sched.h including.

I applied the patch adding samsung-keypad.c and the platform data
arch/arm/plat-samsung/include/plat/keypad.h and I expect that
patches to actually enable keypad will go through appropriate
platform tree(s).

The only caveat is that I removed declarations for copying platform data
around and for gpio config function - if it is there there is no point
of invoking it through the pointer in platform data.

Overall I am confused why you set up keypad in platform code in the
way you do. I'd put the device definitions and all supporting functions
in the same module that registers platform device and be done with it.

Thanks.

-- 
Dmitry

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

* [PATCH v6 3/3] input: samsung-keypad - Add samsung keypad driver
@ 2010-07-21  8:07                 ` Dmitry Torokhov
  0 siblings, 0 replies; 42+ messages in thread
From: Dmitry Torokhov @ 2010-07-21  8:07 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Joonyoung,

On Wed, Jul 21, 2010 at 02:42:22PM +0900, Joonyoung Shim wrote:
> Hi, Dmitry.
> 
> On 7/9/2010 4:39 PM, Joonyoung Shim wrote:
> > On 7/9/2010 4:07 PM, Kukjin Kim wrote:
> >> Joonyoung Shim wrote:
> >>> On 7/7/2010 8:52 AM, Kukjin Kim wrote:
> >>>> Joonyoung Shim wrote:
> >>>>> Hi, Naveen.
> >>>>>
> >>>>> On 6/28/2010 8:33 PM, Joonyoung Shim wrote:
> >>>>>> This patch adds support for keypad driver running on Samsung cpus. This
> >>>>>> driver is tested on GONI and Aquila board using S5PC110 cpu.
> >>>>>>
> >>>>>> Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
> >>>>>> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> >>>>>> ---
> >>>>>>  drivers/input/keyboard/Kconfig          |    9 +
> >>>>>>  drivers/input/keyboard/Makefile         |    1 +
> >>>>>>  drivers/input/keyboard/samsung-keypad.c |  491
> >>>>> +++++++++++++++++++++++++++++++
> >>>>>>  3 files changed, 501 insertions(+), 0 deletions(-)
> >>>>>>  create mode 100644 drivers/input/keyboard/samsung-keypad.c
> >>>>>>
> >>>>> Could you please test this v6 keypad driver on your various targets?
> >>>> Hi,
> >>>>
> >>>> I received the test result from Naveen.
> >>>> And now he is debugging about that.
> >>>>
> >>>> ..his e-mail client has some problem..so I replied...
> >>>>
> >>>> ---
> >>>> From: Naveen Ch
> >>>>
> >>>> I've tested with v6 patches and they are working fine on SMDK6410, SMDKC100
> >>> and SMDKV210, except for some header inclusion (linux/sched.h) in samsung-
> >>> keypad.c.
> >>>> The build breaking error is like following:
> >>>> (make s5pc100_defconfig and select input->keypad->samsung keypad)
> >>>>
> >>>> drivers/input/keyboard/samsung-keypad.c: In function 'samsung_keypad_irq':
> >>>> drivers/input/keyboard/samsung-keypad.c:170: error: 'TASK_UNINTERRUPTIBLE'
> >>> undeclared (first use in this function)
> >>>> drivers/input/keyboard/samsung-keypad.c:170: error: (Each undeclared identifier
> >>> is reported only once
> >>>> drivers/input/keyboard/samsung-keypad.c:170: error: for each function it appears
> >>> in.)
> >>>> drivers/input/keyboard/samsung-keypad.c:170: error: implicit declaration of
> >>> function 'schedule_timeout'
> >>>> drivers/input/keyboard/samsung-keypad.c: In function 'samsung_keypad_stop':
> >>>> drivers/input/keyboard/samsung-keypad.c:202: error: 'TASK_NORMAL'
> >>> undeclared (first use in this function)
> >>>> make[3]: *** [drivers/input/keyboard/samsung-keypad.o] Error 1
> >>>>
> >>> This error occurs on s5pc100_defconfig having disabled CONFIG_PREEMPT
> >>> option. I think sched.h should be included to remove like this
> >>> dependency in driver, are there other ways?
> >> I'm not sure root cause is that. But as you said, I think need inclusion it for prevent the problem.
> >> Actually didn't happen it before..so maybe the some core functions have moved between rc-3 and earlier versions...
> > 
> > The sched.h is included by below path.
> > 
> > interrupt.h -> hardirq.h -> smp_lock.h -> sched.h
> > 
> > The smp_lock.h in hardirq.h is included if CONFIG_PREEMPT is defined. 
> > The samsung keypad driver haven't needed including sched.h before
> > Dmitry's patch is applied..
> > 
> >> Anyway, if no any issues, could you please re-submit updated it soon?
> > 
> > I haven't get yet Dmitry's review of v6 patch set, so i am waiting it.
> > 
> 
> Ping.
> 
> Do you have any feedback? If ok, i want to go to input tree or samsung
> tree these added sched.h including.

I applied the patch adding samsung-keypad.c and the platform data
arch/arm/plat-samsung/include/plat/keypad.h and I expect that
patches to actually enable keypad will go through appropriate
platform tree(s).

The only caveat is that I removed declarations for copying platform data
around and for gpio config function - if it is there there is no point
of invoking it through the pointer in platform data.

Overall I am confused why you set up keypad in platform code in the
way you do. I'd put the device definitions and all supporting functions
in the same module that registers platform device and be done with it.

Thanks.

-- 
Dmitry

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

* Re: [PATCH v6 3/3] input: samsung-keypad - Add samsung keypad driver
  2010-07-21  8:07                 ` Dmitry Torokhov
@ 2010-07-21  9:01                   ` Joonyoung Shim
  -1 siblings, 0 replies; 42+ messages in thread
From: Joonyoung Shim @ 2010-07-21  9:01 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: Kukjin Kim, linux-samsung-soc, kyungmin.park, ben-linux,
	linux-input, ch.naveen, linux-arm-kernel

On 7/21/2010 5:07 PM, Dmitry Torokhov wrote:
> Hi Joonyoung,
> 
> On Wed, Jul 21, 2010 at 02:42:22PM +0900, Joonyoung Shim wrote:
>> Hi, Dmitry.
>>
>> On 7/9/2010 4:39 PM, Joonyoung Shim wrote:
>>> On 7/9/2010 4:07 PM, Kukjin Kim wrote:
>>>> Joonyoung Shim wrote:
>>>>> On 7/7/2010 8:52 AM, Kukjin Kim wrote:
>>>>>> Joonyoung Shim wrote:
>>>>>>> Hi, Naveen.
>>>>>>>
>>>>>>> On 6/28/2010 8:33 PM, Joonyoung Shim wrote:
>>>>>>>> This patch adds support for keypad driver running on Samsung cpus. This
>>>>>>>> driver is tested on GONI and Aquila board using S5PC110 cpu.
>>>>>>>>
>>>>>>>> Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
>>>>>>>> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
>>>>>>>> ---
>>>>>>>>  drivers/input/keyboard/Kconfig          |    9 +
>>>>>>>>  drivers/input/keyboard/Makefile         |    1 +
>>>>>>>>  drivers/input/keyboard/samsung-keypad.c |  491
>>>>>>> +++++++++++++++++++++++++++++++
>>>>>>>>  3 files changed, 501 insertions(+), 0 deletions(-)
>>>>>>>>  create mode 100644 drivers/input/keyboard/samsung-keypad.c
>>>>>>>>
>>>>>>> Could you please test this v6 keypad driver on your various targets?
>>>>>> Hi,
>>>>>>
>>>>>> I received the test result from Naveen.
>>>>>> And now he is debugging about that.
>>>>>>
>>>>>> ..his e-mail client has some problem..so I replied...
>>>>>>
>>>>>> ---
>>>>>> From: Naveen Ch
>>>>>>
>>>>>> I've tested with v6 patches and they are working fine on SMDK6410, SMDKC100
>>>>> and SMDKV210, except for some header inclusion (linux/sched.h) in samsung-
>>>>> keypad.c.
>>>>>> The build breaking error is like following:
>>>>>> (make s5pc100_defconfig and select input->keypad->samsung keypad)
>>>>>>
>>>>>> drivers/input/keyboard/samsung-keypad.c: In function 'samsung_keypad_irq':
>>>>>> drivers/input/keyboard/samsung-keypad.c:170: error: 'TASK_UNINTERRUPTIBLE'
>>>>> undeclared (first use in this function)
>>>>>> drivers/input/keyboard/samsung-keypad.c:170: error: (Each undeclared identifier
>>>>> is reported only once
>>>>>> drivers/input/keyboard/samsung-keypad.c:170: error: for each function it appears
>>>>> in.)
>>>>>> drivers/input/keyboard/samsung-keypad.c:170: error: implicit declaration of
>>>>> function 'schedule_timeout'
>>>>>> drivers/input/keyboard/samsung-keypad.c: In function 'samsung_keypad_stop':
>>>>>> drivers/input/keyboard/samsung-keypad.c:202: error: 'TASK_NORMAL'
>>>>> undeclared (first use in this function)
>>>>>> make[3]: *** [drivers/input/keyboard/samsung-keypad.o] Error 1
>>>>>>
>>>>> This error occurs on s5pc100_defconfig having disabled CONFIG_PREEMPT
>>>>> option. I think sched.h should be included to remove like this
>>>>> dependency in driver, are there other ways?
>>>> I'm not sure root cause is that. But as you said, I think need inclusion it for prevent the problem.
>>>> Actually didn't happen it before..so maybe the some core functions have moved between rc-3 and earlier versions...
>>> The sched.h is included by below path.
>>>
>>> interrupt.h -> hardirq.h -> smp_lock.h -> sched.h
>>>
>>> The smp_lock.h in hardirq.h is included if CONFIG_PREEMPT is defined. 
>>> The samsung keypad driver haven't needed including sched.h before
>>> Dmitry's patch is applied..
>>>
>>>> Anyway, if no any issues, could you please re-submit updated it soon?
>>> I haven't get yet Dmitry's review of v6 patch set, so i am waiting it.
>>>
>> Ping.
>>
>> Do you have any feedback? If ok, i want to go to input tree or samsung
>> tree these added sched.h including.
> 
> I applied the patch adding samsung-keypad.c and the platform data
> arch/arm/plat-samsung/include/plat/keypad.h and I expect that
> patches to actually enable keypad will go through appropriate
> platform tree(s).
> 

OK, the rest will go through samsung platform tree

> The only caveat is that I removed declarations for copying platform data
> around and for gpio config function - if it is there there is no point
> of invoking it through the pointer in platform data.
> 

I agree, but currently samsung platform framework uses such this way. I
believe these can change later at once.

> Overall I am confused why you set up keypad in platform code in the
> way you do. I'd put the device definitions and all supporting functions
> in the same module that registers platform device and be done with it.
> 

Thanks.

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

* [PATCH v6 3/3] input: samsung-keypad - Add samsung keypad driver
@ 2010-07-21  9:01                   ` Joonyoung Shim
  0 siblings, 0 replies; 42+ messages in thread
From: Joonyoung Shim @ 2010-07-21  9:01 UTC (permalink / raw)
  To: linux-arm-kernel

On 7/21/2010 5:07 PM, Dmitry Torokhov wrote:
> Hi Joonyoung,
> 
> On Wed, Jul 21, 2010 at 02:42:22PM +0900, Joonyoung Shim wrote:
>> Hi, Dmitry.
>>
>> On 7/9/2010 4:39 PM, Joonyoung Shim wrote:
>>> On 7/9/2010 4:07 PM, Kukjin Kim wrote:
>>>> Joonyoung Shim wrote:
>>>>> On 7/7/2010 8:52 AM, Kukjin Kim wrote:
>>>>>> Joonyoung Shim wrote:
>>>>>>> Hi, Naveen.
>>>>>>>
>>>>>>> On 6/28/2010 8:33 PM, Joonyoung Shim wrote:
>>>>>>>> This patch adds support for keypad driver running on Samsung cpus. This
>>>>>>>> driver is tested on GONI and Aquila board using S5PC110 cpu.
>>>>>>>>
>>>>>>>> Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
>>>>>>>> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
>>>>>>>> ---
>>>>>>>>  drivers/input/keyboard/Kconfig          |    9 +
>>>>>>>>  drivers/input/keyboard/Makefile         |    1 +
>>>>>>>>  drivers/input/keyboard/samsung-keypad.c |  491
>>>>>>> +++++++++++++++++++++++++++++++
>>>>>>>>  3 files changed, 501 insertions(+), 0 deletions(-)
>>>>>>>>  create mode 100644 drivers/input/keyboard/samsung-keypad.c
>>>>>>>>
>>>>>>> Could you please test this v6 keypad driver on your various targets?
>>>>>> Hi,
>>>>>>
>>>>>> I received the test result from Naveen.
>>>>>> And now he is debugging about that.
>>>>>>
>>>>>> ..his e-mail client has some problem..so I replied...
>>>>>>
>>>>>> ---
>>>>>> From: Naveen Ch
>>>>>>
>>>>>> I've tested with v6 patches and they are working fine on SMDK6410, SMDKC100
>>>>> and SMDKV210, except for some header inclusion (linux/sched.h) in samsung-
>>>>> keypad.c.
>>>>>> The build breaking error is like following:
>>>>>> (make s5pc100_defconfig and select input->keypad->samsung keypad)
>>>>>>
>>>>>> drivers/input/keyboard/samsung-keypad.c: In function 'samsung_keypad_irq':
>>>>>> drivers/input/keyboard/samsung-keypad.c:170: error: 'TASK_UNINTERRUPTIBLE'
>>>>> undeclared (first use in this function)
>>>>>> drivers/input/keyboard/samsung-keypad.c:170: error: (Each undeclared identifier
>>>>> is reported only once
>>>>>> drivers/input/keyboard/samsung-keypad.c:170: error: for each function it appears
>>>>> in.)
>>>>>> drivers/input/keyboard/samsung-keypad.c:170: error: implicit declaration of
>>>>> function 'schedule_timeout'
>>>>>> drivers/input/keyboard/samsung-keypad.c: In function 'samsung_keypad_stop':
>>>>>> drivers/input/keyboard/samsung-keypad.c:202: error: 'TASK_NORMAL'
>>>>> undeclared (first use in this function)
>>>>>> make[3]: *** [drivers/input/keyboard/samsung-keypad.o] Error 1
>>>>>>
>>>>> This error occurs on s5pc100_defconfig having disabled CONFIG_PREEMPT
>>>>> option. I think sched.h should be included to remove like this
>>>>> dependency in driver, are there other ways?
>>>> I'm not sure root cause is that. But as you said, I think need inclusion it for prevent the problem.
>>>> Actually didn't happen it before..so maybe the some core functions have moved between rc-3 and earlier versions...
>>> The sched.h is included by below path.
>>>
>>> interrupt.h -> hardirq.h -> smp_lock.h -> sched.h
>>>
>>> The smp_lock.h in hardirq.h is included if CONFIG_PREEMPT is defined. 
>>> The samsung keypad driver haven't needed including sched.h before
>>> Dmitry's patch is applied..
>>>
>>>> Anyway, if no any issues, could you please re-submit updated it soon?
>>> I haven't get yet Dmitry's review of v6 patch set, so i am waiting it.
>>>
>> Ping.
>>
>> Do you have any feedback? If ok, i want to go to input tree or samsung
>> tree these added sched.h including.
> 
> I applied the patch adding samsung-keypad.c and the platform data
> arch/arm/plat-samsung/include/plat/keypad.h and I expect that
> patches to actually enable keypad will go through appropriate
> platform tree(s).
> 

OK, the rest will go through samsung platform tree

> The only caveat is that I removed declarations for copying platform data
> around and for gpio config function - if it is there there is no point
> of invoking it through the pointer in platform data.
> 

I agree, but currently samsung platform framework uses such this way. I
believe these can change later at once.

> Overall I am confused why you set up keypad in platform code in the
> way you do. I'd put the device definitions and all supporting functions
> in the same module that registers platform device and be done with it.
> 

Thanks.

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

* RE: [PATCH v6 3/3] input: samsung-keypad - Add samsung keypad driver
  2010-07-21  9:01                   ` Joonyoung Shim
@ 2010-07-21 12:39                     ` Kukjin Kim
  -1 siblings, 0 replies; 42+ messages in thread
From: Kukjin Kim @ 2010-07-21 12:39 UTC (permalink / raw)
  To: 'Joonyoung Shim', 'Dmitry Torokhov'
  Cc: linux-samsung-soc, kyungmin.park, ben-linux, linux-input,
	ch.naveen, linux-arm-kernel

Joonyoung Shim wrote:
> 
> On 7/21/2010 5:07 PM, Dmitry Torokhov wrote:
> > Hi Joonyoung,
> >
> > On Wed, Jul 21, 2010 at 02:42:22PM +0900, Joonyoung Shim wrote:
> >> Hi, Dmitry.
> >>
> >> On 7/9/2010 4:39 PM, Joonyoung Shim wrote:
> >>> On 7/9/2010 4:07 PM, Kukjin Kim wrote:
> >>>> Joonyoung Shim wrote:
> >>>>> On 7/7/2010 8:52 AM, Kukjin Kim wrote:
> >>>>>> Joonyoung Shim wrote:
> >>>>>>> Hi, Naveen.
> >>>>>>>
> >>>>>>> On 6/28/2010 8:33 PM, Joonyoung Shim wrote:
> >>>>>>>> This patch adds support for keypad driver running on Samsung cpus.
> This
> >>>>>>>> driver is tested on GONI and Aquila board using S5PC110 cpu.
> >>>>>>>>
> >>>>>>>> Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
> >>>>>>>> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> >>>>>>>> ---
> >>>>>>>>  drivers/input/keyboard/Kconfig          |    9 +
> >>>>>>>>  drivers/input/keyboard/Makefile         |    1 +
> >>>>>>>>  drivers/input/keyboard/samsung-keypad.c |  491
> >>>>>>> +++++++++++++++++++++++++++++++
> >>>>>>>>  3 files changed, 501 insertions(+), 0 deletions(-)
> >>>>>>>>  create mode 100644 drivers/input/keyboard/samsung-keypad.c
> >>>>>>>>
> >>>>>>> Could you please test this v6 keypad driver on your various targets?
> >>>>>> Hi,
> >>>>>>
> >>>>>> I received the test result from Naveen.
> >>>>>> And now he is debugging about that.
> >>>>>>
> >>>>>> ..his e-mail client has some problem..so I replied...
> >>>>>>
> >>>>>> ---
> >>>>>> From: Naveen Ch
> >>>>>>
> >>>>>> I've tested with v6 patches and they are working fine on SMDK6410,
> SMDKC100
> >>>>> and SMDKV210, except for some header inclusion (linux/sched.h) in
> samsung-
> >>>>> keypad.c.
> >>>>>> The build breaking error is like following:
> >>>>>> (make s5pc100_defconfig and select input->keypad->samsung keypad)
> >>>>>>
> >>>>>> drivers/input/keyboard/samsung-keypad.c: In function
> 'samsung_keypad_irq':
> >>>>>> drivers/input/keyboard/samsung-keypad.c:170: error:
> 'TASK_UNINTERRUPTIBLE'
> >>>>> undeclared (first use in this function)
> >>>>>> drivers/input/keyboard/samsung-keypad.c:170: error: (Each undeclared
> identifier
> >>>>> is reported only once
> >>>>>> drivers/input/keyboard/samsung-keypad.c:170: error: for each function it
> appears
> >>>>> in.)
> >>>>>> drivers/input/keyboard/samsung-keypad.c:170: error: implicit declaration
> of
> >>>>> function 'schedule_timeout'
> >>>>>> drivers/input/keyboard/samsung-keypad.c: In function
> 'samsung_keypad_stop':
> >>>>>> drivers/input/keyboard/samsung-keypad.c:202: error: 'TASK_NORMAL'
> >>>>> undeclared (first use in this function)
> >>>>>> make[3]: *** [drivers/input/keyboard/samsung-keypad.o] Error 1
> >>>>>>
> >>>>> This error occurs on s5pc100_defconfig having disabled
> CONFIG_PREEMPT
> >>>>> option. I think sched.h should be included to remove like this
> >>>>> dependency in driver, are there other ways?
> >>>> I'm not sure root cause is that. But as you said, I think need inclusion it for
> prevent the problem.
> >>>> Actually didn't happen it before..so maybe the some core functions have
> moved between rc-3 and earlier versions...
> >>> The sched.h is included by below path.
> >>>
> >>> interrupt.h -> hardirq.h -> smp_lock.h -> sched.h
> >>>
> >>> The smp_lock.h in hardirq.h is included if CONFIG_PREEMPT is defined.
> >>> The samsung keypad driver haven't needed including sched.h before
> >>> Dmitry's patch is applied..
> >>>
> >>>> Anyway, if no any issues, could you please re-submit updated it soon?
> >>> I haven't get yet Dmitry's review of v6 patch set, so i am waiting it.
> >>>
> >> Ping.
> >>
> >> Do you have any feedback? If ok, i want to go to input tree or samsung
> >> tree these added sched.h including.
> >
> > I applied the patch adding samsung-keypad.c and the platform data
> > arch/arm/plat-samsung/include/plat/keypad.h and I expect that
> > patches to actually enable keypad will go through appropriate
> > platform tree(s).
> >
> 
> OK, the rest will go through samsung platform tree
> 
Ok..will apply.

> > The only caveat is that I removed declarations for copying platform data
> > around and for gpio config function - if it is there there is no point
> > of invoking it through the pointer in platform data.
> >
> 
> I agree, but currently samsung platform framework uses such this way. I
> believe these can change later at once.
> 
> > Overall I am confused why you set up keypad in platform code in the
> > way you do. I'd put the device definitions and all supporting functions
> > in the same module that registers platform device and be done with it.
> >
> 
> Thanks.


Thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

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

* [PATCH v6 3/3] input: samsung-keypad - Add samsung keypad driver
@ 2010-07-21 12:39                     ` Kukjin Kim
  0 siblings, 0 replies; 42+ messages in thread
From: Kukjin Kim @ 2010-07-21 12:39 UTC (permalink / raw)
  To: linux-arm-kernel

Joonyoung Shim wrote:
> 
> On 7/21/2010 5:07 PM, Dmitry Torokhov wrote:
> > Hi Joonyoung,
> >
> > On Wed, Jul 21, 2010 at 02:42:22PM +0900, Joonyoung Shim wrote:
> >> Hi, Dmitry.
> >>
> >> On 7/9/2010 4:39 PM, Joonyoung Shim wrote:
> >>> On 7/9/2010 4:07 PM, Kukjin Kim wrote:
> >>>> Joonyoung Shim wrote:
> >>>>> On 7/7/2010 8:52 AM, Kukjin Kim wrote:
> >>>>>> Joonyoung Shim wrote:
> >>>>>>> Hi, Naveen.
> >>>>>>>
> >>>>>>> On 6/28/2010 8:33 PM, Joonyoung Shim wrote:
> >>>>>>>> This patch adds support for keypad driver running on Samsung cpus.
> This
> >>>>>>>> driver is tested on GONI and Aquila board using S5PC110 cpu.
> >>>>>>>>
> >>>>>>>> Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
> >>>>>>>> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> >>>>>>>> ---
> >>>>>>>>  drivers/input/keyboard/Kconfig          |    9 +
> >>>>>>>>  drivers/input/keyboard/Makefile         |    1 +
> >>>>>>>>  drivers/input/keyboard/samsung-keypad.c |  491
> >>>>>>> +++++++++++++++++++++++++++++++
> >>>>>>>>  3 files changed, 501 insertions(+), 0 deletions(-)
> >>>>>>>>  create mode 100644 drivers/input/keyboard/samsung-keypad.c
> >>>>>>>>
> >>>>>>> Could you please test this v6 keypad driver on your various targets?
> >>>>>> Hi,
> >>>>>>
> >>>>>> I received the test result from Naveen.
> >>>>>> And now he is debugging about that.
> >>>>>>
> >>>>>> ..his e-mail client has some problem..so I replied...
> >>>>>>
> >>>>>> ---
> >>>>>> From: Naveen Ch
> >>>>>>
> >>>>>> I've tested with v6 patches and they are working fine on SMDK6410,
> SMDKC100
> >>>>> and SMDKV210, except for some header inclusion (linux/sched.h) in
> samsung-
> >>>>> keypad.c.
> >>>>>> The build breaking error is like following:
> >>>>>> (make s5pc100_defconfig and select input->keypad->samsung keypad)
> >>>>>>
> >>>>>> drivers/input/keyboard/samsung-keypad.c: In function
> 'samsung_keypad_irq':
> >>>>>> drivers/input/keyboard/samsung-keypad.c:170: error:
> 'TASK_UNINTERRUPTIBLE'
> >>>>> undeclared (first use in this function)
> >>>>>> drivers/input/keyboard/samsung-keypad.c:170: error: (Each undeclared
> identifier
> >>>>> is reported only once
> >>>>>> drivers/input/keyboard/samsung-keypad.c:170: error: for each function it
> appears
> >>>>> in.)
> >>>>>> drivers/input/keyboard/samsung-keypad.c:170: error: implicit declaration
> of
> >>>>> function 'schedule_timeout'
> >>>>>> drivers/input/keyboard/samsung-keypad.c: In function
> 'samsung_keypad_stop':
> >>>>>> drivers/input/keyboard/samsung-keypad.c:202: error: 'TASK_NORMAL'
> >>>>> undeclared (first use in this function)
> >>>>>> make[3]: *** [drivers/input/keyboard/samsung-keypad.o] Error 1
> >>>>>>
> >>>>> This error occurs on s5pc100_defconfig having disabled
> CONFIG_PREEMPT
> >>>>> option. I think sched.h should be included to remove like this
> >>>>> dependency in driver, are there other ways?
> >>>> I'm not sure root cause is that. But as you said, I think need inclusion it for
> prevent the problem.
> >>>> Actually didn't happen it before..so maybe the some core functions have
> moved between rc-3 and earlier versions...
> >>> The sched.h is included by below path.
> >>>
> >>> interrupt.h -> hardirq.h -> smp_lock.h -> sched.h
> >>>
> >>> The smp_lock.h in hardirq.h is included if CONFIG_PREEMPT is defined.
> >>> The samsung keypad driver haven't needed including sched.h before
> >>> Dmitry's patch is applied..
> >>>
> >>>> Anyway, if no any issues, could you please re-submit updated it soon?
> >>> I haven't get yet Dmitry's review of v6 patch set, so i am waiting it.
> >>>
> >> Ping.
> >>
> >> Do you have any feedback? If ok, i want to go to input tree or samsung
> >> tree these added sched.h including.
> >
> > I applied the patch adding samsung-keypad.c and the platform data
> > arch/arm/plat-samsung/include/plat/keypad.h and I expect that
> > patches to actually enable keypad will go through appropriate
> > platform tree(s).
> >
> 
> OK, the rest will go through samsung platform tree
> 
Ok..will apply.

> > The only caveat is that I removed declarations for copying platform data
> > around and for gpio config function - if it is there there is no point
> > of invoking it through the pointer in platform data.
> >
> 
> I agree, but currently samsung platform framework uses such this way. I
> believe these can change later at once.
> 
> > Overall I am confused why you set up keypad in platform code in the
> > way you do. I'd put the device definitions and all supporting functions
> > in the same module that registers platform device and be done with it.
> >
> 
> Thanks.


Thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

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

* Re: [PATCH v6 3/3] input: samsung-keypad - Add samsung keypad driver
  2010-07-21 12:39                     ` Kukjin Kim
@ 2010-08-02  3:09                       ` Joonyoung Shim
  -1 siblings, 0 replies; 42+ messages in thread
From: Joonyoung Shim @ 2010-08-02  3:09 UTC (permalink / raw)
  To: Kukjin Kim
  Cc: 'Dmitry Torokhov',
	linux-samsung-soc, kyungmin.park, ben-linux, linux-input,
	ch.naveen, linux-arm-kernel

Hi, I came back from vacation.

>>>> Do you have any feedback? If ok, i want to go to input tree or samsung
>>>> tree these added sched.h including.
>>> I applied the patch adding samsung-keypad.c and the platform data
>>> arch/arm/plat-samsung/include/plat/keypad.h and I expect that
>>> patches to actually enable keypad will go through appropriate
>>> platform tree(s).
>>>
>> OK, the rest will go through samsung platform tree
>>
> Ok..will apply.
> 

Kukjin, could you remove keypad.h on the commit "ARM: SAMSUNG: Add 
keypad device support" of the samsung platform tree. The keypad.h file
was included on input tree.
(http://git.kernel.org/?p=linux/kernel/git/dtor/input.git;a=commit;h=0fffed27f92d9d7a34de9fe017b7082b5958bb93)

>>> The only caveat is that I removed declarations for copying platform data
>>> around and for gpio config function - if it is there there is no point
>>> of invoking it through the pointer in platform data.
>>>
>> I agree, but currently samsung platform framework uses such this way. I
>> believe these can change later at once.
>>

Dmitry, could you apply original keypad.h. We can get problem such this
on most samsung device driver too. As i said before, these can be fixed
later.

>>> Overall I am confused why you set up keypad in platform code in the
>>> way you do. I'd put the device definitions and all supporting functions
>>> in the same module that registers platform device and be done with it.
>>>
>> Thanks.
> 
> 
> Thanks.
> 
> Best regards,
> Kgene.
> --
> Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
> SW Solution Development Team, Samsung Electronics Co., Ltd.
> 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
> 

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

* [PATCH v6 3/3] input: samsung-keypad - Add samsung keypad driver
@ 2010-08-02  3:09                       ` Joonyoung Shim
  0 siblings, 0 replies; 42+ messages in thread
From: Joonyoung Shim @ 2010-08-02  3:09 UTC (permalink / raw)
  To: linux-arm-kernel

Hi, I came back from vacation.

>>>> Do you have any feedback? If ok, i want to go to input tree or samsung
>>>> tree these added sched.h including.
>>> I applied the patch adding samsung-keypad.c and the platform data
>>> arch/arm/plat-samsung/include/plat/keypad.h and I expect that
>>> patches to actually enable keypad will go through appropriate
>>> platform tree(s).
>>>
>> OK, the rest will go through samsung platform tree
>>
> Ok..will apply.
> 

Kukjin, could you remove keypad.h on the commit "ARM: SAMSUNG: Add 
keypad device support" of the samsung platform tree. The keypad.h file
was included on input tree.
(http://git.kernel.org/?p=linux/kernel/git/dtor/input.git;a=commit;h=0fffed27f92d9d7a34de9fe017b7082b5958bb93)

>>> The only caveat is that I removed declarations for copying platform data
>>> around and for gpio config function - if it is there there is no point
>>> of invoking it through the pointer in platform data.
>>>
>> I agree, but currently samsung platform framework uses such this way. I
>> believe these can change later at once.
>>

Dmitry, could you apply original keypad.h. We can get problem such this
on most samsung device driver too. As i said before, these can be fixed
later.

>>> Overall I am confused why you set up keypad in platform code in the
>>> way you do. I'd put the device definitions and all supporting functions
>>> in the same module that registers platform device and be done with it.
>>>
>> Thanks.
> 
> 
> Thanks.
> 
> Best regards,
> Kgene.
> --
> Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
> SW Solution Development Team, Samsung Electronics Co., Ltd.
> 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
> 

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

* RE: [PATCH v6 3/3] input: samsung-keypad - Add samsung keypad driver
  2010-08-02  3:09                       ` Joonyoung Shim
@ 2010-08-02  3:38                         ` Kukjin Kim
  -1 siblings, 0 replies; 42+ messages in thread
From: Kukjin Kim @ 2010-08-02  3:38 UTC (permalink / raw)
  To: 'Joonyoung Shim'
  Cc: linux-samsung-soc, 'Dmitry Torokhov',
	kyungmin.park, ben-linux, linux-input, ch.naveen,
	linux-arm-kernel

Joonyoung Shim wrote:
> 
> Hi, I came back from vacation.
> 
> >>>> Do you have any feedback? If ok, i want to go to input tree or samsung
> >>>> tree these added sched.h including.
> >>> I applied the patch adding samsung-keypad.c and the platform data
> >>> arch/arm/plat-samsung/include/plat/keypad.h and I expect that
> >>> patches to actually enable keypad will go through appropriate
> >>> platform tree(s).
> >>>
> >> OK, the rest will go through samsung platform tree
> >>
> > Ok..will apply.
> >
> 
> Kukjin, could you remove keypad.h on the commit "ARM: SAMSUNG: Add
> keypad device support" of the samsung platform tree. The keypad.h file
> was included on input tree.
> (http://git.kernel.org/?p=linux/kernel/git/dtor/input.git;a=commit;h=0fffed27f92d9d7
> a34de9fe017b7082b5958bb93)

You mean in plat-samsung/dev-keypad.c?
If remove inclusion plat/keypad.h in there, following build error happens.

arch/arm/plat-samsung/dev-keypad.c:41: warning: 'struct samsung_keypad_platdata' declared inside parameter list
arch/arm/plat-samsung/dev-keypad.c:41: warning: its scope is only this definition or declaration, which is probably not what you want
arch/arm/plat-samsung/dev-keypad.c: In function 'samsung_keypad_set_platdata':
arch/arm/plat-samsung/dev-keypad.c:50: error: invalid application of 'sizeof' to incomplete type 'struct samsung_keypad_platdata'
arch/arm/plat-samsung/dev-keypad.c:54: error: dereferencing pointer to incomplete type
arch/arm/plat-samsung/dev-keypad.c:55: error: dereferencing pointer to incomplete type
arch/arm/plat-samsung/dev-keypad.c:55: error: 'samsung_keypad_cfg_gpio' undeclared (first use in this function)
arch/arm/plat-samsung/dev-keypad.c:55: error: (Each undeclared identifier is reported only once
arch/arm/plat-samsung/dev-keypad.c:55: error: for each function it appears in.)
make[1]: *** [arch/arm/plat-samsung/dev-keypad.o] Error 1

As you know, released 35 today. So we have no much time for this merge window.

> 
> >>> The only caveat is that I removed declarations for copying platform data
> >>> around and for gpio config function - if it is there there is no point
> >>> of invoking it through the pointer in platform data.
> >>>
> >> I agree, but currently samsung platform framework uses such this way. I
> >> believe these can change later at once.
> >>
> 
> Dmitry, could you apply original keypad.h. We can get problem such this
> on most samsung device driver too. As i said before, these can be fixed
> later.
> 
> >>> Overall I am confused why you set up keypad in platform code in the
> >>> way you do. I'd put the device definitions and all supporting functions
> >>> in the same module that registers platform device and be done with it.
> >>>
> >> Thanks.
> >
> >

Thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

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

* [PATCH v6 3/3] input: samsung-keypad - Add samsung keypad driver
@ 2010-08-02  3:38                         ` Kukjin Kim
  0 siblings, 0 replies; 42+ messages in thread
From: Kukjin Kim @ 2010-08-02  3:38 UTC (permalink / raw)
  To: linux-arm-kernel

Joonyoung Shim wrote:
> 
> Hi, I came back from vacation.
> 
> >>>> Do you have any feedback? If ok, i want to go to input tree or samsung
> >>>> tree these added sched.h including.
> >>> I applied the patch adding samsung-keypad.c and the platform data
> >>> arch/arm/plat-samsung/include/plat/keypad.h and I expect that
> >>> patches to actually enable keypad will go through appropriate
> >>> platform tree(s).
> >>>
> >> OK, the rest will go through samsung platform tree
> >>
> > Ok..will apply.
> >
> 
> Kukjin, could you remove keypad.h on the commit "ARM: SAMSUNG: Add
> keypad device support" of the samsung platform tree. The keypad.h file
> was included on input tree.
> (http://git.kernel.org/?p=linux/kernel/git/dtor/input.git;a=commit;h=0fffed27f92d9d7
> a34de9fe017b7082b5958bb93)

You mean in plat-samsung/dev-keypad.c?
If remove inclusion plat/keypad.h in there, following build error happens.

arch/arm/plat-samsung/dev-keypad.c:41: warning: 'struct samsung_keypad_platdata' declared inside parameter list
arch/arm/plat-samsung/dev-keypad.c:41: warning: its scope is only this definition or declaration, which is probably not what you want
arch/arm/plat-samsung/dev-keypad.c: In function 'samsung_keypad_set_platdata':
arch/arm/plat-samsung/dev-keypad.c:50: error: invalid application of 'sizeof' to incomplete type 'struct samsung_keypad_platdata'
arch/arm/plat-samsung/dev-keypad.c:54: error: dereferencing pointer to incomplete type
arch/arm/plat-samsung/dev-keypad.c:55: error: dereferencing pointer to incomplete type
arch/arm/plat-samsung/dev-keypad.c:55: error: 'samsung_keypad_cfg_gpio' undeclared (first use in this function)
arch/arm/plat-samsung/dev-keypad.c:55: error: (Each undeclared identifier is reported only once
arch/arm/plat-samsung/dev-keypad.c:55: error: for each function it appears in.)
make[1]: *** [arch/arm/plat-samsung/dev-keypad.o] Error 1

As you know, released 35 today. So we have no much time for this merge window.

> 
> >>> The only caveat is that I removed declarations for copying platform data
> >>> around and for gpio config function - if it is there there is no point
> >>> of invoking it through the pointer in platform data.
> >>>
> >> I agree, but currently samsung platform framework uses such this way. I
> >> believe these can change later at once.
> >>
> 
> Dmitry, could you apply original keypad.h. We can get problem such this
> on most samsung device driver too. As i said before, these can be fixed
> later.
> 
> >>> Overall I am confused why you set up keypad in platform code in the
> >>> way you do. I'd put the device definitions and all supporting functions
> >>> in the same module that registers platform device and be done with it.
> >>>
> >> Thanks.
> >
> >

Thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

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

* Re: [PATCH v6 3/3] input: samsung-keypad - Add samsung keypad driver
  2010-08-02  3:38                         ` Kukjin Kim
@ 2010-08-02  4:41                           ` Joonyoung Shim
  -1 siblings, 0 replies; 42+ messages in thread
From: Joonyoung Shim @ 2010-08-02  4:41 UTC (permalink / raw)
  To: Kukjin Kim
  Cc: linux-samsung-soc, 'Dmitry Torokhov',
	kyungmin.park, ben-linux, linux-input, ch.naveen,
	linux-arm-kernel

On 8/2/2010 12:38 PM, Kukjin Kim wrote:
> Joonyoung Shim wrote:
>> Hi, I came back from vacation.
>>
>>>>>> Do you have any feedback? If ok, i want to go to input tree or samsung
>>>>>> tree these added sched.h including.
>>>>> I applied the patch adding samsung-keypad.c and the platform data
>>>>> arch/arm/plat-samsung/include/plat/keypad.h and I expect that
>>>>> patches to actually enable keypad will go through appropriate
>>>>> platform tree(s).
>>>>>
>>>> OK, the rest will go through samsung platform tree
>>>>
>>> Ok..will apply.
>>>
>> Kukjin, could you remove keypad.h on the commit "ARM: SAMSUNG: Add
>> keypad device support" of the samsung platform tree. The keypad.h file
>> was included on input tree.
>> (http://git.kernel.org/?p=linux/kernel/git/dtor/input.git;a=commit;h=0fffed27f92d9d7
>> a34de9fe017b7082b5958bb93)
> 
> You mean in plat-samsung/dev-keypad.c?
> If remove inclusion plat/keypad.h in there, following build error happens.
> 

No. I mean to remove arch/arm/plat-samsung/include/plat/keypad.h file on
samsung platform tree, it was applied on input tree already. If needs, i 
can repost.

> arch/arm/plat-samsung/dev-keypad.c:41: warning: 'struct samsung_keypad_platdata' declared inside parameter list
> arch/arm/plat-samsung/dev-keypad.c:41: warning: its scope is only this definition or declaration, which is probably not what you want
> arch/arm/plat-samsung/dev-keypad.c: In function 'samsung_keypad_set_platdata':
> arch/arm/plat-samsung/dev-keypad.c:50: error: invalid application of 'sizeof' to incomplete type 'struct samsung_keypad_platdata'
> arch/arm/plat-samsung/dev-keypad.c:54: error: dereferencing pointer to incomplete type
> arch/arm/plat-samsung/dev-keypad.c:55: error: dereferencing pointer to incomplete type
> arch/arm/plat-samsung/dev-keypad.c:55: error: 'samsung_keypad_cfg_gpio' undeclared (first use in this function)
> arch/arm/plat-samsung/dev-keypad.c:55: error: (Each undeclared identifier is reported only once
> arch/arm/plat-samsung/dev-keypad.c:55: error: for each function it appears in.)
> make[1]: *** [arch/arm/plat-samsung/dev-keypad.o] Error 1
> 
> As you know, released 35 today. So we have no much time for this merge window.
> 

I'm not sure about merge rule, but I think the compile problem can be
solved by merge to 36 of input tree and samsung platform tree.

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

* [PATCH v6 3/3] input: samsung-keypad - Add samsung keypad driver
@ 2010-08-02  4:41                           ` Joonyoung Shim
  0 siblings, 0 replies; 42+ messages in thread
From: Joonyoung Shim @ 2010-08-02  4:41 UTC (permalink / raw)
  To: linux-arm-kernel

On 8/2/2010 12:38 PM, Kukjin Kim wrote:
> Joonyoung Shim wrote:
>> Hi, I came back from vacation.
>>
>>>>>> Do you have any feedback? If ok, i want to go to input tree or samsung
>>>>>> tree these added sched.h including.
>>>>> I applied the patch adding samsung-keypad.c and the platform data
>>>>> arch/arm/plat-samsung/include/plat/keypad.h and I expect that
>>>>> patches to actually enable keypad will go through appropriate
>>>>> platform tree(s).
>>>>>
>>>> OK, the rest will go through samsung platform tree
>>>>
>>> Ok..will apply.
>>>
>> Kukjin, could you remove keypad.h on the commit "ARM: SAMSUNG: Add
>> keypad device support" of the samsung platform tree. The keypad.h file
>> was included on input tree.
>> (http://git.kernel.org/?p=linux/kernel/git/dtor/input.git;a=commit;h=0fffed27f92d9d7
>> a34de9fe017b7082b5958bb93)
> 
> You mean in plat-samsung/dev-keypad.c?
> If remove inclusion plat/keypad.h in there, following build error happens.
> 

No. I mean to remove arch/arm/plat-samsung/include/plat/keypad.h file on
samsung platform tree, it was applied on input tree already. If needs, i 
can repost.

> arch/arm/plat-samsung/dev-keypad.c:41: warning: 'struct samsung_keypad_platdata' declared inside parameter list
> arch/arm/plat-samsung/dev-keypad.c:41: warning: its scope is only this definition or declaration, which is probably not what you want
> arch/arm/plat-samsung/dev-keypad.c: In function 'samsung_keypad_set_platdata':
> arch/arm/plat-samsung/dev-keypad.c:50: error: invalid application of 'sizeof' to incomplete type 'struct samsung_keypad_platdata'
> arch/arm/plat-samsung/dev-keypad.c:54: error: dereferencing pointer to incomplete type
> arch/arm/plat-samsung/dev-keypad.c:55: error: dereferencing pointer to incomplete type
> arch/arm/plat-samsung/dev-keypad.c:55: error: 'samsung_keypad_cfg_gpio' undeclared (first use in this function)
> arch/arm/plat-samsung/dev-keypad.c:55: error: (Each undeclared identifier is reported only once
> arch/arm/plat-samsung/dev-keypad.c:55: error: for each function it appears in.)
> make[1]: *** [arch/arm/plat-samsung/dev-keypad.o] Error 1
> 
> As you know, released 35 today. So we have no much time for this merge window.
> 

I'm not sure about merge rule, but I think the compile problem can be
solved by merge to 36 of input tree and samsung platform tree.

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

* RE: [PATCH v6 3/3] input: samsung-keypad - Add samsung keypad driver
  2010-08-02  4:41                           ` Joonyoung Shim
@ 2010-08-02  5:12                             ` Kukjin Kim
  -1 siblings, 0 replies; 42+ messages in thread
From: Kukjin Kim @ 2010-08-02  5:12 UTC (permalink / raw)
  To: 'Joonyoung Shim'
  Cc: linux-samsung-soc, 'Dmitry Torokhov',
	kyungmin.park, ben-linux, linux-input, ch.naveen,
	linux-arm-kernel

Joonyoung Shim wrote:
> 
> On 8/2/2010 12:38 PM, Kukjin Kim wrote:
> > Joonyoung Shim wrote:
> >> Hi, I came back from vacation.
> >>
> >>>>>> Do you have any feedback? If ok, i want to go to input tree or samsung
> >>>>>> tree these added sched.h including.
> >>>>> I applied the patch adding samsung-keypad.c and the platform data
> >>>>> arch/arm/plat-samsung/include/plat/keypad.h and I expect that
> >>>>> patches to actually enable keypad will go through appropriate
> >>>>> platform tree(s).
> >>>>>
> >>>> OK, the rest will go through samsung platform tree
> >>>>
> >>> Ok..will apply.
> >>>
> >> Kukjin, could you remove keypad.h on the commit "ARM: SAMSUNG: Add
> >> keypad device support" of the samsung platform tree. The keypad.h file
> >> was included on input tree.
> >>
> (http://git.kernel.org/?p=linux/kernel/git/dtor/input.git;a=commit;h=0fffed27f92d9d7
> >> a34de9fe017b7082b5958bb93)
> >
> > You mean in plat-samsung/dev-keypad.c?
> > If remove inclusion plat/keypad.h in there, following build error happens.
> >
> 
> No. I mean to remove arch/arm/plat-samsung/include/plat/keypad.h file on
> samsung platform tree, it was applied on input tree already. If needs, i
> can repost.
> 
If it is not small change like to remove a file in a patch, I think should be re-submitted.
Will drop your previous patch in my tree.

> > arch/arm/plat-samsung/dev-keypad.c:41: warning: 'struct
> samsung_keypad_platdata' declared inside parameter list
> > arch/arm/plat-samsung/dev-keypad.c:41: warning: its scope is only this definition
> or declaration, which is probably not what you want
> > arch/arm/plat-samsung/dev-keypad.c: In function
> 'samsung_keypad_set_platdata':
> > arch/arm/plat-samsung/dev-keypad.c:50: error: invalid application of 'sizeof' to
> incomplete type 'struct samsung_keypad_platdata'
> > arch/arm/plat-samsung/dev-keypad.c:54: error: dereferencing pointer to
> incomplete type
> > arch/arm/plat-samsung/dev-keypad.c:55: error: dereferencing pointer to
> incomplete type
> > arch/arm/plat-samsung/dev-keypad.c:55: error: 'samsung_keypad_cfg_gpio'
> undeclared (first use in this function)
> > arch/arm/plat-samsung/dev-keypad.c:55: error: (Each undeclared identifier is
> reported only once
> > arch/arm/plat-samsung/dev-keypad.c:55: error: for each function it appears in.)
> > make[1]: *** [arch/arm/plat-samsung/dev-keypad.o] Error 1
> >
> > As you know, released 35 today. So we have no much time for this merge
> window.
> >
> 
> I'm not sure about merge rule, but I think the compile problem can be
> solved by merge to 36 of input tree and samsung platform tree.

Hmm...actually, already informed about that on linux-next.
If it's just build problem, I or Dmitry can fix it. However, this is not just that.
I cannot understand how your 'plat/keypad.h' was included to both of patch.
And I'm not sure, should be 'plat/keypad.h' in which tree...

Anyway, as I said, should be solved that as soon as possible....

Thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

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

* [PATCH v6 3/3] input: samsung-keypad - Add samsung keypad driver
@ 2010-08-02  5:12                             ` Kukjin Kim
  0 siblings, 0 replies; 42+ messages in thread
From: Kukjin Kim @ 2010-08-02  5:12 UTC (permalink / raw)
  To: linux-arm-kernel

Joonyoung Shim wrote:
> 
> On 8/2/2010 12:38 PM, Kukjin Kim wrote:
> > Joonyoung Shim wrote:
> >> Hi, I came back from vacation.
> >>
> >>>>>> Do you have any feedback? If ok, i want to go to input tree or samsung
> >>>>>> tree these added sched.h including.
> >>>>> I applied the patch adding samsung-keypad.c and the platform data
> >>>>> arch/arm/plat-samsung/include/plat/keypad.h and I expect that
> >>>>> patches to actually enable keypad will go through appropriate
> >>>>> platform tree(s).
> >>>>>
> >>>> OK, the rest will go through samsung platform tree
> >>>>
> >>> Ok..will apply.
> >>>
> >> Kukjin, could you remove keypad.h on the commit "ARM: SAMSUNG: Add
> >> keypad device support" of the samsung platform tree. The keypad.h file
> >> was included on input tree.
> >>
> (http://git.kernel.org/?p=linux/kernel/git/dtor/input.git;a=commit;h=0fffed27f92d9d7
> >> a34de9fe017b7082b5958bb93)
> >
> > You mean in plat-samsung/dev-keypad.c?
> > If remove inclusion plat/keypad.h in there, following build error happens.
> >
> 
> No. I mean to remove arch/arm/plat-samsung/include/plat/keypad.h file on
> samsung platform tree, it was applied on input tree already. If needs, i
> can repost.
> 
If it is not small change like to remove a file in a patch, I think should be re-submitted.
Will drop your previous patch in my tree.

> > arch/arm/plat-samsung/dev-keypad.c:41: warning: 'struct
> samsung_keypad_platdata' declared inside parameter list
> > arch/arm/plat-samsung/dev-keypad.c:41: warning: its scope is only this definition
> or declaration, which is probably not what you want
> > arch/arm/plat-samsung/dev-keypad.c: In function
> 'samsung_keypad_set_platdata':
> > arch/arm/plat-samsung/dev-keypad.c:50: error: invalid application of 'sizeof' to
> incomplete type 'struct samsung_keypad_platdata'
> > arch/arm/plat-samsung/dev-keypad.c:54: error: dereferencing pointer to
> incomplete type
> > arch/arm/plat-samsung/dev-keypad.c:55: error: dereferencing pointer to
> incomplete type
> > arch/arm/plat-samsung/dev-keypad.c:55: error: 'samsung_keypad_cfg_gpio'
> undeclared (first use in this function)
> > arch/arm/plat-samsung/dev-keypad.c:55: error: (Each undeclared identifier is
> reported only once
> > arch/arm/plat-samsung/dev-keypad.c:55: error: for each function it appears in.)
> > make[1]: *** [arch/arm/plat-samsung/dev-keypad.o] Error 1
> >
> > As you know, released 35 today. So we have no much time for this merge
> window.
> >
> 
> I'm not sure about merge rule, but I think the compile problem can be
> solved by merge to 36 of input tree and samsung platform tree.

Hmm...actually, already informed about that on linux-next.
If it's just build problem, I or Dmitry can fix it. However, this is not just that.
I cannot understand how your 'plat/keypad.h' was included to both of patch.
And I'm not sure, should be 'plat/keypad.h' in which tree...

Anyway, as I said, should be solved that as soon as possible....

Thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

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

* Re: [PATCH v6 3/3] input: samsung-keypad - Add samsung keypad driver
  2010-08-02  5:12                             ` Kukjin Kim
@ 2010-08-02  5:52                               ` Joonyoung Shim
  -1 siblings, 0 replies; 42+ messages in thread
From: Joonyoung Shim @ 2010-08-02  5:52 UTC (permalink / raw)
  To: Kukjin Kim
  Cc: linux-samsung-soc, 'Dmitry Torokhov',
	kyungmin.park, ben-linux, linux-input, ch.naveen,
	linux-arm-kernel

On 8/2/2010 2:12 PM, Kukjin Kim wrote:
> Joonyoung Shim wrote:
>> On 8/2/2010 12:38 PM, Kukjin Kim wrote:
>>> Joonyoung Shim wrote:
>>>> Hi, I came back from vacation.
>>>>
>>>>>>>> Do you have any feedback? If ok, i want to go to input tree or samsung
>>>>>>>> tree these added sched.h including.
>>>>>>> I applied the patch adding samsung-keypad.c and the platform data
>>>>>>> arch/arm/plat-samsung/include/plat/keypad.h and I expect that
>>>>>>> patches to actually enable keypad will go through appropriate
>>>>>>> platform tree(s).
>>>>>>>
>>>>>> OK, the rest will go through samsung platform tree
>>>>>>
>>>>> Ok..will apply.
>>>>>
>>>> Kukjin, could you remove keypad.h on the commit "ARM: SAMSUNG: Add
>>>> keypad device support" of the samsung platform tree. The keypad.h file
>>>> was included on input tree.
>>>>
>> (http://git.kernel.org/?p=linux/kernel/git/dtor/input.git;a=commit;h=0fffed27f92d9d7
>>>> a34de9fe017b7082b5958bb93)
>>> You mean in plat-samsung/dev-keypad.c?
>>> If remove inclusion plat/keypad.h in there, following build error happens.
>>>
>> No. I mean to remove arch/arm/plat-samsung/include/plat/keypad.h file on
>> samsung platform tree, it was applied on input tree already. If needs, i
>> can repost.
>>
> If it is not small change like to remove a file in a patch, I think should be re-submitted.
> Will drop your previous patch in my tree.
> 
>>> arch/arm/plat-samsung/dev-keypad.c:41: warning: 'struct
>> samsung_keypad_platdata' declared inside parameter list
>>> arch/arm/plat-samsung/dev-keypad.c:41: warning: its scope is only this definition
>> or declaration, which is probably not what you want
>>> arch/arm/plat-samsung/dev-keypad.c: In function
>> 'samsung_keypad_set_platdata':
>>> arch/arm/plat-samsung/dev-keypad.c:50: error: invalid application of 'sizeof' to
>> incomplete type 'struct samsung_keypad_platdata'
>>> arch/arm/plat-samsung/dev-keypad.c:54: error: dereferencing pointer to
>> incomplete type
>>> arch/arm/plat-samsung/dev-keypad.c:55: error: dereferencing pointer to
>> incomplete type
>>> arch/arm/plat-samsung/dev-keypad.c:55: error: 'samsung_keypad_cfg_gpio'
>> undeclared (first use in this function)
>>> arch/arm/plat-samsung/dev-keypad.c:55: error: (Each undeclared identifier is
>> reported only once
>>> arch/arm/plat-samsung/dev-keypad.c:55: error: for each function it appears in.)
>>> make[1]: *** [arch/arm/plat-samsung/dev-keypad.o] Error 1
>>>
>>> As you know, released 35 today. So we have no much time for this merge
>> window.
>> I'm not sure about merge rule, but I think the compile problem can be
>> solved by merge to 36 of input tree and samsung platform tree.
> 
> Hmm...actually, already informed about that on linux-next.
> If it's just build problem, I or Dmitry can fix it. However, this is not just that.
> I cannot understand how your 'plat/keypad.h' was included to both of patch.

Please see the prior mail history. The keypad.h file is included only at 
the 1/3 patch in the original patch set, but Dmitry applied the 3/3
patch modified with keypad.h.

The basic problem is that each patches be applied on two tree. It makes
compile errors at the one tree lacking keypad.h file because both tree 
share keypad.h file.

There are two solutions, First, all patches go to one tree. Second, we 
wait for merging to 36 of both tree then apply platform patches.

> And I'm not sure, should be 'plat/keypad.h' in which tree...
> 


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

* [PATCH v6 3/3] input: samsung-keypad - Add samsung keypad driver
@ 2010-08-02  5:52                               ` Joonyoung Shim
  0 siblings, 0 replies; 42+ messages in thread
From: Joonyoung Shim @ 2010-08-02  5:52 UTC (permalink / raw)
  To: linux-arm-kernel

On 8/2/2010 2:12 PM, Kukjin Kim wrote:
> Joonyoung Shim wrote:
>> On 8/2/2010 12:38 PM, Kukjin Kim wrote:
>>> Joonyoung Shim wrote:
>>>> Hi, I came back from vacation.
>>>>
>>>>>>>> Do you have any feedback? If ok, i want to go to input tree or samsung
>>>>>>>> tree these added sched.h including.
>>>>>>> I applied the patch adding samsung-keypad.c and the platform data
>>>>>>> arch/arm/plat-samsung/include/plat/keypad.h and I expect that
>>>>>>> patches to actually enable keypad will go through appropriate
>>>>>>> platform tree(s).
>>>>>>>
>>>>>> OK, the rest will go through samsung platform tree
>>>>>>
>>>>> Ok..will apply.
>>>>>
>>>> Kukjin, could you remove keypad.h on the commit "ARM: SAMSUNG: Add
>>>> keypad device support" of the samsung platform tree. The keypad.h file
>>>> was included on input tree.
>>>>
>> (http://git.kernel.org/?p=linux/kernel/git/dtor/input.git;a=commit;h=0fffed27f92d9d7
>>>> a34de9fe017b7082b5958bb93)
>>> You mean in plat-samsung/dev-keypad.c?
>>> If remove inclusion plat/keypad.h in there, following build error happens.
>>>
>> No. I mean to remove arch/arm/plat-samsung/include/plat/keypad.h file on
>> samsung platform tree, it was applied on input tree already. If needs, i
>> can repost.
>>
> If it is not small change like to remove a file in a patch, I think should be re-submitted.
> Will drop your previous patch in my tree.
> 
>>> arch/arm/plat-samsung/dev-keypad.c:41: warning: 'struct
>> samsung_keypad_platdata' declared inside parameter list
>>> arch/arm/plat-samsung/dev-keypad.c:41: warning: its scope is only this definition
>> or declaration, which is probably not what you want
>>> arch/arm/plat-samsung/dev-keypad.c: In function
>> 'samsung_keypad_set_platdata':
>>> arch/arm/plat-samsung/dev-keypad.c:50: error: invalid application of 'sizeof' to
>> incomplete type 'struct samsung_keypad_platdata'
>>> arch/arm/plat-samsung/dev-keypad.c:54: error: dereferencing pointer to
>> incomplete type
>>> arch/arm/plat-samsung/dev-keypad.c:55: error: dereferencing pointer to
>> incomplete type
>>> arch/arm/plat-samsung/dev-keypad.c:55: error: 'samsung_keypad_cfg_gpio'
>> undeclared (first use in this function)
>>> arch/arm/plat-samsung/dev-keypad.c:55: error: (Each undeclared identifier is
>> reported only once
>>> arch/arm/plat-samsung/dev-keypad.c:55: error: for each function it appears in.)
>>> make[1]: *** [arch/arm/plat-samsung/dev-keypad.o] Error 1
>>>
>>> As you know, released 35 today. So we have no much time for this merge
>> window.
>> I'm not sure about merge rule, but I think the compile problem can be
>> solved by merge to 36 of input tree and samsung platform tree.
> 
> Hmm...actually, already informed about that on linux-next.
> If it's just build problem, I or Dmitry can fix it. However, this is not just that.
> I cannot understand how your 'plat/keypad.h' was included to both of patch.

Please see the prior mail history. The keypad.h file is included only at 
the 1/3 patch in the original patch set, but Dmitry applied the 3/3
patch modified with keypad.h.

The basic problem is that each patches be applied on two tree. It makes
compile errors at the one tree lacking keypad.h file because both tree 
share keypad.h file.

There are two solutions, First, all patches go to one tree. Second, we 
wait for merging to 36 of both tree then apply platform patches.

> And I'm not sure, should be 'plat/keypad.h' in which tree...
> 

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

* RE: [PATCH v6 3/3] input: samsung-keypad - Add samsung keypad driver
  2010-08-02  5:52                               ` Joonyoung Shim
@ 2010-08-02  6:30                                 ` Kukjin Kim
  -1 siblings, 0 replies; 42+ messages in thread
From: Kukjin Kim @ 2010-08-02  6:30 UTC (permalink / raw)
  To: 'Joonyoung Shim'
  Cc: linux-samsung-soc, 'Dmitry Torokhov',
	kyungmin.park, ben-linux, linux-input, ch.naveen,
	linux-arm-kernel

Joonyoung Shim wrote:
> 
> On 8/2/2010 2:12 PM, Kukjin Kim wrote:
> > Joonyoung Shim wrote:
> >> On 8/2/2010 12:38 PM, Kukjin Kim wrote:
> >>> Joonyoung Shim wrote:
> >>>> Hi, I came back from vacation.
> >>>>
> >>>>>>>> Do you have any feedback? If ok, i want to go to input tree or samsung
> >>>>>>>> tree these added sched.h including.
> >>>>>>> I applied the patch adding samsung-keypad.c and the platform data
> >>>>>>> arch/arm/plat-samsung/include/plat/keypad.h and I expect that
> >>>>>>> patches to actually enable keypad will go through appropriate
> >>>>>>> platform tree(s).
> >>>>>>>
> >>>>>> OK, the rest will go through samsung platform tree
> >>>>>>
> >>>>> Ok..will apply.
> >>>>>
> >>>> Kukjin, could you remove keypad.h on the commit "ARM: SAMSUNG: Add
> >>>> keypad device support" of the samsung platform tree. The keypad.h file
> >>>> was included on input tree.
> >>>>
> >>
> (http://git.kernel.org/?p=linux/kernel/git/dtor/input.git;a=commit;h=0fffed27f92d9d7
> >>>> a34de9fe017b7082b5958bb93)
> >>> You mean in plat-samsung/dev-keypad.c?
> >>> If remove inclusion plat/keypad.h in there, following build error happens.
> >>>
> >> No. I mean to remove arch/arm/plat-samsung/include/plat/keypad.h file on
> >> samsung platform tree, it was applied on input tree already. If needs, i
> >> can repost.
> >>
> > If it is not small change like to remove a file in a patch, I think should be re-
> submitted.
> > Will drop your previous patch in my tree.
> >
> >>> arch/arm/plat-samsung/dev-keypad.c:41: warning: 'struct
> >> samsung_keypad_platdata' declared inside parameter list
> >>> arch/arm/plat-samsung/dev-keypad.c:41: warning: its scope is only this
> definition
> >> or declaration, which is probably not what you want
> >>> arch/arm/plat-samsung/dev-keypad.c: In function
> >> 'samsung_keypad_set_platdata':
> >>> arch/arm/plat-samsung/dev-keypad.c:50: error: invalid application of 'sizeof'
> to
> >> incomplete type 'struct samsung_keypad_platdata'
> >>> arch/arm/plat-samsung/dev-keypad.c:54: error: dereferencing pointer to
> >> incomplete type
> >>> arch/arm/plat-samsung/dev-keypad.c:55: error: dereferencing pointer to
> >> incomplete type
> >>> arch/arm/plat-samsung/dev-keypad.c:55: error: 'samsung_keypad_cfg_gpio'
> >> undeclared (first use in this function)
> >>> arch/arm/plat-samsung/dev-keypad.c:55: error: (Each undeclared identifier is
> >> reported only once
> >>> arch/arm/plat-samsung/dev-keypad.c:55: error: for each function it appears in.)
> >>> make[1]: *** [arch/arm/plat-samsung/dev-keypad.o] Error 1
> >>>
> >>> As you know, released 35 today. So we have no much time for this merge
> >> window.
> >> I'm not sure about merge rule, but I think the compile problem can be
> >> solved by merge to 36 of input tree and samsung platform tree.
> >
> > Hmm...actually, already informed about that on linux-next.
> > If it's just build problem, I or Dmitry can fix it. However, this is not just that.
> > I cannot understand how your 'plat/keypad.h' was included to both of patch.
> 
> Please see the prior mail history. The keypad.h file is included only at
> the 1/3 patch in the original patch set, but Dmitry applied the 3/3
> patch modified with keypad.h.
> 
> The basic problem is that each patches be applied on two tree. It makes
> compile errors at the one tree lacking keypad.h file because both tree
> share keypad.h file.
> 
> There are two solutions, First, all patches go to one tree. Second, we
> wait for merging to 36 of both tree then apply platform patches.
> 
> > And I'm not sure, should be 'plat/keypad.h' in which tree...
> >

Hi Dmitry,

How can/should I do for it?...Which way is better to us? :-)


Joonyoung,
Let's wait for Dmitry's reply.
I will holding drop your previous patch in my tree till that time.

Thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

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

* [PATCH v6 3/3] input: samsung-keypad - Add samsung keypad driver
@ 2010-08-02  6:30                                 ` Kukjin Kim
  0 siblings, 0 replies; 42+ messages in thread
From: Kukjin Kim @ 2010-08-02  6:30 UTC (permalink / raw)
  To: linux-arm-kernel

Joonyoung Shim wrote:
> 
> On 8/2/2010 2:12 PM, Kukjin Kim wrote:
> > Joonyoung Shim wrote:
> >> On 8/2/2010 12:38 PM, Kukjin Kim wrote:
> >>> Joonyoung Shim wrote:
> >>>> Hi, I came back from vacation.
> >>>>
> >>>>>>>> Do you have any feedback? If ok, i want to go to input tree or samsung
> >>>>>>>> tree these added sched.h including.
> >>>>>>> I applied the patch adding samsung-keypad.c and the platform data
> >>>>>>> arch/arm/plat-samsung/include/plat/keypad.h and I expect that
> >>>>>>> patches to actually enable keypad will go through appropriate
> >>>>>>> platform tree(s).
> >>>>>>>
> >>>>>> OK, the rest will go through samsung platform tree
> >>>>>>
> >>>>> Ok..will apply.
> >>>>>
> >>>> Kukjin, could you remove keypad.h on the commit "ARM: SAMSUNG: Add
> >>>> keypad device support" of the samsung platform tree. The keypad.h file
> >>>> was included on input tree.
> >>>>
> >>
> (http://git.kernel.org/?p=linux/kernel/git/dtor/input.git;a=commit;h=0fffed27f92d9d7
> >>>> a34de9fe017b7082b5958bb93)
> >>> You mean in plat-samsung/dev-keypad.c?
> >>> If remove inclusion plat/keypad.h in there, following build error happens.
> >>>
> >> No. I mean to remove arch/arm/plat-samsung/include/plat/keypad.h file on
> >> samsung platform tree, it was applied on input tree already. If needs, i
> >> can repost.
> >>
> > If it is not small change like to remove a file in a patch, I think should be re-
> submitted.
> > Will drop your previous patch in my tree.
> >
> >>> arch/arm/plat-samsung/dev-keypad.c:41: warning: 'struct
> >> samsung_keypad_platdata' declared inside parameter list
> >>> arch/arm/plat-samsung/dev-keypad.c:41: warning: its scope is only this
> definition
> >> or declaration, which is probably not what you want
> >>> arch/arm/plat-samsung/dev-keypad.c: In function
> >> 'samsung_keypad_set_platdata':
> >>> arch/arm/plat-samsung/dev-keypad.c:50: error: invalid application of 'sizeof'
> to
> >> incomplete type 'struct samsung_keypad_platdata'
> >>> arch/arm/plat-samsung/dev-keypad.c:54: error: dereferencing pointer to
> >> incomplete type
> >>> arch/arm/plat-samsung/dev-keypad.c:55: error: dereferencing pointer to
> >> incomplete type
> >>> arch/arm/plat-samsung/dev-keypad.c:55: error: 'samsung_keypad_cfg_gpio'
> >> undeclared (first use in this function)
> >>> arch/arm/plat-samsung/dev-keypad.c:55: error: (Each undeclared identifier is
> >> reported only once
> >>> arch/arm/plat-samsung/dev-keypad.c:55: error: for each function it appears in.)
> >>> make[1]: *** [arch/arm/plat-samsung/dev-keypad.o] Error 1
> >>>
> >>> As you know, released 35 today. So we have no much time for this merge
> >> window.
> >> I'm not sure about merge rule, but I think the compile problem can be
> >> solved by merge to 36 of input tree and samsung platform tree.
> >
> > Hmm...actually, already informed about that on linux-next.
> > If it's just build problem, I or Dmitry can fix it. However, this is not just that.
> > I cannot understand how your 'plat/keypad.h' was included to both of patch.
> 
> Please see the prior mail history. The keypad.h file is included only at
> the 1/3 patch in the original patch set, but Dmitry applied the 3/3
> patch modified with keypad.h.
> 
> The basic problem is that each patches be applied on two tree. It makes
> compile errors at the one tree lacking keypad.h file because both tree
> share keypad.h file.
> 
> There are two solutions, First, all patches go to one tree. Second, we
> wait for merging to 36 of both tree then apply platform patches.
> 
> > And I'm not sure, should be 'plat/keypad.h' in which tree...
> >

Hi Dmitry,

How can/should I do for it?...Which way is better to us? :-)


Joonyoung,
Let's wait for Dmitry's reply.
I will holding drop your previous patch in my tree till that time.

Thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

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

* Re: [PATCH v6 3/3] input: samsung-keypad - Add samsung keypad driver
  2010-08-02  6:30                                 ` Kukjin Kim
@ 2010-08-02  7:58                                   ` Dmitry Torokhov
  -1 siblings, 0 replies; 42+ messages in thread
From: Dmitry Torokhov @ 2010-08-02  7:58 UTC (permalink / raw)
  To: Kukjin Kim
  Cc: 'Joonyoung Shim',
	linux-samsung-soc, kyungmin.park, ben-linux, linux-input,
	ch.naveen, linux-arm-kernel

On Mon, Aug 02, 2010 at 03:30:57PM +0900, Kukjin Kim wrote:
> Joonyoung Shim wrote:
> > 
> > On 8/2/2010 2:12 PM, Kukjin Kim wrote:
> > > Joonyoung Shim wrote:
> > >> On 8/2/2010 12:38 PM, Kukjin Kim wrote:
> > >>> Joonyoung Shim wrote:
> > >>>> Hi, I came back from vacation.
> > >>>>
> > >>>>>>>> Do you have any feedback? If ok, i want to go to input tree or samsung
> > >>>>>>>> tree these added sched.h including.
> > >>>>>>> I applied the patch adding samsung-keypad.c and the platform data
> > >>>>>>> arch/arm/plat-samsung/include/plat/keypad.h and I expect that
> > >>>>>>> patches to actually enable keypad will go through appropriate
> > >>>>>>> platform tree(s).
> > >>>>>>>
> > >>>>>> OK, the rest will go through samsung platform tree
> > >>>>>>
> > >>>>> Ok..will apply.
> > >>>>>
> > >>>> Kukjin, could you remove keypad.h on the commit "ARM: SAMSUNG: Add
> > >>>> keypad device support" of the samsung platform tree. The keypad.h file
> > >>>> was included on input tree.
> > >>>>
> > >>
> > (http://git.kernel.org/?p=linux/kernel/git/dtor/input.git;a=commit;h=0fffed27f92d9d7
> > >>>> a34de9fe017b7082b5958bb93)
> > >>> You mean in plat-samsung/dev-keypad.c?
> > >>> If remove inclusion plat/keypad.h in there, following build error happens.
> > >>>
> > >> No. I mean to remove arch/arm/plat-samsung/include/plat/keypad.h file on
> > >> samsung platform tree, it was applied on input tree already. If needs, i
> > >> can repost.
> > >>
> > > If it is not small change like to remove a file in a patch, I think should be re-
> > submitted.
> > > Will drop your previous patch in my tree.
> > >
> > >>> arch/arm/plat-samsung/dev-keypad.c:41: warning: 'struct
> > >> samsung_keypad_platdata' declared inside parameter list
> > >>> arch/arm/plat-samsung/dev-keypad.c:41: warning: its scope is only this
> > definition
> > >> or declaration, which is probably not what you want
> > >>> arch/arm/plat-samsung/dev-keypad.c: In function
> > >> 'samsung_keypad_set_platdata':
> > >>> arch/arm/plat-samsung/dev-keypad.c:50: error: invalid application of 'sizeof'
> > to
> > >> incomplete type 'struct samsung_keypad_platdata'
> > >>> arch/arm/plat-samsung/dev-keypad.c:54: error: dereferencing pointer to
> > >> incomplete type
> > >>> arch/arm/plat-samsung/dev-keypad.c:55: error: dereferencing pointer to
> > >> incomplete type
> > >>> arch/arm/plat-samsung/dev-keypad.c:55: error: 'samsung_keypad_cfg_gpio'
> > >> undeclared (first use in this function)
> > >>> arch/arm/plat-samsung/dev-keypad.c:55: error: (Each undeclared identifier is
> > >> reported only once
> > >>> arch/arm/plat-samsung/dev-keypad.c:55: error: for each function it appears in.)
> > >>> make[1]: *** [arch/arm/plat-samsung/dev-keypad.o] Error 1
> > >>>
> > >>> As you know, released 35 today. So we have no much time for this merge
> > >> window.
> > >> I'm not sure about merge rule, but I think the compile problem can be
> > >> solved by merge to 36 of input tree and samsung platform tree.
> > >
> > > Hmm...actually, already informed about that on linux-next.
> > > If it's just build problem, I or Dmitry can fix it. However, this is not just that.
> > > I cannot understand how your 'plat/keypad.h' was included to both of patch.
> > 
> > Please see the prior mail history. The keypad.h file is included only at
> > the 1/3 patch in the original patch set, but Dmitry applied the 3/3
> > patch modified with keypad.h.
> > 
> > The basic problem is that each patches be applied on two tree. It makes
> > compile errors at the one tree lacking keypad.h file because both tree
> > share keypad.h file.
> > 
> > There are two solutions, First, all patches go to one tree. Second, we
> > wait for merging to 36 of both tree then apply platform patches.
> > 
> > > And I'm not sure, should be 'plat/keypad.h' in which tree...
> > >
> 
> Hi Dmitry,
> 
> How can/should I do for it?...Which way is better to us? :-)
> 
> 
> Joonyoung,
> Let's wait for Dmitry's reply.
> I will holding drop your previous patch in my tree till that time.
> 

Kgene,

I will be sending pull request to Linus in the next day or so, so it
will have plat/keypad.h as it is in my tree. Once you merge (with his or
mine) you have an option to patching the plat/keypad.h with hooks that I
removed, although I would prefer if you changed the way you initialize
your devices since having the these hooks defeats the purpose of having
config pointer in platform data. Another option would be to have a
separate include file for the hooks, one that
drivers/input/keyboard/samsung-keypad.c does not use.

Thanks.

-- 
Dmitry

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

* [PATCH v6 3/3] input: samsung-keypad - Add samsung keypad driver
@ 2010-08-02  7:58                                   ` Dmitry Torokhov
  0 siblings, 0 replies; 42+ messages in thread
From: Dmitry Torokhov @ 2010-08-02  7:58 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, Aug 02, 2010 at 03:30:57PM +0900, Kukjin Kim wrote:
> Joonyoung Shim wrote:
> > 
> > On 8/2/2010 2:12 PM, Kukjin Kim wrote:
> > > Joonyoung Shim wrote:
> > >> On 8/2/2010 12:38 PM, Kukjin Kim wrote:
> > >>> Joonyoung Shim wrote:
> > >>>> Hi, I came back from vacation.
> > >>>>
> > >>>>>>>> Do you have any feedback? If ok, i want to go to input tree or samsung
> > >>>>>>>> tree these added sched.h including.
> > >>>>>>> I applied the patch adding samsung-keypad.c and the platform data
> > >>>>>>> arch/arm/plat-samsung/include/plat/keypad.h and I expect that
> > >>>>>>> patches to actually enable keypad will go through appropriate
> > >>>>>>> platform tree(s).
> > >>>>>>>
> > >>>>>> OK, the rest will go through samsung platform tree
> > >>>>>>
> > >>>>> Ok..will apply.
> > >>>>>
> > >>>> Kukjin, could you remove keypad.h on the commit "ARM: SAMSUNG: Add
> > >>>> keypad device support" of the samsung platform tree. The keypad.h file
> > >>>> was included on input tree.
> > >>>>
> > >>
> > (http://git.kernel.org/?p=linux/kernel/git/dtor/input.git;a=commit;h=0fffed27f92d9d7
> > >>>> a34de9fe017b7082b5958bb93)
> > >>> You mean in plat-samsung/dev-keypad.c?
> > >>> If remove inclusion plat/keypad.h in there, following build error happens.
> > >>>
> > >> No. I mean to remove arch/arm/plat-samsung/include/plat/keypad.h file on
> > >> samsung platform tree, it was applied on input tree already. If needs, i
> > >> can repost.
> > >>
> > > If it is not small change like to remove a file in a patch, I think should be re-
> > submitted.
> > > Will drop your previous patch in my tree.
> > >
> > >>> arch/arm/plat-samsung/dev-keypad.c:41: warning: 'struct
> > >> samsung_keypad_platdata' declared inside parameter list
> > >>> arch/arm/plat-samsung/dev-keypad.c:41: warning: its scope is only this
> > definition
> > >> or declaration, which is probably not what you want
> > >>> arch/arm/plat-samsung/dev-keypad.c: In function
> > >> 'samsung_keypad_set_platdata':
> > >>> arch/arm/plat-samsung/dev-keypad.c:50: error: invalid application of 'sizeof'
> > to
> > >> incomplete type 'struct samsung_keypad_platdata'
> > >>> arch/arm/plat-samsung/dev-keypad.c:54: error: dereferencing pointer to
> > >> incomplete type
> > >>> arch/arm/plat-samsung/dev-keypad.c:55: error: dereferencing pointer to
> > >> incomplete type
> > >>> arch/arm/plat-samsung/dev-keypad.c:55: error: 'samsung_keypad_cfg_gpio'
> > >> undeclared (first use in this function)
> > >>> arch/arm/plat-samsung/dev-keypad.c:55: error: (Each undeclared identifier is
> > >> reported only once
> > >>> arch/arm/plat-samsung/dev-keypad.c:55: error: for each function it appears in.)
> > >>> make[1]: *** [arch/arm/plat-samsung/dev-keypad.o] Error 1
> > >>>
> > >>> As you know, released 35 today. So we have no much time for this merge
> > >> window.
> > >> I'm not sure about merge rule, but I think the compile problem can be
> > >> solved by merge to 36 of input tree and samsung platform tree.
> > >
> > > Hmm...actually, already informed about that on linux-next.
> > > If it's just build problem, I or Dmitry can fix it. However, this is not just that.
> > > I cannot understand how your 'plat/keypad.h' was included to both of patch.
> > 
> > Please see the prior mail history. The keypad.h file is included only at
> > the 1/3 patch in the original patch set, but Dmitry applied the 3/3
> > patch modified with keypad.h.
> > 
> > The basic problem is that each patches be applied on two tree. It makes
> > compile errors at the one tree lacking keypad.h file because both tree
> > share keypad.h file.
> > 
> > There are two solutions, First, all patches go to one tree. Second, we
> > wait for merging to 36 of both tree then apply platform patches.
> > 
> > > And I'm not sure, should be 'plat/keypad.h' in which tree...
> > >
> 
> Hi Dmitry,
> 
> How can/should I do for it?...Which way is better to us? :-)
> 
> 
> Joonyoung,
> Let's wait for Dmitry's reply.
> I will holding drop your previous patch in my tree till that time.
> 

Kgene,

I will be sending pull request to Linus in the next day or so, so it
will have plat/keypad.h as it is in my tree. Once you merge (with his or
mine) you have an option to patching the plat/keypad.h with hooks that I
removed, although I would prefer if you changed the way you initialize
your devices since having the these hooks defeats the purpose of having
config pointer in platform data. Another option would be to have a
separate include file for the hooks, one that
drivers/input/keyboard/samsung-keypad.c does not use.

Thanks.

-- 
Dmitry

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

* RE: [PATCH v6 3/3] input: samsung-keypad - Add samsung keypad driver
  2010-08-02  7:58                                   ` Dmitry Torokhov
@ 2010-08-03  2:10                                     ` Kukjin Kim
  -1 siblings, 0 replies; 42+ messages in thread
From: Kukjin Kim @ 2010-08-03  2:10 UTC (permalink / raw)
  To: 'Dmitry Torokhov'
  Cc: 'Joonyoung Shim',
	linux-samsung-soc, kyungmin.park, ben-linux, linux-input,
	ch.naveen, linux-arm-kernel

Dmitry Torokhov wrote:
> 
> On Mon, Aug 02, 2010 at 03:30:57PM +0900, Kukjin Kim wrote:
> > Joonyoung Shim wrote:
> > >
> > > On 8/2/2010 2:12 PM, Kukjin Kim wrote:
> > > > Joonyoung Shim wrote:
> > > >> On 8/2/2010 12:38 PM, Kukjin Kim wrote:
> > > >>> Joonyoung Shim wrote:
> > > >>>> Hi, I came back from vacation.
> > > >>>>
> > > >>>>>>>> Do you have any feedback? If ok, i want to go to input tree
or
> samsung
> > > >>>>>>>> tree these added sched.h including.
> > > >>>>>>> I applied the patch adding samsung-keypad.c and the platform
data
> > > >>>>>>> arch/arm/plat-samsung/include/plat/keypad.h and I expect that
> > > >>>>>>> patches to actually enable keypad will go through appropriate
> > > >>>>>>> platform tree(s).
> > > >>>>>>>
> > > >>>>>> OK, the rest will go through samsung platform tree
> > > >>>>>>
> > > >>>>> Ok..will apply.
> > > >>>>>
> > > >>>> Kukjin, could you remove keypad.h on the commit "ARM: SAMSUNG:
> Add
> > > >>>> keypad device support" of the samsung platform tree. The keypad.h
file
> > > >>>> was included on input tree.
> > > >>>>
> > > >>
> > >
>
(http://git.kernel.org/?p=linux/kernel/git/dtor/input.git;a=commit;h=0fffed2
7f92d9d7
> > > >>>> a34de9fe017b7082b5958bb93)
> > > >>> You mean in plat-samsung/dev-keypad.c?
> > > >>> If remove inclusion plat/keypad.h in there, following build error
happens.
> > > >>>
> > > >> No. I mean to remove arch/arm/plat-samsung/include/plat/keypad.h
file on
> > > >> samsung platform tree, it was applied on input tree already. If
needs, i
> > > >> can repost.
> > > >>
> > > > If it is not small change like to remove a file in a patch, I think
should be re-
> > > submitted.
> > > > Will drop your previous patch in my tree.
> > > >
> > > >>> arch/arm/plat-samsung/dev-keypad.c:41: warning: 'struct
> > > >> samsung_keypad_platdata' declared inside parameter list
> > > >>> arch/arm/plat-samsung/dev-keypad.c:41: warning: its scope is only
this
> > > definition
> > > >> or declaration, which is probably not what you want
> > > >>> arch/arm/plat-samsung/dev-keypad.c: In function
> > > >> 'samsung_keypad_set_platdata':
> > > >>> arch/arm/plat-samsung/dev-keypad.c:50: error: invalid application
of
> 'sizeof'
> > > to
> > > >> incomplete type 'struct samsung_keypad_platdata'
> > > >>> arch/arm/plat-samsung/dev-keypad.c:54: error: dereferencing
pointer to
> > > >> incomplete type
> > > >>> arch/arm/plat-samsung/dev-keypad.c:55: error: dereferencing
pointer to
> > > >> incomplete type
> > > >>> arch/arm/plat-samsung/dev-keypad.c:55: error:
> 'samsung_keypad_cfg_gpio'
> > > >> undeclared (first use in this function)
> > > >>> arch/arm/plat-samsung/dev-keypad.c:55: error: (Each undeclared
identifier
> is
> > > >> reported only once
> > > >>> arch/arm/plat-samsung/dev-keypad.c:55: error: for each function it
> appears in.)
> > > >>> make[1]: *** [arch/arm/plat-samsung/dev-keypad.o] Error 1
> > > >>>
> > > >>> As you know, released 35 today. So we have no much time for this
merge
> > > >> window.
> > > >> I'm not sure about merge rule, but I think the compile problem can
be
> > > >> solved by merge to 36 of input tree and samsung platform tree.
> > > >
> > > > Hmm...actually, already informed about that on linux-next.
> > > > If it's just build problem, I or Dmitry can fix it. However, this is
not just that.
> > > > I cannot understand how your 'plat/keypad.h' was included to both of
patch.
> > >
> > > Please see the prior mail history. The keypad.h file is included only
at
> > > the 1/3 patch in the original patch set, but Dmitry applied the 3/3
> > > patch modified with keypad.h.
> > >
> > > The basic problem is that each patches be applied on two tree. It
makes
> > > compile errors at the one tree lacking keypad.h file because both tree
> > > share keypad.h file.
> > >
> > > There are two solutions, First, all patches go to one tree. Second, we
> > > wait for merging to 36 of both tree then apply platform patches.
> > >
> > > > And I'm not sure, should be 'plat/keypad.h' in which tree...
> > > >
> >
> > Hi Dmitry,
> >
> > How can/should I do for it?...Which way is better to us? :-)
> >
> >
> > Joonyoung,
> > Let's wait for Dmitry's reply.
> > I will holding drop your previous patch in my tree till that time.
> >
> 
> Kgene,
> 
> I will be sending pull request to Linus in the next day or so, so it
> will have plat/keypad.h as it is in my tree. Once you merge (with his or
> mine) you have an option to patching the plat/keypad.h with hooks that I
> removed, although I would prefer if you changed the way you initialize
> your devices since having the these hooks defeats the purpose of having
> config pointer in platform data. Another option would be to have a
> separate include file for the hooks, one that
> drivers/input/keyboard/samsung-keypad.c does not use.
> 
> Thanks.
> 
Hi Dmitry,

Hmm...I saw your pull request to Linus...ok...will replace new one which
don't have duplicate 'plat/keypad.h' in my tree.
But..in this case, I'm not sure which way is better to us...

Thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

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

* [PATCH v6 3/3] input: samsung-keypad - Add samsung keypad driver
@ 2010-08-03  2:10                                     ` Kukjin Kim
  0 siblings, 0 replies; 42+ messages in thread
From: Kukjin Kim @ 2010-08-03  2:10 UTC (permalink / raw)
  To: linux-arm-kernel

Dmitry Torokhov wrote:
> 
> On Mon, Aug 02, 2010 at 03:30:57PM +0900, Kukjin Kim wrote:
> > Joonyoung Shim wrote:
> > >
> > > On 8/2/2010 2:12 PM, Kukjin Kim wrote:
> > > > Joonyoung Shim wrote:
> > > >> On 8/2/2010 12:38 PM, Kukjin Kim wrote:
> > > >>> Joonyoung Shim wrote:
> > > >>>> Hi, I came back from vacation.
> > > >>>>
> > > >>>>>>>> Do you have any feedback? If ok, i want to go to input tree
or
> samsung
> > > >>>>>>>> tree these added sched.h including.
> > > >>>>>>> I applied the patch adding samsung-keypad.c and the platform
data
> > > >>>>>>> arch/arm/plat-samsung/include/plat/keypad.h and I expect that
> > > >>>>>>> patches to actually enable keypad will go through appropriate
> > > >>>>>>> platform tree(s).
> > > >>>>>>>
> > > >>>>>> OK, the rest will go through samsung platform tree
> > > >>>>>>
> > > >>>>> Ok..will apply.
> > > >>>>>
> > > >>>> Kukjin, could you remove keypad.h on the commit "ARM: SAMSUNG:
> Add
> > > >>>> keypad device support" of the samsung platform tree. The keypad.h
file
> > > >>>> was included on input tree.
> > > >>>>
> > > >>
> > >
>
(http://git.kernel.org/?p=linux/kernel/git/dtor/input.git;a=commit;h=0fffed2
7f92d9d7
> > > >>>> a34de9fe017b7082b5958bb93)
> > > >>> You mean in plat-samsung/dev-keypad.c?
> > > >>> If remove inclusion plat/keypad.h in there, following build error
happens.
> > > >>>
> > > >> No. I mean to remove arch/arm/plat-samsung/include/plat/keypad.h
file on
> > > >> samsung platform tree, it was applied on input tree already. If
needs, i
> > > >> can repost.
> > > >>
> > > > If it is not small change like to remove a file in a patch, I think
should be re-
> > > submitted.
> > > > Will drop your previous patch in my tree.
> > > >
> > > >>> arch/arm/plat-samsung/dev-keypad.c:41: warning: 'struct
> > > >> samsung_keypad_platdata' declared inside parameter list
> > > >>> arch/arm/plat-samsung/dev-keypad.c:41: warning: its scope is only
this
> > > definition
> > > >> or declaration, which is probably not what you want
> > > >>> arch/arm/plat-samsung/dev-keypad.c: In function
> > > >> 'samsung_keypad_set_platdata':
> > > >>> arch/arm/plat-samsung/dev-keypad.c:50: error: invalid application
of
> 'sizeof'
> > > to
> > > >> incomplete type 'struct samsung_keypad_platdata'
> > > >>> arch/arm/plat-samsung/dev-keypad.c:54: error: dereferencing
pointer to
> > > >> incomplete type
> > > >>> arch/arm/plat-samsung/dev-keypad.c:55: error: dereferencing
pointer to
> > > >> incomplete type
> > > >>> arch/arm/plat-samsung/dev-keypad.c:55: error:
> 'samsung_keypad_cfg_gpio'
> > > >> undeclared (first use in this function)
> > > >>> arch/arm/plat-samsung/dev-keypad.c:55: error: (Each undeclared
identifier
> is
> > > >> reported only once
> > > >>> arch/arm/plat-samsung/dev-keypad.c:55: error: for each function it
> appears in.)
> > > >>> make[1]: *** [arch/arm/plat-samsung/dev-keypad.o] Error 1
> > > >>>
> > > >>> As you know, released 35 today. So we have no much time for this
merge
> > > >> window.
> > > >> I'm not sure about merge rule, but I think the compile problem can
be
> > > >> solved by merge to 36 of input tree and samsung platform tree.
> > > >
> > > > Hmm...actually, already informed about that on linux-next.
> > > > If it's just build problem, I or Dmitry can fix it. However, this is
not just that.
> > > > I cannot understand how your 'plat/keypad.h' was included to both of
patch.
> > >
> > > Please see the prior mail history. The keypad.h file is included only
at
> > > the 1/3 patch in the original patch set, but Dmitry applied the 3/3
> > > patch modified with keypad.h.
> > >
> > > The basic problem is that each patches be applied on two tree. It
makes
> > > compile errors at the one tree lacking keypad.h file because both tree
> > > share keypad.h file.
> > >
> > > There are two solutions, First, all patches go to one tree. Second, we
> > > wait for merging to 36 of both tree then apply platform patches.
> > >
> > > > And I'm not sure, should be 'plat/keypad.h' in which tree...
> > > >
> >
> > Hi Dmitry,
> >
> > How can/should I do for it?...Which way is better to us? :-)
> >
> >
> > Joonyoung,
> > Let's wait for Dmitry's reply.
> > I will holding drop your previous patch in my tree till that time.
> >
> 
> Kgene,
> 
> I will be sending pull request to Linus in the next day or so, so it
> will have plat/keypad.h as it is in my tree. Once you merge (with his or
> mine) you have an option to patching the plat/keypad.h with hooks that I
> removed, although I would prefer if you changed the way you initialize
> your devices since having the these hooks defeats the purpose of having
> config pointer in platform data. Another option would be to have a
> separate include file for the hooks, one that
> drivers/input/keyboard/samsung-keypad.c does not use.
> 
> Thanks.
> 
Hi Dmitry,

Hmm...I saw your pull request to Linus...ok...will replace new one which
don't have duplicate 'plat/keypad.h' in my tree.
But..in this case, I'm not sure which way is better to us...

Thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

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

end of thread, other threads:[~2010-08-03  2:10 UTC | newest]

Thread overview: 42+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-06-28 11:33 [PATCH v6 1/3] ARM: SAMSUNG: Add keypad device support Joonyoung Shim
2010-06-28 11:33 ` Joonyoung Shim
2010-06-28 11:33 ` [PATCH v6 2/3] ARM: S5PV210: Add keypad device helpers Joonyoung Shim
2010-06-28 11:33   ` Joonyoung Shim
2010-06-28 11:33 ` [PATCH v6 3/3] input: samsung-keypad - Add samsung keypad driver Joonyoung Shim
2010-06-28 11:33   ` Joonyoung Shim
2010-07-06  7:58   ` Joonyoung Shim
2010-07-06  7:58     ` Joonyoung Shim
2010-07-06 23:52     ` Kukjin Kim
2010-07-06 23:52       ` Kukjin Kim
2010-07-07  1:28       ` Joonyoung Shim
2010-07-07  1:28         ` Joonyoung Shim
2010-07-09  7:07         ` Kukjin Kim
2010-07-09  7:07           ` Kukjin Kim
2010-07-09  7:39           ` Joonyoung Shim
2010-07-09  7:39             ` Joonyoung Shim
2010-07-21  5:42             ` Joonyoung Shim
2010-07-21  5:42               ` Joonyoung Shim
2010-07-21  6:21               ` Kukjin Kim
2010-07-21  6:21                 ` Kukjin Kim
2010-07-21  8:07               ` Dmitry Torokhov
2010-07-21  8:07                 ` Dmitry Torokhov
2010-07-21  9:01                 ` Joonyoung Shim
2010-07-21  9:01                   ` Joonyoung Shim
2010-07-21 12:39                   ` Kukjin Kim
2010-07-21 12:39                     ` Kukjin Kim
2010-08-02  3:09                     ` Joonyoung Shim
2010-08-02  3:09                       ` Joonyoung Shim
2010-08-02  3:38                       ` Kukjin Kim
2010-08-02  3:38                         ` Kukjin Kim
2010-08-02  4:41                         ` Joonyoung Shim
2010-08-02  4:41                           ` Joonyoung Shim
2010-08-02  5:12                           ` Kukjin Kim
2010-08-02  5:12                             ` Kukjin Kim
2010-08-02  5:52                             ` Joonyoung Shim
2010-08-02  5:52                               ` Joonyoung Shim
2010-08-02  6:30                               ` Kukjin Kim
2010-08-02  6:30                                 ` Kukjin Kim
2010-08-02  7:58                                 ` Dmitry Torokhov
2010-08-02  7:58                                   ` Dmitry Torokhov
2010-08-03  2:10                                   ` Kukjin Kim
2010-08-03  2:10                                     ` Kukjin Kim

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.