From: Kent Gibson <warthog618@gmail.com>
To: linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org,
brgl@bgdev.pl, linus.walleij@linaro.org
Cc: Kent Gibson <warthog618@gmail.com>
Subject: [PATCH 0/4] gpiolib: cdev: directionless line reconfiguration
Date: Wed, 26 Jun 2024 13:29:21 +0800 [thread overview]
Message-ID: <20240626052925.174272-1-warthog618@gmail.com> (raw)
The behaviour of request reconfiguration without a direction flag set is
ill-defined and badly behaved, for both uAPI v1 and v2. I'll will refer
to such a configuration as 'directionless' here. That refers to the
configuration requested, not the actual state of the line.
The configuration validation used during reconfiguration is borrowed from
the line request operation, where, to verify the intent of the user, the
direction must be set to in order to effect a change to the electrical
configuration of a line. But that validation does not allow for the
directionless case, making it possible to clear flags set previously
without specifying the line direction.
Adding to the inconsistency, those changes are not immediately applied,
but will take effect when the line value is next get or set.
For example, by requesting a reconfiguration with no flags set, an output
line requested with active low and open drain flags set could have those
flags cleared, inverting the sense of the line and changing the line drive
to push-pull on the next line value set.
This series addresses directionless reconfiguration behaviour for both
uAPI versions.
Patch 1 disallows reconfiguration without direction for uAPI v1.
Patch 2 ignores reconfiguration of a line without direction for uAPI v2.
A different approach is used, compared to uAPI v1, as v2 allows for
reconfiguration of multiple lines with different configurations.
It is more useful to skip directionless lines rather than returning an
error, as it allows for reconfiguration of a subset of requested lines.
Patches 3 and 4 update the documentation for uAPI v1 and v2, respectively,
to describe the updated behaviour.
Cheers,
Kent.
Kent Gibson (4):
gpiolib: cdev: Disallow reconfiguration without direction (uAPI v1)
gpiolib: cdev: Ignore reconfiguration without direction
Documentation: gpio: Reconfiguration with unset direction (uAPI v1)
Documentation: gpio: Reconfiguration with unset direction (uAPI v2)
.../gpio/gpio-handle-set-config-ioctl.rst | 5 +++-
.../gpio/gpio-v2-line-set-config-ioctl.rst | 7 +++--
drivers/gpio/gpiolib-cdev.c | 28 +++++++++++--------
3 files changed, 26 insertions(+), 14 deletions(-)
--
2.39.2
next reply other threads:[~2024-06-26 5:29 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-26 5:29 Kent Gibson [this message]
2024-06-26 5:29 ` [PATCH 1/4] gpiolib: cdev: Disallow reconfiguration without direction (uAPI v1) Kent Gibson
2024-06-26 5:29 ` [PATCH 2/4] gpiolib: cdev: Ignore reconfiguration without direction Kent Gibson
2024-06-27 14:06 ` Bartosz Golaszewski
2024-06-27 14:22 ` Kent Gibson
2024-06-27 14:44 ` Bartosz Golaszewski
2024-06-27 14:49 ` Kent Gibson
2024-06-27 14:51 ` Bartosz Golaszewski
2024-06-26 5:29 ` [PATCH 3/4] Documentation: gpio: Reconfiguration with unset direction (uAPI v1) Kent Gibson
2024-06-26 5:29 ` [PATCH 4/4] Documentation: gpio: Reconfiguration with unset direction (uAPI v2) Kent Gibson
2024-06-27 15:23 ` [PATCH 0/4] gpiolib: cdev: directionless line reconfiguration Bartosz Golaszewski
2024-07-01 7:39 ` Bartosz Golaszewski
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=20240626052925.174272-1-warthog618@gmail.com \
--to=warthog618@gmail.com \
--cc=brgl@bgdev.pl \
--cc=linus.walleij@linaro.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.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 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).