linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/1] Input: gpio-keys: support for disabling GPIOs
@ 2009-12-01 13:53 Mika Westerberg
  2009-12-01 13:53 ` [PATCH v3 1/1] Input: gpio-keys - added support for disabling gpios through sysfs Mika Westerberg
  2009-12-03  6:19 ` [PATCH v3 0/1] Input: gpio-keys: support for disabling GPIOs Mika Westerberg
  0 siblings, 2 replies; 12+ messages in thread
From: Mika Westerberg @ 2009-12-01 13:53 UTC (permalink / raw)
  To: dmitry.torokhov; +Cc: linux-input

Hi Dmitry,

This is third version of the series. Purpose of this patch is to allow
userland to disable GPIO buttons interrupting the CPU. There is now sysfs
interface that can be used to control the buttons by key code or by switch
code.

I merged those previous 2 patches as one. This is because it made little
sense of having separate patch for adding the 'can_disable' field.

Changes in v3:
	- merged previous 2 patches into one
	- buttons have 'can_disable' field instead of irqflags field

Tested with RX-51.

Thanks,
MW

---

Mika Westerberg (1):
  Input: gpio-keys - added support for disabling gpios through sysfs

 Documentation/ABI/testing/sysfs-platform-gpio-keys |   44 +++
 drivers/input/keyboard/gpio_keys.c                 |  318 +++++++++++++++++++-
 include/linux/gpio_keys.h                          |    1 +
 3 files changed, 352 insertions(+), 11 deletions(-)
 create mode 100644 Documentation/ABI/testing/sysfs-platform-gpio-keys


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

* [PATCH v3 1/1] Input: gpio-keys - added support for disabling gpios through sysfs
  2009-12-01 13:53 [PATCH v3 0/1] Input: gpio-keys: support for disabling GPIOs Mika Westerberg
@ 2009-12-01 13:53 ` Mika Westerberg
  2009-12-03  6:19 ` [PATCH v3 0/1] Input: gpio-keys: support for disabling GPIOs Mika Westerberg
  1 sibling, 0 replies; 12+ messages in thread
From: Mika Westerberg @ 2009-12-01 13:53 UTC (permalink / raw)
  To: dmitry.torokhov; +Cc: linux-input

Now gpio-keys input driver exports 4 new attributes to userland through
sysfs:
	/sys/devices/platform/gpio-keys/keys [ro]
	/sys/devices/platform/gpio-keys/switches [ro]
	/sys/devices/platform/gpio-keys/disabled_keys [rw]
	/sys/devices/platform/gpio-keys/disables_switches [rw]

With these attributes, userland program can read which keys and
switches can be disabled and then disable/enable them as needed.
Keys and switches are exported as stringified bitmap of codes
(keycodes or switch codes). For example keys 15, 89, 100, 101,
102 are exported as: '15,89,100-102'.

Description of the attributes:
	keys - bitmap of keys which can be disabled
	switches - bitmap of switches which can be disabled
	disabled_keys - bitmap of currently disabled keys
			(bit 1 means disabled, 0 enabled)
	disabled_switches - bitmap of currently disabled switches
			(bit 1 means disabled, 0 enabled)

Signed-off-by: Mika Westerberg <ext-mika.1.westerberg@nokia.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
---
 Documentation/ABI/testing/sysfs-platform-gpio-keys |   44 +++
 drivers/input/keyboard/gpio_keys.c                 |  318 +++++++++++++++++++-
 include/linux/gpio_keys.h                          |    1 +
 3 files changed, 352 insertions(+), 11 deletions(-)
 create mode 100644 Documentation/ABI/testing/sysfs-platform-gpio-keys

diff --git a/Documentation/ABI/testing/sysfs-platform-gpio-keys b/Documentation/ABI/testing/sysfs-platform-gpio-keys
new file mode 100644
index 0000000..4477323
--- /dev/null
+++ b/Documentation/ABI/testing/sysfs-platform-gpio-keys
@@ -0,0 +1,44 @@
+What:		/sys/devices/platform/gpio-keys/keys
+Date:		November 2009
+KernelVersion:	2.6.33
+Contact:	Mika Westerberg <ext-mika.1.westerberg@nokia.com>
+Description:
+		This file lists gpio keys (EV_KEY) by key code
+		which can be disabled. These are formatted as
+		ASCII encoded bitmap. For example if we have keys
+		152, 212, 528 that can be disabled, the file
+		contains:
+			152,212,528
+		Consecutive bits are shown as hyphen separated
+		numbers. For example keys 9, 10, 11 are shown
+		as:
+			9-11
+
+What:		/sys/devices/platform/gpio-keys/switches
+Date:		November 2009
+KernelVersion:	2.6.33
+Contact:	Mika Westerberg <ext-mika.1.westerberg@nokia.com>
+Description:
+		This file lists gpio switches (EV_SW) by switch
+		code which can be disabled. These are formatted
+		in similar manner than keys.
+
+What:		/sys/devices/platform/gpio-keys/disabled_keys
+Date:		November 2009
+KernelVersion:	2.6.33
+Contact:	Mika Westerberg <ext-mika.1.westerberg@nokia.com>
+Description:
+		This file lists gpio keys (EV_KEY) by key code
+		which are currently disabled and cannot generate
+		interrupts. Format is similar than in previous
+		files. Writing to this file disables given keys.
+
+What:		/sys/devices/platform/gpio-keys/disabled_switches
+Date:		November 2009
+KernelVersion:	2.6.33
+Contact:	Mika Westerberg <ext-mika.1.westerberg@nokia.com>
+Description:
+		This file lists gpio switches (EV_SW) by switch code
+		which are currently disabled and cannot generate
+		interrupts. Format is similar than in previous
+		files. Writing to this file disables given switches.
diff --git a/drivers/input/keyboard/gpio_keys.c b/drivers/input/keyboard/gpio_keys.c
index 8941a8b..ad118d9 100644
--- a/drivers/input/keyboard/gpio_keys.c
+++ b/drivers/input/keyboard/gpio_keys.c
@@ -30,13 +30,289 @@ struct gpio_button_data {
 	struct input_dev *input;
 	struct timer_list timer;
 	struct work_struct work;
+	bool disabled;
 };
 
 struct gpio_keys_drvdata {
 	struct input_dev *input;
+	struct mutex disable_lock;
+	unsigned int n_buttons;
 	struct gpio_button_data data[0];
 };
 
+/*
+ * SYSFS interface for enabling/disabling keys and switches:
+ *
+ * There are 4 attributes under /sys/devices/platform/gpio-keys/
+ *	keys [ro]              - bitmap of keys (EV_KEY) which can be
+ *	                         disabled
+ *	switches [ro]          - bitmap of switches (EV_SW) which can be
+ *	                         disabled
+ *	disabled_keys [rw]     - bitmap of keys currently disabled
+ *	disabled_switches [rw] - bitmap of switches currently disabled
+ *
+ * Userland can change these values and hence disable event generation
+ * for each key (or switch). Disabling a key means its interrupt line
+ * is disabled.
+ *
+ * For example, if we have following switches set up as gpio-keys:
+ *	SW_DOCK = 5
+ *	SW_CAMERA_LENS_COVER = 9
+ *	SW_KEYPAD_SLIDE = 10
+ *	SW_FRONT_PROXIMITY = 11
+ * This is read from switches:
+ *	11-9,5
+ * Next we want to disable proximity (11) and dock (5), we write:
+ *	11,5
+ * to file disabled_switches. Now proximity and dock IRQs are disabled.
+ * This can be verified by reading the file disabled_switches:
+ *	11,5
+ * If we now want to enable proximity (11) switch we write:
+ *	5
+ * to disabled_switches.
+ *
+ * We can disable only those keys which don't allow sharing the irq.
+ */
+
+/**
+ * get_n_events_by_type() - returns maximum number of events per @type
+ * @type: type of button (%EV_KEY, %EV_SW)
+ *
+ * Return value of this function can be used to allocate bitmap
+ * large enough to hold all bits for given type.
+ */
+static inline int get_n_events_by_type(int type)
+{
+	BUG_ON(type != EV_SW && type != EV_KEY);
+
+	return (type == EV_KEY) ? KEY_CNT : SW_CNT;
+}
+
+/**
+ * gpio_keys_disable_button() - disables given GPIO button
+ * @bdata: button data for button to be disabled
+ *
+ * Disables button pointed by @bdata. This is done by masking
+ * IRQ line. After this function is called, button won't generate
+ * input events anymore. Note that one can only disable buttons
+ * that don't share IRQs.
+ *
+ * Make sure that @bdata->disable_lock is locked when entering
+ * this function to avoid races when concurrent threads are
+ * disabling buttons at the same time.
+ */
+static void gpio_keys_disable_button(struct gpio_button_data *bdata)
+{
+	if (!bdata->disabled) {
+		/*
+		 * Disable IRQ and possible debouncing timer.
+		 */
+		disable_irq(gpio_to_irq(bdata->button->gpio));
+		if (bdata->button->debounce_interval)
+			del_timer_sync(&bdata->timer);
+
+		bdata->disabled = true;
+	}
+}
+
+/**
+ * gpio_keys_enable_button() - enables given GPIO button
+ * @bdata: button data for button to be disabled
+ *
+ * Enables given button pointed by @bdata.
+ *
+ * Make sure that @bdata->disable_lock is locked when entering
+ * this function to avoid races with concurrent threads trying
+ * to enable the same button at the same time.
+ */
+static void gpio_keys_enable_button(struct gpio_button_data *bdata)
+{
+	if (bdata->disabled) {
+		enable_irq(gpio_to_irq(bdata->button->gpio));
+		bdata->disabled = false;
+	}
+}
+
+/**
+ * gpio_keys_attr_show_helper() - fill in stringified bitmap of buttons
+ * @ddata: pointer to drvdata
+ * @buf: buffer where stringified bitmap is written
+ * @type: button type (%EV_KEY, %EV_SW)
+ * @only_disabled: does caller want only those buttons that are
+ *                 currently disabled or all buttons that can be
+ *                 disabled
+ *
+ * This function writes buttons that can be disabled to @buf. If
+ * @only_disabled is true, then @buf contains only those buttons
+ * that are currently disabled. Returns 0 on success or negative
+ * errno on failure.
+ */
+static ssize_t gpio_keys_attr_show_helper(struct gpio_keys_drvdata *ddata,
+					  char *buf, unsigned int type,
+					  bool only_disabled)
+{
+	int n_events = get_n_events_by_type(type);
+	unsigned long *bits;
+	ssize_t ret;
+	int i;
+
+	bits = kcalloc(BITS_TO_LONGS(n_events), sizeof(*bits), GFP_KERNEL);
+	if (!bits)
+		return -ENOMEM;
+
+	for (i = 0; i < ddata->n_buttons; i++) {
+		struct gpio_button_data *bdata = &ddata->data[i];
+
+		if (bdata->button->type != type)
+			continue;
+
+		if (only_disabled && !bdata->disabled)
+			continue;
+
+		__set_bit(bdata->button->code, bits);
+	}
+
+	ret = bitmap_scnlistprintf(buf, PAGE_SIZE - 2, bits, n_events);
+	buf[ret++] = '\n';
+	buf[ret] = '\0';
+
+	kfree(bits);
+
+	return ret;
+}
+
+/**
+ * gpio_keys_attr_store_helper() - enable/disable buttons based on given bitmap
+ * @ddata: pointer to drvdata
+ * @buf: buffer from userspace that contains stringified bitmap
+ * @type: button type (%EV_KEY, %EV_SW)
+ *
+ * This function parses stringified bitmap from @buf and disables/enables
+ * GPIO buttons accordinly. Returns 0 on success and negative error
+ * on failure.
+ */
+static ssize_t gpio_keys_attr_store_helper(struct gpio_keys_drvdata *ddata,
+					   const char *buf, unsigned int type)
+{
+	int n_events = get_n_events_by_type(type);
+	unsigned long *bits;
+	ssize_t error;
+	int i;
+
+	bits = kcalloc(BITS_TO_LONGS(n_events), sizeof(*bits), GFP_KERNEL);
+	if (!bits)
+		return -ENOMEM;
+
+	error = bitmap_parselist(buf, bits, n_events);
+	if (error)
+		goto out;
+
+	/* First validate */
+	for (i = 0; i < ddata->n_buttons; i++) {
+		struct gpio_button_data *bdata = &ddata->data[i];
+
+		if (bdata->button->type != type)
+			continue;
+
+		if (test_bit(bdata->button->code, bits) &&
+		    !bdata->button->can_disable) {
+			error = -EINVAL;
+			goto out;
+		}
+	}
+
+	mutex_lock(&ddata->disable_lock);
+
+	for (i = 0; i < ddata->n_buttons; i++) {
+		struct gpio_button_data *bdata = &ddata->data[i];
+
+		if (bdata->button->type != type)
+			continue;
+
+		if (test_bit(bdata->button->code, bits))
+			gpio_keys_disable_button(bdata);
+		else
+			gpio_keys_enable_button(bdata);
+	}
+
+	mutex_unlock(&ddata->disable_lock);
+
+out:
+	kfree(bits);
+	return error;
+}
+
+#define ATTR_SHOW_FN(name, type, only_disabled)				\
+static ssize_t gpio_keys_show_##name(struct device *dev,		\
+				     struct device_attribute *attr,	\
+				     char *buf)				\
+{									\
+	struct platform_device *pdev = to_platform_device(dev);		\
+	struct gpio_keys_drvdata *ddata = platform_get_drvdata(pdev);	\
+									\
+	return gpio_keys_attr_show_helper(ddata, buf,			\
+					  type, only_disabled);		\
+}
+
+ATTR_SHOW_FN(keys, EV_KEY, false);
+ATTR_SHOW_FN(switches, EV_SW, false);
+ATTR_SHOW_FN(disabled_keys, EV_KEY, true);
+ATTR_SHOW_FN(disabled_switches, EV_SW, true);
+
+/*
+ * ATTRIBUTES:
+ *
+ * /sys/devices/platform/gpio-keys/keys [ro]
+ * /sys/devices/platform/gpio-keys/switches [ro]
+ */
+static DEVICE_ATTR(keys, S_IRUGO, gpio_keys_show_keys, NULL);
+static DEVICE_ATTR(switches, S_IRUGO, gpio_keys_show_switches, NULL);
+
+#define ATTR_STORE_FN(name, type)					\
+static ssize_t gpio_keys_store_##name(struct device *dev,		\
+				      struct device_attribute *attr,	\
+				      const char *buf,			\
+				      size_t count)			\
+{									\
+	struct platform_device *pdev = to_platform_device(dev);		\
+	struct gpio_keys_drvdata *ddata = platform_get_drvdata(pdev);	\
+	ssize_t error;							\
+									\
+	error = gpio_keys_attr_store_helper(ddata, buf, type);		\
+	if (error)							\
+		return error;						\
+									\
+	return count;							\
+}
+
+ATTR_STORE_FN(disabled_keys, EV_KEY);
+ATTR_STORE_FN(disabled_switches, EV_SW);
+
+/*
+ * ATTRIBUTES:
+ *
+ * /sys/devices/platform/gpio-keys/disabled_keys [rw]
+ * /sys/devices/platform/gpio-keys/disables_switches [rw]
+ */
+static DEVICE_ATTR(disabled_keys, S_IWUSR | S_IRUGO,
+		   gpio_keys_show_disabled_keys,
+		   gpio_keys_store_disabled_keys);
+static DEVICE_ATTR(disabled_switches, S_IWUSR | S_IRUGO,
+		   gpio_keys_show_disabled_switches,
+		   gpio_keys_store_disabled_switches);
+
+static struct attribute *gpio_keys_attrs[] = {
+	&dev_attr_keys.attr,
+	&dev_attr_switches.attr,
+	&dev_attr_disabled_keys.attr,
+	&dev_attr_disabled_switches.attr,
+	NULL,
+};
+
+static struct attribute_group gpio_keys_attr_group = {
+	.attrs = gpio_keys_attrs,
+};
+
 static void gpio_keys_report_event(struct work_struct *work)
 {
 	struct gpio_button_data *bdata =
@@ -73,11 +349,13 @@ static irqreturn_t gpio_keys_isr(int irq, void *dev_id)
 	return IRQ_HANDLED;
 }
 
-static int __devinit gpio_keys_setup_key(struct device *dev,
+static int __devinit gpio_keys_setup_key(struct platform_device *pdev,
 					 struct gpio_button_data *bdata,
 					 struct gpio_keys_button *button)
 {
 	char *desc = button->desc ? button->desc : "gpio_keys";
+	struct device *dev = &pdev->dev;
+	unsigned long irqflags;
 	int irq, error;
 
 	setup_timer(&bdata->timer, gpio_keys_timer, (unsigned long)bdata);
@@ -106,10 +384,15 @@ static int __devinit gpio_keys_setup_key(struct device *dev,
 		goto fail3;
 	}
 
-	error = request_irq(irq, gpio_keys_isr,
-			    IRQF_SHARED |
-			    IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING,
-			    desc, bdata);
+	irqflags = IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING;
+	/*
+	 * If platform has specified that the button can be disabled,
+	 * we don't want it to share the interrupt line.
+	 */
+	if (!button->can_disable)
+		irqflags |= IRQF_SHARED;
+
+	error = request_irq(irq, gpio_keys_isr, irqflags, desc, bdata);
 	if (error) {
 		dev_err(dev, "Unable to claim irq %d; error %d\n",
 			irq, error);
@@ -143,6 +426,10 @@ static int __devinit gpio_keys_probe(struct platform_device *pdev)
 		goto fail1;
 	}
 
+	ddata->input = input;
+	ddata->n_buttons = pdata->nbuttons;
+	mutex_init(&ddata->disable_lock);
+
 	platform_set_drvdata(pdev, ddata);
 
 	input->name = pdev->name;
@@ -158,8 +445,6 @@ static int __devinit gpio_keys_probe(struct platform_device *pdev)
 	if (pdata->rep)
 		__set_bit(EV_REP, input->evbit);
 
-	ddata->input = input;
-
 	for (i = 0; i < pdata->nbuttons; i++) {
 		struct gpio_keys_button *button = &pdata->buttons[i];
 		struct gpio_button_data *bdata = &ddata->data[i];
@@ -168,7 +453,7 @@ static int __devinit gpio_keys_probe(struct platform_device *pdev)
 		bdata->input = input;
 		bdata->button = button;
 
-		error = gpio_keys_setup_key(dev, bdata, button);
+		error = gpio_keys_setup_key(pdev, bdata, button);
 		if (error)
 			goto fail2;
 
@@ -178,17 +463,26 @@ static int __devinit gpio_keys_probe(struct platform_device *pdev)
 		input_set_capability(input, type, button->code);
 	}
 
-	error = input_register_device(input);
+	error = sysfs_create_group(&pdev->dev.kobj, &gpio_keys_attr_group);
 	if (error) {
-		dev_err(dev, "Unable to register input device, "
-			"error: %d\n", error);
+		dev_err(dev, "Unable to export keys/switches, error: %d\n",
+			error);
 		goto fail2;
 	}
 
+	error = input_register_device(input);
+	if (error) {
+		dev_err(dev, "Unable to register input device, error: %d\n",
+			error);
+		goto fail3;
+	}
+
 	device_init_wakeup(&pdev->dev, wakeup);
 
 	return 0;
 
+ fail3:
+	sysfs_remove_group(&pdev->dev.kobj, &gpio_keys_attr_group);
  fail2:
 	while (--i >= 0) {
 		free_irq(gpio_to_irq(pdata->buttons[i].gpio), &ddata->data[i]);
@@ -213,6 +507,8 @@ static int __devexit gpio_keys_remove(struct platform_device *pdev)
 	struct input_dev *input = ddata->input;
 	int i;
 
+	sysfs_remove_group(&pdev->dev.kobj, &gpio_keys_attr_group);
+
 	device_init_wakeup(&pdev->dev, 0);
 
 	for (i = 0; i < pdata->nbuttons; i++) {
diff --git a/include/linux/gpio_keys.h b/include/linux/gpio_keys.h
index 1289fa7..cd0b3f3 100644
--- a/include/linux/gpio_keys.h
+++ b/include/linux/gpio_keys.h
@@ -10,6 +10,7 @@ struct gpio_keys_button {
 	int type;		/* input event type (EV_KEY, EV_SW) */
 	int wakeup;		/* configure the button as a wake-up source */
 	int debounce_interval;	/* debounce ticks interval in msecs */
+	bool can_disable;
 };
 
 struct gpio_keys_platform_data {
-- 
1.5.6.5


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

* Re: [PATCH v3 0/1] Input: gpio-keys: support for disabling GPIOs
  2009-12-01 13:53 [PATCH v3 0/1] Input: gpio-keys: support for disabling GPIOs Mika Westerberg
  2009-12-01 13:53 ` [PATCH v3 1/1] Input: gpio-keys - added support for disabling gpios through sysfs Mika Westerberg
@ 2009-12-03  6:19 ` Mika Westerberg
  2009-12-03  6:26   ` Dmitry Torokhov
  1 sibling, 1 reply; 12+ messages in thread
From: Mika Westerberg @ 2009-12-03  6:19 UTC (permalink / raw)
  To: dmitry.torokhov; +Cc: linux-input

On Tue, Dec 01, 2009 at 03:53:45PM +0200, Mika Westerberg wrote:
>
> This is third version of the series. Purpose of this patch is to allow
> userland to disable GPIO buttons interrupting the CPU. There is now sysfs
> interface that can be used to control the buttons by key code or by switch
> code.
> 
> I merged those previous 2 patches as one. This is because it made little
> sense of having separate patch for adding the 'can_disable' field.
> 
> Changes in v3:
> 	- merged previous 2 patches into one
> 	- buttons have 'can_disable' field instead of irqflags field
> 
> Tested with RX-51.

Hi Dmitry,

Any comments on this? Is it OK to be applied or do I need to change
something.

Thanks again,
MW

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

* Re: [PATCH v3 0/1] Input: gpio-keys: support for disabling GPIOs
  2009-12-03  6:19 ` [PATCH v3 0/1] Input: gpio-keys: support for disabling GPIOs Mika Westerberg
@ 2009-12-03  6:26   ` Dmitry Torokhov
  2009-12-03  8:09     ` Mika Westerberg
  2009-12-15  7:05     ` Mika Westerberg
  0 siblings, 2 replies; 12+ messages in thread
From: Dmitry Torokhov @ 2009-12-03  6:26 UTC (permalink / raw)
  To: Mika Westerberg; +Cc: linux-input

On Thu, Dec 03, 2009 at 08:19:12AM +0200, Mika Westerberg wrote:
> On Tue, Dec 01, 2009 at 03:53:45PM +0200, Mika Westerberg wrote:
> >
> > This is third version of the series. Purpose of this patch is to allow
> > userland to disable GPIO buttons interrupting the CPU. There is now sysfs
> > interface that can be used to control the buttons by key code or by switch
> > code.
> > 
> > I merged those previous 2 patches as one. This is because it made little
> > sense of having separate patch for adding the 'can_disable' field.
> > 
> > Changes in v3:
> > 	- merged previous 2 patches into one
> > 	- buttons have 'can_disable' field instead of irqflags field
> > 
> > Tested with RX-51.
> 
> Hi Dmitry,
> 
> Any comments on this? Is it OK to be applied or do I need to change
> something.
> 

Hi Mika,

SOrry, I am still pondering how to go about it. I am sure that the sysfs
interface is proper, so at this point it is just implementation details
that I am not quite sure yet...

-- 
Dmitry

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

* Re: [PATCH v3 0/1] Input: gpio-keys: support for disabling GPIOs
  2009-12-03  6:26   ` Dmitry Torokhov
@ 2009-12-03  8:09     ` Mika Westerberg
  2009-12-15  7:05     ` Mika Westerberg
  1 sibling, 0 replies; 12+ messages in thread
From: Mika Westerberg @ 2009-12-03  8:09 UTC (permalink / raw)
  To: Dmitry Torokhov; +Cc: linux-input

On Wed, Dec 02, 2009 at 10:26:41PM -0800, Dmitry Torokhov wrote:
> On Thu, Dec 03, 2009 at 08:19:12AM +0200, Mika Westerberg wrote:
> > On Tue, Dec 01, 2009 at 03:53:45PM +0200, Mika Westerberg wrote:
> > >
> > > This is third version of the series. Purpose of this patch is to allow
> > > userland to disable GPIO buttons interrupting the CPU. There is now sysfs
> > > interface that can be used to control the buttons by key code or by switch
> > > code.
> > > 
> > > I merged those previous 2 patches as one. This is because it made little
> > > sense of having separate patch for adding the 'can_disable' field.
> > > 
> > > Changes in v3:
> > > 	- merged previous 2 patches into one
> > > 	- buttons have 'can_disable' field instead of irqflags field
> > > 
> > > Tested with RX-51.
> > 
> > Hi Dmitry,
> > 
> > Any comments on this? Is it OK to be applied or do I need to change
> > something.
> > 
> 
> Hi Mika,
> 
> SOrry, I am still pondering how to go about it. I am sure that the sysfs
> interface is proper, so at this point it is just implementation details
> that I am not quite sure yet...

Ok, thanks.

Please let me know if there is need to change something. We would really
like this to be merged with .33.

Thanks for your time,
MW

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

* Re: [PATCH v3 0/1] Input: gpio-keys: support for disabling GPIOs
  2009-12-03  6:26   ` Dmitry Torokhov
  2009-12-03  8:09     ` Mika Westerberg
@ 2009-12-15  7:05     ` Mika Westerberg
  2009-12-16  8:25       ` Dmitry Torokhov
  1 sibling, 1 reply; 12+ messages in thread
From: Mika Westerberg @ 2009-12-15  7:05 UTC (permalink / raw)
  To: Dmitry Torokhov; +Cc: linux-input

On Wed, Dec 02, 2009 at 10:26:41PM -0800, Dmitry Torokhov wrote:
> On Thu, Dec 03, 2009 at 08:19:12AM +0200, Mika Westerberg wrote:
> > On Tue, Dec 01, 2009 at 03:53:45PM +0200, Mika Westerberg wrote:
> > >
> > > This is third version of the series. Purpose of this patch is to allow
> > > userland to disable GPIO buttons interrupting the CPU. There is now sysfs
> > > interface that can be used to control the buttons by key code or by switch
> > > code.
> > > 
> > > I merged those previous 2 patches as one. This is because it made little
> > > sense of having separate patch for adding the 'can_disable' field.
> > > 
> > > Changes in v3:
> > > 	- merged previous 2 patches into one
> > > 	- buttons have 'can_disable' field instead of irqflags field
> > > 
> > > Tested with RX-51.
> > 
> > Hi Dmitry,
> > 
> > Any comments on this? Is it OK to be applied or do I need to change
> > something.
> > 
> 
> Hi Mika,
> 
> SOrry, I am still pondering how to go about it. I am sure that the sysfs
> interface is proper, so at this point it is just implementation details
> that I am not quite sure yet...

Hi Dmitry,

Have you decided yet what to do with these patches?

Thanks,
MW

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

* Re: [PATCH v3 0/1] Input: gpio-keys: support for disabling GPIOs
  2009-12-15  7:05     ` Mika Westerberg
@ 2009-12-16  8:25       ` Dmitry Torokhov
  2010-01-10 11:45         ` Artem Bityutskiy
  2010-01-28 21:21         ` Artem Bityutskiy
  0 siblings, 2 replies; 12+ messages in thread
From: Dmitry Torokhov @ 2009-12-16  8:25 UTC (permalink / raw)
  To: Mika Westerberg; +Cc: linux-input

On Tue, Dec 15, 2009 at 09:05:07AM +0200, Mika Westerberg wrote:
> On Wed, Dec 02, 2009 at 10:26:41PM -0800, Dmitry Torokhov wrote:
> > On Thu, Dec 03, 2009 at 08:19:12AM +0200, Mika Westerberg wrote:
> > > On Tue, Dec 01, 2009 at 03:53:45PM +0200, Mika Westerberg wrote:
> > > >
> > > > This is third version of the series. Purpose of this patch is to allow
> > > > userland to disable GPIO buttons interrupting the CPU. There is now sysfs
> > > > interface that can be used to control the buttons by key code or by switch
> > > > code.
> > > > 
> > > > I merged those previous 2 patches as one. This is because it made little
> > > > sense of having separate patch for adding the 'can_disable' field.
> > > > 
> > > > Changes in v3:
> > > > 	- merged previous 2 patches into one
> > > > 	- buttons have 'can_disable' field instead of irqflags field
> > > > 
> > > > Tested with RX-51.
> > > 
> > > Hi Dmitry,
> > > 
> > > Any comments on this? Is it OK to be applied or do I need to change
> > > something.
> > > 
> > 
> > Hi Mika,
> > 
> > SOrry, I am still pondering how to go about it. I am sure that the sysfs
> > interface is proper, so at this point it is just implementation details
> > that I am not quite sure yet...
> 
> Hi Dmitry,
> 
> Have you decided yet what to do with these patches?
> 

Hi Mika,

Sorry, not yet, have been busy with some other stuff ;(

-- 
Dmitry

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

* Re: [PATCH v3 0/1] Input: gpio-keys: support for disabling GPIOs
  2009-12-16  8:25       ` Dmitry Torokhov
@ 2010-01-10 11:45         ` Artem Bityutskiy
  2010-01-28 21:21         ` Artem Bityutskiy
  1 sibling, 0 replies; 12+ messages in thread
From: Artem Bityutskiy @ 2010-01-10 11:45 UTC (permalink / raw)
  To: Dmitry Torokhov; +Cc: Mika Westerberg, linux-input

On Wed, 2009-12-16 at 00:25 -0800, Dmitry Torokhov wrote:
> On Tue, Dec 15, 2009 at 09:05:07AM +0200, Mika Westerberg wrote:
> > On Wed, Dec 02, 2009 at 10:26:41PM -0800, Dmitry Torokhov wrote:
> > > On Thu, Dec 03, 2009 at 08:19:12AM +0200, Mika Westerberg wrote:
> > > > On Tue, Dec 01, 2009 at 03:53:45PM +0200, Mika Westerberg wrote:
> > > > >
> > > > > This is third version of the series. Purpose of this patch is to allow
> > > > > userland to disable GPIO buttons interrupting the CPU. There is now sysfs
> > > > > interface that can be used to control the buttons by key code or by switch
> > > > > code.
> > > > > 
> > > > > I merged those previous 2 patches as one. This is because it made little
> > > > > sense of having separate patch for adding the 'can_disable' field.
> > > > > 
> > > > > Changes in v3:
> > > > > 	- merged previous 2 patches into one
> > > > > 	- buttons have 'can_disable' field instead of irqflags field
> > > > > 
> > > > > Tested with RX-51.
> > > > 
> > > > Hi Dmitry,
> > > > 
> > > > Any comments on this? Is it OK to be applied or do I need to change
> > > > something.
> > > > 
> > > 
> > > Hi Mika,
> > > 
> > > SOrry, I am still pondering how to go about it. I am sure that the sysfs
> > > interface is proper, so at this point it is just implementation details
> > > that I am not quite sure yet...
> > 
> > Hi Dmitry,
> > 
> > Have you decided yet what to do with these patches?
> > 
> 
> Hi Mika,
> 
> Sorry, not yet, have been busy with some other stuff ;(

Hi Dmitry,

just a humble reminder.

(We missed .33, would be really cool not to miss .34)

-- 
Best Regards,
Artem Bityutskiy (Артём Битюцкий)

--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

* Re: [PATCH v3 0/1] Input: gpio-keys: support for disabling GPIOs
  2009-12-16  8:25       ` Dmitry Torokhov
  2010-01-10 11:45         ` Artem Bityutskiy
@ 2010-01-28 21:21         ` Artem Bityutskiy
  2010-02-04  8:53           ` Dmitry Torokhov
  1 sibling, 1 reply; 12+ messages in thread
From: Artem Bityutskiy @ 2010-01-28 21:21 UTC (permalink / raw)
  To: Dmitry Torokhov; +Cc: Mika Westerberg, linux-input

On Wed, 2009-12-16 at 00:25 -0800, Dmitry Torokhov wrote:
> On Tue, Dec 15, 2009 at 09:05:07AM +0200, Mika Westerberg wrote:
> > On Wed, Dec 02, 2009 at 10:26:41PM -0800, Dmitry Torokhov wrote:
> > > On Thu, Dec 03, 2009 at 08:19:12AM +0200, Mika Westerberg wrote:
> > > > On Tue, Dec 01, 2009 at 03:53:45PM +0200, Mika Westerberg wrote:
> > > > >
> > > > > This is third version of the series. Purpose of this patch is to allow
> > > > > userland to disable GPIO buttons interrupting the CPU. There is now sysfs
> > > > > interface that can be used to control the buttons by key code or by switch
> > > > > code.
> > > > > 
> > > > > I merged those previous 2 patches as one. This is because it made little
> > > > > sense of having separate patch for adding the 'can_disable' field.
> > > > > 
> > > > > Changes in v3:
> > > > > 	- merged previous 2 patches into one
> > > > > 	- buttons have 'can_disable' field instead of irqflags field
> > > > > 
> > > > > Tested with RX-51.
> > > > 
> > > > Hi Dmitry,
> > > > 
> > > > Any comments on this? Is it OK to be applied or do I need to change
> > > > something.
> > > > 
> > > 
> > > Hi Mika,
> > > 
> > > SOrry, I am still pondering how to go about it. I am sure that the sysfs
> > > interface is proper, so at this point it is just implementation details
> > > that I am not quite sure yet...
> > 
> > Hi Dmitry,
> > 
> > Have you decided yet what to do with these patches?
> > 
> 
> Hi Mika,
> 
> Sorry, not yet, have been busy with some other stuff ;(

Hi Dmitry,

any news? We missed 2.6.33, and the next merge window is coming ...

-- 
Best Regards,
Artem Bityutskiy (Артём Битюцкий)

--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

* Re: [PATCH v3 0/1] Input: gpio-keys: support for disabling GPIOs
  2010-01-28 21:21         ` Artem Bityutskiy
@ 2010-02-04  8:53           ` Dmitry Torokhov
  2010-02-04  9:22             ` Artem Bityutskiy
  2010-02-04 18:00             ` Mika Westerberg
  0 siblings, 2 replies; 12+ messages in thread
From: Dmitry Torokhov @ 2010-02-04  8:53 UTC (permalink / raw)
  To: Artem Bityutskiy; +Cc: Mika Westerberg, linux-input

On Thu, Jan 28, 2010 at 11:21:06PM +0200, Artem Bityutskiy wrote:
> On Wed, 2009-12-16 at 00:25 -0800, Dmitry Torokhov wrote:
> > On Tue, Dec 15, 2009 at 09:05:07AM +0200, Mika Westerberg wrote:
> > > On Wed, Dec 02, 2009 at 10:26:41PM -0800, Dmitry Torokhov wrote:
> > > > On Thu, Dec 03, 2009 at 08:19:12AM +0200, Mika Westerberg wrote:
> > > > > On Tue, Dec 01, 2009 at 03:53:45PM +0200, Mika Westerberg wrote:
> > > > > >
> > > > > > This is third version of the series. Purpose of this patch is to allow
> > > > > > userland to disable GPIO buttons interrupting the CPU. There is now sysfs
> > > > > > interface that can be used to control the buttons by key code or by switch
> > > > > > code.
> > > > > > 
> > > > > > I merged those previous 2 patches as one. This is because it made little
> > > > > > sense of having separate patch for adding the 'can_disable' field.
> > > > > > 
> > > > > > Changes in v3:
> > > > > > 	- merged previous 2 patches into one
> > > > > > 	- buttons have 'can_disable' field instead of irqflags field
> > > > > > 
> > > > > > Tested with RX-51.
> > > > > 
> > > > > Hi Dmitry,
> > > > > 
> > > > > Any comments on this? Is it OK to be applied or do I need to change
> > > > > something.
> > > > > 
> > > > 
> > > > Hi Mika,
> > > > 
> > > > SOrry, I am still pondering how to go about it. I am sure that the sysfs
> > > > interface is proper, so at this point it is just implementation details
> > > > that I am not quite sure yet...
> > > 
> > > Hi Dmitry,
> > > 
> > > Have you decided yet what to do with these patches?
> > > 
> > 
> > Hi Mika,
> > 
> > Sorry, not yet, have been busy with some other stuff ;(
> 
> Hi Dmitry,
> 
> any news? We missed 2.6.33, and the next merge window is coming ...
> 

Artem, Mika,

I was hoping to do something different about the new 'can_disable' flag
but unfortunately I don't have enough time and I already sat on the
patch for way too long. :(

It is applied to my 'next' branch and should get pulled into 2.6.34.

Thank you for your patience and sorry about the delay.

-- 
Dmitry

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

* Re: [PATCH v3 0/1] Input: gpio-keys: support for disabling GPIOs
  2010-02-04  8:53           ` Dmitry Torokhov
@ 2010-02-04  9:22             ` Artem Bityutskiy
  2010-02-04 18:00             ` Mika Westerberg
  1 sibling, 0 replies; 12+ messages in thread
From: Artem Bityutskiy @ 2010-02-04  9:22 UTC (permalink / raw)
  To: Dmitry Torokhov; +Cc: Mika Westerberg, linux-input

On Thu, 2010-02-04 at 00:53 -0800, Dmitry Torokhov wrote:
> Artem, Mika,
> 
> I was hoping to do something different about the new 'can_disable' flag
> but unfortunately I don't have enough time and I already sat on the
> patch for way too long. :(
> 
> It is applied to my 'next' branch and should get pulled into 2.6.34.
> 
> Thank you for your patience and sorry about the delay.

Great, thank you!

-- 
Best Regards,
Artem Bityutskiy (Артём Битюцкий)

--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

* Re: [PATCH v3 0/1] Input: gpio-keys: support for disabling GPIOs
  2010-02-04  8:53           ` Dmitry Torokhov
  2010-02-04  9:22             ` Artem Bityutskiy
@ 2010-02-04 18:00             ` Mika Westerberg
  1 sibling, 0 replies; 12+ messages in thread
From: Mika Westerberg @ 2010-02-04 18:00 UTC (permalink / raw)
  To: Dmitry Torokhov; +Cc: Artem Bityutskiy, linux-input

On Thu, Feb 04, 2010 at 12:53:56AM -0800, Dmitry Torokhov wrote:
> 
> Artem, Mika,
> 
> I was hoping to do something different about the new 'can_disable' flag
> but unfortunately I don't have enough time and I already sat on the
> patch for way too long. :(
> 
> It is applied to my 'next' branch and should get pulled into 2.6.34.
> 
> Thank you for your patience and sorry about the delay.

Thank you very much!

Regards,
MW

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

end of thread, other threads:[~2010-02-04 18:00 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-12-01 13:53 [PATCH v3 0/1] Input: gpio-keys: support for disabling GPIOs Mika Westerberg
2009-12-01 13:53 ` [PATCH v3 1/1] Input: gpio-keys - added support for disabling gpios through sysfs Mika Westerberg
2009-12-03  6:19 ` [PATCH v3 0/1] Input: gpio-keys: support for disabling GPIOs Mika Westerberg
2009-12-03  6:26   ` Dmitry Torokhov
2009-12-03  8:09     ` Mika Westerberg
2009-12-15  7:05     ` Mika Westerberg
2009-12-16  8:25       ` Dmitry Torokhov
2010-01-10 11:45         ` Artem Bityutskiy
2010-01-28 21:21         ` Artem Bityutskiy
2010-02-04  8:53           ` Dmitry Torokhov
2010-02-04  9:22             ` Artem Bityutskiy
2010-02-04 18:00             ` Mika Westerberg

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).