[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <98c0f185-b0e0-49ea-896c-f3972dd011ca@packett.cool>
Date: Mon, 24 Nov 2025 20:05:24 -0300
From: Val Packett <val@...kett.cool>
To: Bartosz Golaszewski <brgl@...ev.pl>
Cc: Krzysztof Kozlowski <krzk@...nel.org>,
Philipp Zabel <p.zabel@...gutronix.de>,
Linus Walleij <linus.walleij@...aro.org>, linux-gpio@...r.kernel.org,
linux-kernel@...r.kernel.org, linux-arm-msm@...r.kernel.org,
Bartosz Golaszewski <bartosz.golaszewski@...aro.org>
Subject: Re: [PATCH] gpio: shared: handle the reset-gpios corner case
On 11/24/25 12:36 PM, Bartosz Golaszewski wrote:
> On Mon, Nov 24, 2025 at 9:38 AM Bartosz Golaszewski <brgl@...ev.pl> wrote:
>> On Sun, Nov 23, 2025 at 2:03 AM Val Packett <val@...kett.cool> wrote:
>>>> ---
>>>> This is targetting linux-next where the reset-gpio driver is now using
>>>> the auxiliary bus and software nodes rather than the platform bus and
>>>> GPIO machine lookup. The bug is the same in both cases but the fix would
>>>> be completely different.
>>>> ---
>>>> [..]
>>> Tried applying only this, as well as this +
>>> https://lore.kernel.org/all/20251120-reset-gpios-swnodes-v7-0-a100493a0f4b@linaro.org/
>>> + https://lore.kernel.org/all/20251121135739.66528-1-brgl@bgdev.pl/ (on
>>> top of next-20251120) and the issue is still present.. am I missing
>>> something?
>> Can you try this branch?
>>
>> https://github.com/brgl/linux test/gpiolib-shared-reset-gpio-fix
>>
>> I confirmed it works on my setup and fixes the problem with multiple
>> users of reset-gpio AND shared GPIOs enabled.
> Actually linux-next got updated with all the prerequisites so you can
> try this patch on top of next-20251124. I tested it and it works for
> me. If it still doesn't for you, can you enable GPIO debug messages
> and send me the entire kernel log?
>
> Bartosz
Rebased to next-20251124, still the same..
Here's a full dmesg: https://owo.packett.cool/lin/sound.gpio.dmesg
I even added a custom print to confirm the reason of the EBUSY:
[ 9.233613] gpiolib: swnode: swnode_find_gpio: parsed 'reset-gpios'
property of node 'node4[0]' - status (0)
[ 9.233624] gpiolib_shared: Adding machine lookup entry for a shared
GPIO for consumer reset.gpio.0, with key 'gpiolib_shared.proxy.8' and
con_id 'reset'
[ 9.233630] reset_gpio reset.gpio.0: using lookup tables for GPIO lookup
[ 9.233640] gpio_shared_proxy gpiolib_shared.proxy.8: Shared GPIO
requested, number of users: 1
[ 9.233652] gpio_shared_proxy gpiolib_shared.proxy.8: Only one user
of this shared GPIO, allowing to set direction to output with value 'low'
[ 9.332317] reset_gpio reset.gpio.1: using swnode 'node5' for 'reset'
GPIO lookup
[ 9.332337] gpiolib: swnode: swnode_find_gpio: parsed 'reset-gpios'
property of node 'node5[0]' - status (0)
[ 9.332343] gpiolib_shared: Adding machine lookup entry for a shared
GPIO for consumer reset.gpio.1, with key 'gpiolib_shared.proxy.8' and
con_id 'reset'
[ 9.332347] reset_gpio reset.gpio.1: using lookup tables for GPIO lookup
[ 9.332353] gpio-856 (reset): gpiod_request_commit: flags 200043
test_and_set_bit GPIOD_FLAG_REQUESTED -> EBUSY
[ 9.332356] gpio-856 (reset): gpiod_request: status -16
[ 9.332358] reset_gpio reset.gpio.1: error -EBUSY: Could not get
reset gpios
[ 9.332362] reset_gpio reset.gpio.1: probe with driver reset_gpio
failed with error -16
[ 9.441612] wcd938x_codec audio-codec: bound sdw:2:0:0217:010d:00:4
(ops wcd_sdw_component_ops [snd_soc_wcd_common])
[ 9.441644] wcd938x_codec audio-codec: bound sdw:3:0:0217:010d:00:3
(ops wcd_sdw_component_ops [snd_soc_wcd_common])
[ 9.445771] gpio_shared_proxy gpiolib_shared.proxy.8: Voted for value
'high', effective value is 'high', number of votes for 'high': 1
Powered by blists - more mailing lists