Re: [RFC PATCH 3/5] gpio: gpiolib: Add chardev support for maintaining GPIO values on reset
From: Charles Keepax <hidden>
Date: 2017-10-26 09:11:27
Also in:
linux-aspeed, linux-devicetree, lkml, openbmc
On Thu, Oct 26, 2017 at 10:35:39AM +1030, Andrew Jeffery wrote:
On Wed, 2017-10-25 at 09:14 +0100, Charles Keepax wrote:quoted
On Fri, Oct 20, 2017 at 07:32:53PM +1030, Andrew Jeffery wrote:quoted
On Fri, 2017-10-20 at 09:27 +0200, Linus Walleij wrote:quoted
I don't see it as helpful to give userspace control over whether the line is persistent or not. It is more reasonable to assume persistance for userspace use cases, don't you think? Whether the system goes to sleep or the gpiochip resets should not make a door suddenly close or the lights in the christmas tree go out, right? I think if the gpiochip supports persistance of any kind, we should try to use it and not have userspace provide flags for that.Right. I guess the counter argument to your examples is if the gpio is controlling any active process that we don't want to continue if we've lost the capacity to monitor some other inputs (some kind of dead-man's switch). But maybe the argument is that should be implemented in the kernel anyway?To me it certainly feels like decisions like this should live in the kernel, your talking about things that could cause very weird hardware behaviour if set wrong, so it makes sense to me to have that responsibility guarded in the kernel.I feel that taking this argument to its logical conclusion leads to never exporting any GPIOs to userspace and doing everything in the kernel. If userspace has exported the GPIO and is managing its state, then it can *already* cause very weird hardware behaviour if set wrong. The fact that userspace is controlling the GPIO state and not the kernel already says that the kernel doesn't know how to manage it, so why not expose the option for userspace to set the persistence, given that it should know what it's doing?
Admittedly yes, I guess it really comes down to use-cases. There are fairly strong use-cases to control GPIOs from user-space that justify the risks. The use-cases for being able to set non-persistent GPIOs from user-space seem less clear to me, but if they exist I certainly don't have any objection. Thanks, Charles -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html