From: Jon Hunter <jonathanh@nvidia.com>
To: wens@kernel.org, Andy Shevchenko <andy.shevchenko@gmail.com>,
Bartosz Golaszewski <brgl@bgdev.pl>
Cc: Kees Cook <kees@kernel.org>, Mika Westerberg <westeri@kernel.org>,
Dmitry Torokhov <dmitry.torokhov@gmail.com>,
Andrew Morton <akpm@linux-foundation.org>,
Linus Walleij <linus.walleij@linaro.org>,
Manivannan Sadhasivam <mani@kernel.org>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Saravana Kannan <saravanak@google.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Andy Shevchenko <andy@kernel.org>,
Catalin Marinas <catalin.marinas@arm.com>,
Will Deacon <will@kernel.org>,
Srinivas Kandagatla <srini@kernel.org>,
Liam Girdwood <lgirdwood@gmail.com>,
Mark Brown <broonie@kernel.org>, Jaroslav Kysela <perex@perex.cz>,
Takashi Iwai <tiwai@suse.com>,
Alexey Klimov <alexey.klimov@linaro.org>,
Bjorn Andersson <andersson@kernel.org>,
Konrad Dybcio <konradybcio@kernel.org>,
linux-hardening@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-gpio@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-sound@vger.kernel.org, linux-arm-msm@vger.kernel.org,
Bartosz Golaszewski <bartosz.golaszewski@linaro.org>,
"linux-tegra@vger.kernel.org" <linux-tegra@vger.kernel.org>
Subject: Re: [PATCH v4 03/10] gpiolib: implement low-level, shared GPIO support
Date: Thu, 12 Mar 2026 08:41:03 +0000 [thread overview]
Message-ID: <2d4e69cb-a43c-4d13-9f7b-20b95cee43a7@nvidia.com> (raw)
In-Reply-To: <CAGb2v67mmt=X8rbsUo+Gwe6uHXTNpBFGzBbrXZYEGsftHL4Ejg@mail.gmail.com>
On 12/03/2026 07:49, Chen-Yu Tsai wrote:
...
>>> To me it sounds like a bad design of the driver for this SoC/platform.
>>
>> I am not sure why you think that. Assuming a 1:1 mapping of the kernel's
>> GPIO index to the GPIO controller + h/w port + 1 GPIO number seems fragile.
>
> If the hardware has uneven number of actual pins for each bank, either
> you end up using the deprecated static GPIO number allocation and
> have holes in the GPIO range (sunxi currently does this), or you use
> dynamic allocation, which gives you no holes in the GPIO range, but
> not directly calculable mapping between DT and GPIO numbers.
>
> The driver handles the mapping by providing an .xlate callback. A
> consumer shouldn't assume anything. The shared GPIO library probably
> shouldn't be try parsing the property itself and use the result to
> grab the GPIO descriptor, but just rely on the gpiochip's .xlate
> callback in some way.
Right. I was thinking that isn't this why we have the xlate callbacks in
the first place to handle such things and not make these assumptions?
I am curious if other platforms could have the same issue? I did not see
this immediately with v6.19 because it is only one specific platform we
have that showed this. So very much a corner case that will only be seen
if a platform uses shared GPIOs and the shared GPIO happens to be high
enough to overflow the descriptor array. Even if we don't crash, at
least for Tegra, we could be using the wrong descriptor too for shared
GPIOs.
Jon
--
nvpublic
next prev parent reply other threads:[~2026-03-12 8:41 UTC|newest]
Thread overview: 71+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-12 13:55 [PATCH v4 00/10] gpio: improve support for shared GPIOs Bartosz Golaszewski
2025-11-12 13:55 ` [PATCH v4 01/10] string: provide strends() Bartosz Golaszewski
2025-11-17 20:33 ` Kees Cook
2025-11-18 9:47 ` Bartosz Golaszewski
2025-11-18 10:13 ` Andy Shevchenko
2025-11-12 13:55 ` [PATCH v4 02/10] gpiolib: define GPIOD_FLAG_SHARED Bartosz Golaszewski
2025-11-12 13:55 ` [PATCH v4 03/10] gpiolib: implement low-level, shared GPIO support Bartosz Golaszewski
2025-11-26 15:34 ` Cosmin Tanislav
2025-11-26 15:47 ` Bartosz Golaszewski
2026-03-11 18:38 ` Jon Hunter
2026-03-11 20:14 ` Andy Shevchenko
2026-03-12 7:28 ` Jon Hunter
2026-03-12 7:49 ` Chen-Yu Tsai
2026-03-12 8:41 ` Jon Hunter [this message]
2026-03-12 9:28 ` Andy Shevchenko
2026-03-13 14:18 ` Bartosz Golaszewski
2025-11-12 13:55 ` [PATCH v4 04/10] gpio: shared-proxy: implement the shared GPIO proxy driver Bartosz Golaszewski
2025-11-12 13:55 ` [PATCH v4 05/10] gpiolib: support shared GPIOs in core subsystem code Bartosz Golaszewski
2025-11-12 13:55 ` [PATCH v4 06/10] gpio: provide gpiod_is_shared() Bartosz Golaszewski
2025-11-12 13:55 ` [PATCH v4 07/10] arm64: select HAVE_SHARED_GPIOS for ARCH_QCOM Bartosz Golaszewski
2025-11-13 8:51 ` Arnd Bergmann
2025-11-14 19:40 ` Bjorn Andersson
2025-11-18 14:06 ` Mark Brown
2025-11-18 14:13 ` Bartosz Golaszewski
2025-11-18 14:20 ` Mark Brown
2025-11-18 14:27 ` Bartosz Golaszewski
2025-11-18 19:46 ` Mark Brown
2025-11-26 14:24 ` Jon Hunter
2025-11-26 14:28 ` Bartosz Golaszewski
2025-11-26 14:51 ` Jon Hunter
2025-11-26 14:54 ` Bartosz Golaszewski
2025-11-26 14:55 ` Jon Hunter
2025-11-26 15:05 ` Bartosz Golaszewski
2025-11-26 15:29 ` Jon Hunter
2025-11-26 15:33 ` Bartosz Golaszewski
2025-11-26 15:47 ` Jon Hunter
2025-11-26 16:00 ` Bartosz Golaszewski
2026-01-07 11:06 ` Pankaj Patil
2026-01-07 12:38 ` Bartosz Golaszewski
2026-01-08 6:49 ` Pankaj Patil
2026-01-08 8:45 ` Bartosz Golaszewski
2026-01-08 9:43 ` Pankaj Patil
2026-01-08 10:52 ` Bartosz Golaszewski
2026-01-08 14:37 ` Bartosz Golaszewski
2025-11-12 13:55 ` [PATCH v4 08/10] ASoC: wsa881x: drop GPIOD_FLAGS_BIT_NONEXCLUSIVE flag from GPIO lookup Bartosz Golaszewski
2025-11-12 13:55 ` [PATCH v4 09/10] ASoC: wsa883x: " Bartosz Golaszewski
2025-11-12 13:55 ` [PATCH v4 10/10] regulator: make the subsystem aware of shared GPIOs Bartosz Golaszewski
2025-11-17 9:20 ` (subset) [PATCH v4 00/10] gpio: improve support for " Bartosz Golaszewski
2025-11-18 11:15 ` Geert Uytterhoeven
2025-11-18 11:55 ` Bartosz Golaszewski
2025-11-18 12:55 ` Geert Uytterhoeven
2025-11-18 13:21 ` Bartosz Golaszewski
2025-11-18 23:23 ` Linus Walleij
2025-11-19 8:01 ` Andy Shevchenko
2025-11-19 8:33 ` Geert Uytterhoeven
2025-11-19 14:29 ` Linus Walleij
2025-11-20 10:39 ` (subset) " Mark Brown
2025-11-20 13:36 ` Mark Brown
2025-11-21 0:27 ` Val Packett
2025-11-21 9:03 ` Bartosz Golaszewski
2025-11-21 10:20 ` Krzysztof Kozlowski
2025-11-26 16:27 ` Dmitry Baryshkov
2025-11-26 16:49 ` Bartosz Golaszewski
2026-01-07 11:47 ` Manivannan Sadhasivam
2026-01-07 12:12 ` Dmitry Baryshkov
2026-01-07 12:23 ` Manivannan Sadhasivam
2026-01-08 14:46 ` Michael Walle
2026-01-08 15:50 ` Bartosz Golaszewski
2026-01-09 14:41 ` Michael Walle
2026-01-09 14:50 ` Bartosz Golaszewski
2026-01-09 15:08 ` Michael Walle
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=2d4e69cb-a43c-4d13-9f7b-20b95cee43a7@nvidia.com \
--to=jonathanh@nvidia.com \
--cc=akpm@linux-foundation.org \
--cc=alexey.klimov@linaro.org \
--cc=andersson@kernel.org \
--cc=andy.shevchenko@gmail.com \
--cc=andy@kernel.org \
--cc=bartosz.golaszewski@linaro.org \
--cc=brgl@bgdev.pl \
--cc=broonie@kernel.org \
--cc=catalin.marinas@arm.com \
--cc=conor+dt@kernel.org \
--cc=dmitry.torokhov@gmail.com \
--cc=gregkh@linuxfoundation.org \
--cc=kees@kernel.org \
--cc=konradybcio@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=lgirdwood@gmail.com \
--cc=linus.walleij@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-hardening@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sound@vger.kernel.org \
--cc=linux-tegra@vger.kernel.org \
--cc=mani@kernel.org \
--cc=perex@perex.cz \
--cc=robh@kernel.org \
--cc=saravanak@google.com \
--cc=srini@kernel.org \
--cc=tiwai@suse.com \
--cc=wens@kernel.org \
--cc=westeri@kernel.org \
--cc=will@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