From: Markus Pargmann <mpa@pengutronix.de>
To: Linus Walleij <linus.walleij@linaro.org>
Cc: "Alexandre Courbot" <gnurou@gmail.com>,
"Arun Bharadwaj" <arun@gumstix.com>,
"Johan Hovold" <johan@kernel.org>,
linux-gpio@vger.kernel.org, kernel@pengutronix.de,
"Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v3 0/9] gpiolib: Add GPIO name support
Date: Mon, 21 Sep 2015 12:58:25 +0200 [thread overview]
Message-ID: <20150921105825.GB32203@pengutronix.de> (raw)
In-Reply-To: <1439561466-14350-1-git-send-email-mpa@pengutronix.de>
[-- Attachment #1: Type: text/plain, Size: 5232 bytes --]
Hi,
On Fri, Aug 14, 2015 at 04:10:57PM +0200, Markus Pargmann wrote:
> Changes in v3:
> As discussed in the v2 thread, we are using the already existing gpiochip names
> now. To avoid races between kernel and userspace, the setup of gpio names in
> the gpio descriptors has to happen right before the gpiochip is added for use
> and after the gpio descriptors are available. Unfortunately this is exactly in
> the function gpiochip_add().
>
> So we can't use a a function as proposed in the discussion like
> gpiochip_set_names(), as this function would only be possible after we executed
> gpiochip_add(). Before that point the gpio descriptors are not available. But
> this can potentially lead to races between userspace and the gpio chip.
>
> That is the reason why I left the names array in the gpioscript. But this array
> is now only used to initialize the GPIO descriptors. The named sysfs
> directories are now created using the name stored in the gpio descriptor.
>
> As the name is now directly represented through the sysfs directory name, I am
> not sure if it makes sense to keep the patch which adds a 'name' property to
> the sysfs GPIO directories. For the moment it is still in this series.
Any feedback on this series?
Thanks,
Markus
>
> Other changes in v3:
> - Renamed generic of_parse_gpio() to of_parse_own_gpio()
> - Replaced pr_warn with dev_warn as the device is available in the parsing code
> in gpiolib-of
> - Introduced name collision checks when adding the names from gpiochip->names
> to the gpio descriptors
> - Added documentation about /sys/class/gpio/<GPIO>/name
> - Added check for DT in case the GPIO already has a name. This may happen as
> there are different ways to set a name, through 'line-name' property and
> node name
>
> Best Regards,
>
> Markus
>
>
> Changes in v2:
> - Removed patch 'gpiolib: Fix possible use of wrong name'
> - Removed discussed patch 'gpio: Allow hogged gpios to be requested' from this
> series
> - Fixed show gpio name patch (locks, (null) printing, and getting the descriptor)
> - Merged gpio name patch into gpio_name_to_desc() patch
>
> Description from v1:
>
> This is a proposal to add GPIO names to the kernel based on devicetree
> descriptions.
>
> This series adds GPIO name support. Until now it is only possible to use names
> for already requested GPIOs (for example what they are used for). It is not
> possible to identify GPIOs by a name although most of them have a name for
> example in the schematics of the board. This makes it difficult to identify
> a specific GPIO from userspace.
>
> As the GPIO name information is a hardware description this series uses the
> devicetree bindings introduced by the GPIO hogging mechanism, specifically
> 'line-name', to identify GPIOs. The sysfs 'export' file is changed to accept
> names as fallback. The gpio numbers still have a higher priority to ensure
> backwards compatibility.
>
> Exported GPIOs are still using their number as directory name (gpio<ID>). But the
> directories now contain a 'name' file which is '' for non-existent names and
> the name otherwise.
>
> This series can be used to have an easy name mapping for udev with a quite
> simple rule similar to this:
> SUBSYSTEM=="gpio", KERNEL=="gpio*", ATTR{name}!="(null)", ACTION=="add", \
> PROGRAM+="/bin/sh -c 'mkdir -p /dev/gpios; rm -f /dev/gpios/$attr{name}; ln -s /sys%p/ /dev/gpios/$attr{name}"
> With this rule udev adds a link for each exported GPIO with a name into
> /dev/gpios/. This way it is not necessary to know the number of a GPIO to use
> it.
>
>
> Markus Pargmann (9):
> gpiolib-of: Rename gpio_hog functions to be generic
> gpio: Introduce gpio descriptor 'name'
> gpiolib: Use GPIO name from names array for gpio descriptor
> gpio-sysfs: Use gpio descriptor name instead of gpiochip names array
> gpiolib: Add gpio name information to /sys/kernel/debug/gpio
> gpiolib-sysfs: Show gpio-name in /sys/class/gpio/gpio*/name
> gpiolib-sysfs: Add gpio name parsing for sysfs export
> gpiolib-of: Reuse 'line-name' from DT as gpio descriptor name
> gpiolib-of: Use dev_warn instead of pr_warn
>
> Documentation/ABI/testing/sysfs-gpio | 1 +
> drivers/gpio/gpiolib-of.c | 50 +++++++++++++---------
> drivers/gpio/gpiolib-sysfs.c | 67 +++++++++++++++++++++---------
> drivers/gpio/gpiolib.c | 80 ++++++++++++++++++++++++++++++++++--
> drivers/gpio/gpiolib.h | 3 ++
> include/linux/gpio/consumer.h | 7 ++++
> 6 files changed, 166 insertions(+), 42 deletions(-)
>
> --
> 2.4.6
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
prev parent reply other threads:[~2015-09-21 10:58 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-14 14:10 [PATCH v3 0/9] gpiolib: Add GPIO name support Markus Pargmann
2015-08-14 14:10 ` [PATCH v3 1/9] gpiolib-of: Rename gpio_hog functions to be generic Markus Pargmann
2015-09-22 0:48 ` Linus Walleij
2015-08-14 14:10 ` [PATCH v3 2/9] gpio: Introduce gpio descriptor 'name' Markus Pargmann
2015-09-22 0:51 ` Linus Walleij
2015-08-14 14:11 ` [PATCH v3 3/9] gpiolib: Use GPIO name from names array for gpio descriptor Markus Pargmann
2015-09-22 0:56 ` Linus Walleij
2015-09-23 22:02 ` Johan Hovold
2015-09-24 21:50 ` Linus Walleij
2015-08-14 14:11 ` [PATCH v3 4/9] gpio-sysfs: Use gpio descriptor name instead of gpiochip names array Markus Pargmann
2015-09-22 0:57 ` Linus Walleij
2015-08-14 14:11 ` [PATCH v3 5/9] gpiolib: Add gpio name information to /sys/kernel/debug/gpio Markus Pargmann
2015-09-22 1:05 ` Linus Walleij
2015-08-14 14:11 ` [PATCH v3 6/9] gpiolib-sysfs: Show gpio-name in /sys/class/gpio/gpio*/name Markus Pargmann
2015-09-22 1:07 ` Linus Walleij
2015-09-24 7:14 ` Markus Pargmann
2015-08-14 14:11 ` [PATCH v3 7/9] gpiolib-sysfs: Add gpio name parsing for sysfs export Markus Pargmann
2015-09-22 1:09 ` Linus Walleij
2015-09-24 7:23 ` Markus Pargmann
2015-08-14 14:11 ` [PATCH v3 8/9] gpiolib-of: Reuse 'line-name' from DT as gpio descriptor name Markus Pargmann
2015-08-14 14:11 ` [PATCH v3 9/9] gpiolib-of: Use dev_warn instead of pr_warn Markus Pargmann
2015-09-21 10:58 ` Markus Pargmann [this message]
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=20150921105825.GB32203@pengutronix.de \
--to=mpa@pengutronix.de \
--cc=arun@gumstix.com \
--cc=gnurou@gmail.com \
--cc=johan@kernel.org \
--cc=kernel@pengutronix.de \
--cc=linus.walleij@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-gpio@vger.kernel.org \
--cc=u.kleine-koenig@pengutronix.de \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).