Re: [PATCH v3 11/14] gpio: regmap: Use regmap_test_bits() for single bit reads
Andy Shevchenko <[email protected]>
| Newsgroups | gmane.linux.kernel,gmane.linux.kernel.iio,gmane.linux.drivers.devicetree,gmane.linux.kernel.gpio,gmane.linux.documentation |
|---|---|
| Organization | Intel Finland Oy - BIC 0357606-4 - c/o Alberga Business Park, 6 krs, Bertel Jungin Aukio 5, 02600 Espoo |
| Message-ID | <[email protected]> |
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