From: plagnioj@jcrosoft.com (Jean-Christophe PLAGNIOL-VILLARD)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH RFC 2/6 v3] gpio: Add sysfs support to block GPIO API
Date: Tue, 16 Oct 2012 10:43:27 +0200 [thread overview]
Message-ID: <20121016084327.GC12801@game.jcrosoft.org> (raw)
In-Reply-To: <CACRpkdZmg4+7Zjm2UJktt1uKvytUW3uaYtKz0nJvLeM2MMSV-Q@mail.gmail.com>
On 22:30 Mon 15 Oct , Linus Walleij wrote:
> I really request Grant to comment on this...too.
>
> On Mon, Oct 15, 2012 at 8:19 PM, Greg Kroah-Hartman
> <gregkh@linuxfoundation.org> wrote:
> > On Mon, Oct 15, 2012 at 08:07:02PM +0200, Jean-Christophe PLAGNIOL-VILLARD wrote:
> >> On 21:11 Fri 12 Oct , Roland Stigge wrote:
> >> > This patch adds sysfs support to the block GPIO API.
> >> >
> >> > Signed-off-by: Roland Stigge <stigge@antcom.de>
> >> >
> >> > ---
> >> > Documentation/ABI/testing/sysfs-gpio | 6
> >> > drivers/gpio/gpiolib.c | 226 ++++++++++++++++++++++++++++++++++-
> >> > include/asm-generic/gpio.h | 11 +
> >> > include/linux/gpio.h | 13 ++
> >> > 4 files changed, 254 insertions(+), 2 deletions(-)
> >> I really don't like this sysfs we need to add a specific device with ioctl
> >
> > Why?
>
> I don't like it either, basically because the GPIO sysfs is not
> entirely sound.
>
> Another patch that is circulating concerns edge triggers and similar,
> and it appear that some parts of the GPIO sysfs is for example
> redefining and exporting IRQchip properties like trigger edge
> in sysfs, while the settings of the irqchip actually used by the driver
> is not reflected in the other direction. So you can *set* these things
> by writing in the GPIO sysfs, but never trust what you *read* from
> there. And you can set what edges an IRQ will trigger on a certain
> GPIO, and the way to handle the IRQs from usespace is to poll
> on a value. This is not really documented but well ...
>
> Part of me just want to delete that, but I can't because it's now
> an ABI.
>
> The "devices" that the sysfs files are tied to are not real devices,
> instead the code look like this: whenever a gpio is exported to
> sysfs, the code calls (drivers/gpio/gpiolib.c):
>
> dev = device_create(&gpio_class, desc->chip->dev, MKDEV(0, 0),
> desc, ioname ? ioname : "gpio%u", gpio);
>
> Mock device just to get a sysfs opening. And once device for
> every GPIO with no hierarchical correspondence to anything
> in the system.
>
> The thing is that struct gpio_chip is not a device at all, it's something
> else.
>
> This inconsistency in the GPIO sysfs implementation make me
> fear adding new stuff to it. The other problems need fixing first.
>
> The reason an ioctl() IMO is better suited to do the job is that
> it can properly represent a multiple-value operation on several
> GPIOs at the same time in a struct, and it can conversely inform
> userspace about which GPIOs may be a block of signals that
> can be fired simultaneously instead of going to string parsing
> and binary values in sysfs which look like worse hacks to me.
>
> The last thing I'm a bit softer on though. Mainly I fear of this
> sysfs ABI growing into a beast.
>
> It was all merged prior to Grant becoming maintainer and
> me becoming co-maintainer of it, so this is legacy business.
>
> Sadly the main creator of this ABI is David Brownell who is
> not able to respond nor maintain it from where he is now. But
> we need to think hard about what we shall do with this particular
> piece of legacy. Some of the stuff was added by Daniel
> Gl?ckner so requesting advice from him.
>
> Daniel: are you interested in helping us fixing the GPIOlib
> sysfs ABI and kernel internals? I'm a bit afraid of it.
My 0.02$ too
Best Regards,
J.
WARNING: multiple messages have this Message-ID (diff)
From: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
To: Linus Walleij <linus.walleij@linaro.org>
Cc: "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Grant Likely" <grant.likely@secretlab.ca>,
"Daniel Glöckner" <daniel-gl@gmx.net>,
"Roland Stigge" <stigge@antcom.de>,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, w.sang@pengutronix.de,
jbe@pengutronix.de, highguy@gmail.com,
broonie@opensource.wolfsonmicro.com
Subject: Re: [PATCH RFC 2/6 v3] gpio: Add sysfs support to block GPIO API
Date: Tue, 16 Oct 2012 10:43:27 +0200 [thread overview]
Message-ID: <20121016084327.GC12801@game.jcrosoft.org> (raw)
In-Reply-To: <CACRpkdZmg4+7Zjm2UJktt1uKvytUW3uaYtKz0nJvLeM2MMSV-Q@mail.gmail.com>
On 22:30 Mon 15 Oct , Linus Walleij wrote:
> I really request Grant to comment on this...too.
>
> On Mon, Oct 15, 2012 at 8:19 PM, Greg Kroah-Hartman
> <gregkh@linuxfoundation.org> wrote:
> > On Mon, Oct 15, 2012 at 08:07:02PM +0200, Jean-Christophe PLAGNIOL-VILLARD wrote:
> >> On 21:11 Fri 12 Oct , Roland Stigge wrote:
> >> > This patch adds sysfs support to the block GPIO API.
> >> >
> >> > Signed-off-by: Roland Stigge <stigge@antcom.de>
> >> >
> >> > ---
> >> > Documentation/ABI/testing/sysfs-gpio | 6
> >> > drivers/gpio/gpiolib.c | 226 ++++++++++++++++++++++++++++++++++-
> >> > include/asm-generic/gpio.h | 11 +
> >> > include/linux/gpio.h | 13 ++
> >> > 4 files changed, 254 insertions(+), 2 deletions(-)
> >> I really don't like this sysfs we need to add a specific device with ioctl
> >
> > Why?
>
> I don't like it either, basically because the GPIO sysfs is not
> entirely sound.
>
> Another patch that is circulating concerns edge triggers and similar,
> and it appear that some parts of the GPIO sysfs is for example
> redefining and exporting IRQchip properties like trigger edge
> in sysfs, while the settings of the irqchip actually used by the driver
> is not reflected in the other direction. So you can *set* these things
> by writing in the GPIO sysfs, but never trust what you *read* from
> there. And you can set what edges an IRQ will trigger on a certain
> GPIO, and the way to handle the IRQs from usespace is to poll
> on a value. This is not really documented but well ...
>
> Part of me just want to delete that, but I can't because it's now
> an ABI.
>
> The "devices" that the sysfs files are tied to are not real devices,
> instead the code look like this: whenever a gpio is exported to
> sysfs, the code calls (drivers/gpio/gpiolib.c):
>
> dev = device_create(&gpio_class, desc->chip->dev, MKDEV(0, 0),
> desc, ioname ? ioname : "gpio%u", gpio);
>
> Mock device just to get a sysfs opening. And once device for
> every GPIO with no hierarchical correspondence to anything
> in the system.
>
> The thing is that struct gpio_chip is not a device at all, it's something
> else.
>
> This inconsistency in the GPIO sysfs implementation make me
> fear adding new stuff to it. The other problems need fixing first.
>
> The reason an ioctl() IMO is better suited to do the job is that
> it can properly represent a multiple-value operation on several
> GPIOs at the same time in a struct, and it can conversely inform
> userspace about which GPIOs may be a block of signals that
> can be fired simultaneously instead of going to string parsing
> and binary values in sysfs which look like worse hacks to me.
>
> The last thing I'm a bit softer on though. Mainly I fear of this
> sysfs ABI growing into a beast.
>
> It was all merged prior to Grant becoming maintainer and
> me becoming co-maintainer of it, so this is legacy business.
>
> Sadly the main creator of this ABI is David Brownell who is
> not able to respond nor maintain it from where he is now. But
> we need to think hard about what we shall do with this particular
> piece of legacy. Some of the stuff was added by Daniel
> Glöckner so requesting advice from him.
>
> Daniel: are you interested in helping us fixing the GPIOlib
> sysfs ABI and kernel internals? I'm a bit afraid of it.
My 0.02$ too
Best Regards,
J.
next prev parent reply other threads:[~2012-10-16 8:43 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-12 19:11 [PATCH RFC 0/6 v3] gpio: Add block GPIO Roland Stigge
2012-10-12 19:11 ` Roland Stigge
2012-10-12 19:11 ` [PATCH RFC 1/6 v3] gpio: Add a block GPIO API to gpiolib Roland Stigge
2012-10-12 19:11 ` Roland Stigge
2012-10-15 5:20 ` Ryan Mallon
2012-10-15 5:20 ` Ryan Mallon
2012-10-15 17:20 ` Roland Stigge
2012-10-15 17:20 ` Roland Stigge
2012-10-15 22:05 ` Ryan Mallon
2012-10-15 22:05 ` Ryan Mallon
2012-10-15 22:55 ` Roland Stigge
2012-10-15 22:55 ` Roland Stigge
2012-10-15 19:56 ` Linus Walleij
2012-10-15 19:56 ` Linus Walleij
2012-10-12 19:11 ` [PATCH RFC 2/6 v3] gpio: Add sysfs support to block GPIO API Roland Stigge
2012-10-12 19:11 ` Roland Stigge
2012-10-15 5:35 ` Ryan Mallon
2012-10-15 5:35 ` Ryan Mallon
2012-10-15 18:01 ` Roland Stigge
2012-10-15 18:01 ` Roland Stigge
2012-10-15 18:07 ` Jean-Christophe PLAGNIOL-VILLARD
2012-10-15 18:07 ` Jean-Christophe PLAGNIOL-VILLARD
2012-10-15 18:15 ` Roland Stigge
2012-10-15 18:15 ` Roland Stigge
2012-10-15 18:19 ` Greg Kroah-Hartman
2012-10-15 18:19 ` Greg Kroah-Hartman
2012-10-15 20:30 ` Linus Walleij
2012-10-15 20:30 ` Linus Walleij
2012-10-15 21:38 ` Roland Stigge
2012-10-15 21:38 ` Roland Stigge
2012-10-16 8:43 ` Jean-Christophe PLAGNIOL-VILLARD [this message]
2012-10-16 8:43 ` Jean-Christophe PLAGNIOL-VILLARD
2012-10-18 4:38 ` Daniel Glöckner
2012-10-18 4:38 ` Daniel Glöckner
2012-10-19 10:29 ` Linus Walleij
2012-10-19 10:29 ` Linus Walleij
2012-10-12 19:11 ` [PATCH RFC 3/6 v3] gpio: Add device tree " Roland Stigge
2012-10-12 19:11 ` Roland Stigge
2012-10-12 19:11 ` [PATCH RFC 4/6 v3] gpio-max730x: Add " Roland Stigge
2012-10-12 19:11 ` Roland Stigge
2012-10-12 19:11 ` [PATCH RFC 5/6 v3] gpio-lpc32xx: " Roland Stigge
2012-10-12 19:11 ` Roland Stigge
2012-10-12 19:11 ` [PATCH RFC 6/6 v3] gpio-generic: " Roland Stigge
2012-10-12 19:11 ` Roland Stigge
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=20121016084327.GC12801@game.jcrosoft.org \
--to=plagnioj@jcrosoft.com \
--cc=linux-arm-kernel@lists.infradead.org \
/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.