Thread (21 messages) 21 messages, 5 authors, 2015-01-16

[PATCH v5 1/3] gpio: Cygnus: define Broadcom Cygnus GPIO binding

From: Russell King - ARM Linux <hidden>
Date: 2015-01-13 11:41:32
Also in: linux-devicetree, linux-gpio, lkml

On Tue, Jan 13, 2015 at 09:06:15AM +0100, Linus Walleij wrote:
On Wed, Dec 17, 2014 at 11:44 AM, Russell King - ARM Linux
[off-list ref] wrote:
quoted
On Wed, Dec 17, 2014 at 11:45:01AM +0900, Alexandre Courbot wrote:
quoted
Actually we are not that far from being able to do completely without
any GPIO number, and maybe that's what we should aim for. I think the
only remaining offender is the sysfs interface.
And that is a user API, and there's lots of users of it (eg, on Raspberry
Pi platforms.)  So changing it isn't going to be easy - I'd say that it's
impractical.

What you're suggesting would be like re-numbering Linux syscalls.
The problem is that right now if we set the .base of a gpio_chip
to -1 for dynamic allocation of GPIO numbers and we have more
than one GPIO chip in the system, the numbers basically depend
on probe order, and may theoretically even differ between two boots.

So in these cases preserving the ABI means preserving the
unpredictability of these assigned numbers or something.

For the old usecases with a single GPIO controller and a fixed
base offset of e.g. 0 (which I suspect was implicit in the initial
design of the subsystem) things work fine as always, it's these new
dynamic use cases that destabilize the ABI.
Since GPIOs are exported through sysfs into userland by GPIO number,
and we know that there are users of it (see
https://github.com/pilight/wiringX) which hard encode GPIO numbers,
so this is *really* something that we as kernel developers can't
change without breaking such users.

So, what I'm saying is be very careful about moving to a fully
dynamic space: you could end up breaking userspace if you do.

-- 
FTTC broadband for 0.8mile line: currently at 10.5Mbps down 400kbps up
according to speedtest.net.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help