On 2026-07-09T14:28:59, Pranav Sanwal <[email protected]> wrote:
> gpio: delay: fix offset propagation in gpio_delay_xlate()
>
> gpio_delay_xlate() indexed priv->descs[] correctly using
> args->args[0], but never propagated that same index into
> desc->offset. Since gpio_desc_init() initializes offset to 0 before
> xlate() runs, every consumer's returned descriptor ended up with
> offset 0 regardless of which index it actually requested.
>
> On boards where gpio-delay wraps more than one real GPIO line, this
> caused every consumer past the first to silently collide with the
> first consumer's already-claimed offset 0 in dm_gpio_request(),
> which returns -EBUSY. The second consumer's real GPIO line was
> therefore never toggled.
>
> Fix gpio_delay_xlate() to record the requested index into
> desc->offset so each consumer's descriptor is routed to the correct
> underlying real GPIO.
>
> Fixes: c866f2f197e2 ("gpio: Add GPIO delay driver")
> Signed-off-by: Pranav Sanwal <[email protected]>
>
> drivers/gpio/gpio-delay.c | 2 ++
>  1 file changed, 2 insertions(+)

Reviewed-by: Simon Glass <[email protected]>

Reply via email to