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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.