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