Thread (10 messages) 10 messages, 4 authors, 2015-02-05

Re: [PATCH v4] gpio: lib-sysfs: Add 'wakeup' attribute

From: Sören Brinkmann <hidden>
Date: 2015-01-16 17:05:06
Also in: linux-gpio, lkml

On Fri, 2015-01-16 at 12:11PM +0100, Johan Hovold wrote:
On Thu, Jan 15, 2015 at 11:49:49AM -0800, Soren Brinkmann wrote:
quoted
Add an attribute 'wakeup' to the GPIO sysfs interface which allows
marking/unmarking a GPIO as wake IRQ.
The file 'wakeup' is created in each exported GPIOs directory, if an IRQ
is associated with that GPIO and the irqchip implements set_wake().
Writing 'enabled' to that file will enable wake for that GPIO, while
writing 'disabled' will disable wake.
Reading that file will return either 'disabled' or 'enabled' depening on
the currently set flag for the GPIO's IRQ.

Signed-off-by: Soren Brinkmann <redacted>
Reviewed-by: Alexandre Courbot <redacted>
---
Hi Linus, Johan,

I rebased my patch. And things look good.
I took at closer look at this patch now and I really don't think it
should be merged at all.

We have a mechanism for handling wake-up sources (documented in
Documentation/power/devices.txt) as well as an ABI to enable/disable
them using the power/wakeup device attribute from userspace.
Doesn't work for GPIOs AFAIK.
Implementing proper wakeup support for unclaimed GPIOs would take some
work (if at all desired), but that is not a reason to be adding custom
implementations that violates the kernel's power policies and new ABIs
that would need to be maintained forever.
These are claimed, by the sysfs interface.
[ And we really shouldn't be adding anything to the broken gpio sysfs
interface until it's been redesigned. ]

Meanwhile you can (should) use gpio-keys if you need to wake your system
on gpio events.
We had that discussion and I don't think GPIO keys is the right solution
for every use-case.
quoted
But the 'is_visible' things does not behave the way I expected it to.
It seems to be only triggered on an export but not when attributes
change. Hence, in my case, everything was visiible since the inital
state matches that, but even when changing the direction or things
like that, attributes don't disappear. Is that something still worked
on? Expected
That's expected. We generally don't want attributes to appear or
disappear after the device has been registered (although there is a
mechanism for cases were it makes sense). This is no different from
how your v3 patch worked either.
Sure, but the is_visible thing is effectively broken for GPIO. I think a
GPIO is in a defined state when exported and the checks all work on that
state during export. But then this state can be changed through the
sysfs interface. So, if the initial state hides something it becomes
unavailable for all times and, vice versa, if the initial state makes
something visible, it will stay even when it is no longer a valid
property to change.

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