Re:Re: [PATCH v7 08/15] gpiolib: regmap: add write_data_after_dir quirk

From: zl020895

Date: Wed Sep 16 2026 - 00:49:19 EST


Hi Andy,

OK. v8 will ignore both gpio_regmap_set() returns, same as before.
Only the extra write for the PL061 quirk stays.

Best regards,
Long Zhao

At 2026-09-15 23:07:19, "Andy Shevchenko" <andriy.shevchenko@xxxxxxxxxxxxxxx> wrote:
>On Tue, Sep 15, 2026 at 07:15:38PM +0800, Long Zhao via B4 Relay wrote:
>
>> Some controllers ignore data-register writes while a line is still an
>> input. Optionally write the output value again after switching the
>> direction, matching the existing PL061 behaviour.
>
>...
>
>> - gpio_regmap_set(chip, offset, value);
>> + ret = gpio_regmap_set(chip, offset, value);
>> + if (ret)
>> + return ret;
>
>I think that this might lead to regressions when the end driver just leaves
>the output in the previous state in case of errors. In any case, even if this
>is a correct update, it needs to be done separately with the justification
>that shows that all current users won't have regressions or the regression is
>actually a fix of the behaviour.
>
>> + ret = gpio_regmap_set_direction(chip, offset, true);
>> + if (ret)
>> + return ret;
>>
>> - return gpio_regmap_set_direction(chip, offset, true);
>> + /*
>> + * gpio value is set again, because pl061 doesn't allow to set value of
>> + * a gpio pin before configuring it in OUT mode.
>> + */
>> + if (gpio->write_data_after_dir)
>> + return gpio_regmap_set(chip, offset, value);
>
>Taking the above into account I'm not sure if we want the inconsistency with
>the above. Perhaps also ignore the returned value for now?
>
>> + return 0;
>
>--
>With Best Regards,
>Andy Shevchenko
>