Thread (71 messages) 71 messages, 19 authors, 2026-03-13

Re: [PATCH v4 00/10] gpio: improve support for shared GPIOs

From: Bartosz Golaszewski <hidden>
Date: 2025-11-21 09:03:55
Also in: linux-arm-msm, linux-gpio, linux-hardening, linux-sound, lkml

On Fri, Nov 21, 2025 at 1:28 AM Val Packett [off-list ref] wrote:
Hi,

On 11/12/25 10:55 AM, Bartosz Golaszewski wrote:
quoted
---
Bartosz Golaszewski (10):
       string: provide strends()
       gpiolib: define GPIOD_FLAG_SHARED
       gpiolib: implement low-level, shared GPIO support
       gpio: shared-proxy: implement the shared GPIO proxy driver
       gpiolib: support shared GPIOs in core subsystem code
       gpio: provide gpiod_is_shared()
       arm64: select HAVE_SHARED_GPIOS for ARCH_QCOM
       ASoC: wsa881x: drop GPIOD_FLAGS_BIT_NONEXCLUSIVE flag from GPIO lookup
       ASoC: wsa883x: drop GPIOD_FLAGS_BIT_NONEXCLUSIVE flag from GPIO lookup
       regulator: make the subsystem aware of shared GPIOs
this seems to actually have caused a regression for me, audio does not
initialize anymore on hamoa due to EBUSY since upgrading
from next-20251114 to next-20251118 or next-20251120:
Thanks for the heads-up.
[   11.748781] platform
6800000.remoteproc:glink-edge:gpr:service@1:dais: Adding to iommu group 30
[   11.785864] wsa_macro 6aa0000.codec: using zero-initialized flat
cache, this may cause unexpected behavior
[   11.796964] reset-gpio reset-gpio.0: error -EBUSY: Could not get
reset gpios
[   11.796984] reset-gpio reset-gpio.0: probe with driver reset-gpio
failed with error -16
[   11.894662] reset-gpio reset-gpio.1: error -EBUSY: Could not get
reset gpios
[   11.894676] reset-gpio reset-gpio.1: probe with driver reset-gpio
failed with error -16
It seems like it's the reset-gpio driver, not shared GPIOLIB path?
This driver has never used the GPIOD_FLAGS_BIT_NONEXCLUSIVE flag.
[   12.006938] wcd938x_codec audio-codec: bound sdw:2:0:0217:010d:00:4
(ops wcd_sdw_component_ops [snd_soc_wcd_common])
[   12.006964] wcd938x_codec audio-codec: bound sdw:3:0:0217:010d:00:3
(ops wcd_sdw_component_ops [snd_soc_wcd_common])
[   15.424657] qcom-soundwire 6ab0000.soundwire: qcom_swrm_irq_handler:
SWR CMD error, fifo status 0x4e00c00f, flushing fifo
[   21.994354] qcom-soundwire 6ab0000.soundwire: qcom_swrm_irq_handler:
SWR CMD error, fifo status 0xe00c000, flushing fifo
[   21.996001] qcom-soundwire 6b10000.soundwire: qcom_swrm_irq_handler:
SWR CMD error, fifo status 0x4e00c00f, flushing fifo
[   21.996239] platform sound: deferred probe pending: snd-x1e80100: WSA
Playback: codec dai not found
[   21.996248] soundwire sdw:4:0:0217:0204:00:0: deferred probe pending:
wsa884x-codec: Failed to get reset
[   21.996250] soundwire sdw:4:0:0217:0204:00:1: deferred probe pending:
wsa884x-codec: Failed to get reset
[   21.996251] soundwire sdw:1:0:0217:0204:00:0: deferred probe pending:
wsa884x-codec: Failed to get reset
[   21.996253] soundwire sdw:1:0:0217:0204:00:1: deferred probe pending:
wsa884x-codec: Failed to get reset

gpio_shared_proxy, reset_gpio, pinctrl_sm8550_lpass_lpi are all built as
modules and were autoloaded fine.

This is wsa884x (not wsa881x nor wsa883x), failing in
devm_reset_control_get_optional_shared..
Can you enable DEBUG_GPIO in menuconfig and post the entire kernel log
somewhere as well as the output of gpiodetect and gpioinfo after
booting?

Bartosz
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help