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]>

