All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ferenc Wagner <wferi@niif.hu>
To: linux-pm@lists.linux-foundation.org
Cc: Mika Westerberg <mika.westerberg@iki.fi>,
	ext Dmitry Torokhov <dmitry.torokhov@gmail.com>,
	"linux-input@vger.kernel.org" <linux-input@vger.kernel.org>
Subject: Re: [PATCH v2 1/2] Input: gpio-keys - allow platform to specify exact irq flags
Date: Sun, 29 Nov 2009 13:26:17 +0100	[thread overview]
Message-ID: <87skbx34ba.fsf__33923.8777444281$1259497649$gmane$org@tac.ki.iif.hu> (raw)
In-Reply-To: <20091128132742.GC27249@gw.healthdatacare.com> (Mika Westerberg's message of "Sat, 28 Nov 2009 15:27:42 +0200")

Mika Westerberg <mika.westerberg@iki.fi> writes:

> On Sat, Nov 28, 2009 at 01:16:48PM +0100, Ferenc Wagner wrote:
>
>> Mika Westerberg <ext-mika.1.westerberg@nokia.com> writes:
>> 
>>> How about if we just add one field to struct gpio_keys_button?
>>> 	...
>>> 	bool can_disable;
>>>
>>> Then gpio_keys uses this field when it decides what irqflags it
>>> is going to pass to request_irq() (we don't allow platform data
>>> to pass exact flags). So in case of can_disable is set, we don't
>>> pass IRQF_SHARED to request_irq().
>>>
>>> When support for sharing single IRQ between multiple buttons arrives
>>> this field is still valid and we just need to take care of disable IRQ
>>> line only when all buttons that share it, are disabled.
>>>
>>> This won't break existing users of gpio_keys and allows future
>>> extension to support case of multiple buttons sharing single
>>> IRQ line, right?
>> 
>> Please don't shoot me, but I've got a different idea: what if we leave
>> this whole business to the generic kernel interrupt handling routines?
>> It would be as easy as requesting the IRQ on device open (I guess the
>> input layer can relay the open event down here) and freeing it on close.
>> The IRQ could stat shared all the time, and the kernel would
>> automatically disable it when all handlers are unregistered.  All this
>> means no need to extend the platform data, no need for a separate sysfs
>> interface, and still the application would have complete control of its
>> wakeup sources by opening/closing them as needed.  What do you think?
>
> Yeah, that would be nice. But it won't work for us :(
>
> This is because the actual input device might be open for several
> applications. Then we have single process which controls state of
> the device. Now if, for example the device is locked by user, this
> process just disables those buttons which are not allowed to wake
> up the device and blanks the screen.
>
> So the input device is still open but we just prevent GPIO lines
> from generating any interrupts while the device is locked. There
> are other use-cases also where different buttons are
> disabled/enabled.

Hi,

I thought we'd better ask our friends over at linux-pm, if they've got
some interface for this task.  To summarize: an embedded application
wants to go into a "locked" state, where some input devices (gpio keys
in this case) are "muted", ie. they don't even generate interrupts to
minimize power consumption.  This could be solved by adding a new
interface to gpio-keys, but the problem seems more general, so I wonder
if something like the USB selective runtime suspend is already available
(or preferable to develop) for such tasks.

(I hope I got the summary right; Mika will provide the missing bits if I
didn't.) 
-- 
Thanks,
Feri.

  reply	other threads:[~2009-11-29 12:26 UTC|newest]

Thread overview: 101+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-10-23 12:15 [RFC PATCH 0/1] Enabling/disabling separate gpio-keys buttons Mika Westerberg
2009-10-23 12:15 ` [RFC PATCH 1/1] Input: gpio-keys: export gpio key information through sysfs Mika Westerberg
2009-10-28  5:43   ` Dmitry Torokhov
2009-10-28 10:50     ` Mika Westerberg
2009-11-04  9:06       ` Mika Westerberg
2009-11-04  9:25         ` Artem Bityutskiy
2009-11-06  7:52           ` Dmitry Torokhov
2009-11-09 15:09             ` Artem Bityutskiy
2009-11-09 17:18               ` Dmitry Torokhov
2009-11-10 11:04                 ` Artem Bityutskiy
2009-11-10 17:19                   ` Dmitry Torokhov
2009-11-11  6:50                     ` Artem Bityutskiy
2009-11-11  8:19                       ` Dmitry Torokhov
2009-11-11  8:52                         ` Artem Bityutskiy
2009-11-11  9:59                           ` Dmitry Torokhov
2009-11-11 10:26                             ` Artem Bityutskiy
2009-11-11 10:30                               ` Artem Bityutskiy
2009-11-11 17:40                               ` Dmitry Torokhov
2009-11-12  5:31                                 ` Artem Bityutskiy
2009-11-19  7:23                               ` [PATCH 0/2] Input: gpio-keys: support for disabling GPIOs Mika Westerberg
2009-11-19  7:23                                 ` [PATCH 1/2] Input: gpio-keys: allow drivers to specify whether IRQ can be shared Mika Westerberg
2009-11-19  7:23                                   ` [PATCH 2/2] Input: gpio-keys: added support for disabling gpios through sysfs Mika Westerberg
2009-11-20  8:40                                     ` Dmitry Torokhov
2009-11-20 12:17                                       ` Mika Westerberg
2009-11-23 12:39                                       ` [PATCH v2 0/2] Input: gpio-keys: support for disabling GPIOs Mika Westerberg
2009-11-23 12:39                                         ` [PATCH v2 1/2] Input: gpio-keys - allow platform to specify exact irq flags Mika Westerberg
2009-11-23 12:39                                           ` [PATCH v2 2/2] Input: gpio-keys - added support for disabling gpios through sysfs Mika Westerberg
2009-11-23 16:42                                           ` [PATCH v2 1/2] Input: gpio-keys - allow platform to specify exact irq flags Ferenc Wagner
2009-11-23 17:24                                             ` Dmitry Torokhov
2009-11-23 18:50                                               ` Ferenc Wagner
2009-11-24  6:37                                                 ` Mika Westerberg
2009-11-24 11:05                                                   ` Ferenc Wagner
2009-11-24 17:02                                                     ` Mika Westerberg
2009-11-24 18:39                                                       ` Ferenc Wagner
2009-11-26  6:35                                                         ` Dmitry Torokhov
2009-11-27 10:54                                                           ` Mika Westerberg
2009-11-28 12:16                                                             ` Ferenc Wagner
2009-11-28 13:27                                                               ` Mika Westerberg
2009-11-29 12:26                                                                 ` Ferenc Wagner [this message]
2009-11-29 12:26                                                                 ` Ferenc Wagner
2009-11-29 16:04                                                                   ` Alan Stern
2009-11-29 16:04                                                                   ` [linux-pm] " Alan Stern
2009-11-29 22:58                                                                     ` Ferenc Wagner
2009-11-30  8:27                                                                       ` Mika Westerberg
2009-11-30  8:27                                                                       ` [linux-pm] " Mika Westerberg
2009-11-30  9:14                                                                         ` Dmitry Torokhov
2009-11-30  9:14                                                                         ` [linux-pm] " Dmitry Torokhov
2009-11-30  9:37                                                                           ` Mika Westerberg
2009-11-30  9:37                                                                           ` [linux-pm] " Mika Westerberg
2009-12-01  0:07                                                                             ` Ferenc Wagner
2009-11-30 20:59                                                                         ` Ferenc Wagner
2009-12-01  0:37                                                                           ` Dmitry Torokhov
2009-12-01  1:05                                                                             ` Ferenc Wagner
2009-11-29 22:58                                                                     ` Ferenc Wagner
2009-11-30  9:16                                                                     ` [linux-pm] " Dmitry Torokhov
2009-11-30 15:00                                                                       ` Alan Stern
2009-11-30 19:05                                                                         ` Ferenc Wagner
2009-11-30 19:05                                                                         ` [linux-pm] " Ferenc Wagner
2009-11-30 19:30                                                                           ` Alan Stern
2009-11-30 20:51                                                                             ` Ferenc Wagner
2009-11-30 21:59                                                                               ` Alan Stern
2009-11-30 21:59                                                                               ` [linux-pm] " Alan Stern
2009-12-01 10:08                                                                                 ` Ferenc Wagner
2009-12-01 10:08                                                                                 ` [linux-pm] " Ferenc Wagner
2009-12-01 15:11                                                                                   ` Alan Stern
2009-12-01 15:11                                                                                   ` Alan Stern
2009-11-30 20:51                                                                             ` Ferenc Wagner
2009-11-30 19:30                                                                           ` Alan Stern
2009-12-06  8:47                                                                           ` Pavel Machek
2009-12-06  8:47                                                                           ` [linux-pm] " Pavel Machek
2009-12-08  4:22                                                                             ` Dmitry Torokhov
2009-12-08 13:03                                                                               ` Artem Bityutskiy
2009-12-08 13:03                                                                               ` [linux-pm] " Artem Bityutskiy
2009-12-08 17:42                                                                                 ` Dmitry Torokhov
2009-12-08 17:42                                                                                 ` [linux-pm] " Dmitry Torokhov
2009-12-09  7:31                                                                                   ` Artem Bityutskiy
2009-12-09  7:31                                                                                   ` [linux-pm] " Artem Bityutskiy
2009-12-09 18:03                                                                                     ` Dmitry Torokhov
2009-12-09 21:08                                                                                       ` Pavel Machek
2009-12-09 21:48                                                                                         ` Dmitry Torokhov
2009-12-09 21:48                                                                                         ` [linux-pm] " Dmitry Torokhov
2009-12-10 10:13                                                                                           ` Pavel Machek
2009-12-10 10:13                                                                                           ` Pavel Machek
2009-12-09 21:08                                                                                       ` Pavel Machek
2009-12-10  9:19                                                                                       ` [linux-pm] " Artem Bityutskiy
2009-12-10  9:19                                                                                       ` Artem Bityutskiy
2009-12-09 18:03                                                                                     ` Dmitry Torokhov
2009-12-08  4:22                                                                             ` Dmitry Torokhov
2009-11-30 15:00                                                                       ` Alan Stern
2009-11-30  9:16                                                                     ` Dmitry Torokhov
2009-12-06  8:46                                                                   ` [linux-pm] " Pavel Machek
2009-12-06  8:46                                                                   ` Pavel Machek
2009-11-20  8:38                                   ` [PATCH 1/2] Input: gpio-keys: allow drivers to specify whether IRQ can be shared Dmitry Torokhov
2009-11-20 10:08                                     ` Ferenc Wagner
2009-11-11 10:36                           ` [RFC PATCH 0/2] Input: adding new ioctl()s for enabling/disabling events Mika Westerberg
2009-11-11 10:36                             ` [RFC PATCH 1/2] Input: added 2 new ioctl()s for setting/getting event state Mika Westerberg
2009-11-11 10:36                               ` [RFC PATCH 2/2] Input: gpio-keys: implemented support for enabling/disabling gpios Mika Westerberg
2009-11-11 14:37                                 ` Ferenc Wagner
2009-11-11 14:52                                   ` Mika Westerberg
2009-11-11 17:08                                     ` Dmitry Torokhov
2009-11-12  6:23                                       ` Mika Westerberg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='87skbx34ba.fsf__33923.8777444281$1259497649$gmane$org@tac.ki.iif.hu' \
    --to=wferi@niif.hu \
    --cc=dmitry.torokhov@gmail.com \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-pm@lists.linux-foundation.org \
    --cc=mika.westerberg@iki.fi \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.