Re: [PATCH v3 11/14] gpio: regmap: Use regmap_test_bits() for single bit reads
From: Andy Shevchenko
Date: Fri Aug 14 2026 - 04:28:59 EST
On Thu, Aug 13, 2026 at 03:57:04PM +0200, Janani Sunil wrote:
> Use regmap_test_bits() when reading a single GPIO value from a normal
> register and when reading the direction bit.
...
> /* ensure we don't spoil any register cache with pin input values */
> - if (gpio->reg_dat_base == gpio->reg_set_base)
> + if (gpio->reg_dat_base == gpio->reg_set_base) {
> ret = regmap_read_bypassed(gpio->regmap, reg, &val);
> - else
> - ret = regmap_read(gpio->regmap, reg, &val);
> - if (ret)
> - return ret;
> + if (ret)
> + return ret;
>
> - return !!(val & mask);
> + return !!(val & mask);
> + }
> +
> + return regmap_test_bits(gpio->regmap, reg, mask);
Wouldn't it look cleaner if written as
if (gpio->reg_dat_base != gpio->reg_set_base)
return regmap_test_bits(gpio->regmap, reg, mask);
/* ensure we don't spoil any register cache with pin input values */
ret = regmap_read_bypassed(gpio->regmap, reg, &val);
if (ret)
return ret;
return !!(val & mask);
?
--
With Best Regards,
Andy Shevchenko