On Tue, Mar 19, 2024 at 12:07 PM Matthijs Kooijman <matthijs@xxxxxxxx> wrote: > The pinctrl-single driver handles pin_config_set by looking up the > requested setting in a DT-defined lookup table, which defines what bits > correspond to each setting. There is no way to add > PIN_CONFIG_BIAS_DISABLE entries to the table, since there is instead > code to disable the bias by applying the disable values of both the > pullup and pulldown entries in the table. > > However, this code is inside the table-lookup loop, so it would only > execute if there is an entry for PIN_CONFIG_BIAS_DISABLE in the table, > which can never exist, so this code never runs. > > This commit lifts the offending code out of the loop, so it just > executes directly whenever PIN_CONFIG_BIAS_DISABLE is requested, > skippipng the table lookup loop. > > This also introduces a new `param` variable to make the code slightly > more readable. > > This bug seems to have existed when this code was first merged in commit > 9dddb4df90d13 ("pinctrl: single: support generic pinconf"). Earlier > versions of this patch did have an entry for PIN_CONFIG_BIAS_DISABLE in > the lookup table, but that was removed, which is probably how this bug > was introduced. > > Signed-off-by: Matthijs Kooijman <matthijs@xxxxxxxx> Patch applied! Yours, Linus Walleij