Thread (37 messages) flat view 37 messages, 7 authors, 19d ago

Re: [PATCH v3 11/14] gpio: regmap: Use regmap_test_bits() for single bit reads

From: Andy Shevchenko <hidden>
Date: 2026-08-14 08:28:35
Also in: linux-doc, linux-gpio, linux-iio, lkml

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

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help