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

From: Linus Walleij
Date: Wed Feb 04 2015 - 04:19:49 EST


On Thu, Jan 29, 2015 at 6:23 PM, SÃren Brinkmann
<soren.brinkmann@xxxxxxxxxx> wrote:
> On Mon, 2015-01-19 at 09:54AM +0100, Linus Walleij wrote:
>> On Mon, Jan 19, 2015 at 5:20 AM, Alexandre Courbot <gnurou@xxxxxxxxx> wrote:
>> > On Sat, Jan 17, 2015 at 1:49 AM, SÃren Brinkmann <soren.brinkmann@xxxxxxxxxx> wrote:
>> >> On Fri, 2015-01-16 at 12:11PM +0100, Johan Hovold wrote:
>>
>> >>> 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.
>> (...)
>> >>> 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.
>> >
>> > Sorry, it has been a while - can you remind us of why?
>>
>> There are such cases. Of course keys should be handled by GPIO-keys
>> and these will trigger the right wakeup events in such cases.
>>
>> This is for more esoteric cases: we cannot have a kernel module for
>> everything people want to do with GPIOs, and the use case I accept
>> is GPIOs used in automatic control etc, think factory lines or doors.
>> We can't have a "door" driver or "punch arm" or "fire alarm" driver
>> in the kernel. Those are userspace things.
>>
>> Still such embedded systems need to be able to go to idle and
>> sleep to conerve power, and then they need to put wakeups on
>> these GPIOs.
>>
>> So it is a feature userspace needs, though as with much of the
>> sysfs ABI it is very often abused for things like keys and LEDs which
>> is an abomination but we can't do much about it :(
>
> Thanks for clearing that up.
> What does that mean for this patch? Are we going ahead, accepting the
> extension of this API or do all these use-cases have to wait for the
> rewrite of a proper GPIO userspace interface?

What needs to happen (IMHO) is to make gpio_chips properly obeying
the device model, and then add the attributes for fiddling around with
GPIOs to either the *real* device or create a new char device interface.
Whatever works best. These mock devices are fragile and never
worked properly especially in the removal path as Johans recent
fixes has shown.

Yours,
Linus Walleij
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/