All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael Walle" <mwalle@kernel.org>
To: "Bartosz Golaszewski" <brgl@bgdev.pl>,
	"Linus Walleij" <linus.walleij@linaro.org>,
	"Bamvor Jian Zhang" <bamv2005@gmail.com>,
	"Geert Uytterhoeven" <geert+renesas@glider.be>,
	Keerthy <j-keerthy@ti.com>,
	"Uwe Kleine-König" <ukleinek@kernel.org>
Cc: <linux-gpio@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<linux-pwm@vger.kernel.org>,
	"Bartosz Golaszewski" <bartosz.golaszewski@linaro.org>
Subject: Re: [PATCH 06/14] gpio: regmap: use value returning setters
Date: Mon, 17 Feb 2025 08:49:35 +0100	[thread overview]
Message-ID: <D7UK17VYQYF1.1MBG6HEHPVXN3@kernel.org> (raw)
In-Reply-To: <20250211-gpio-set-retval-v1-6-52d3d613d7d3@linaro.org>

[-- Attachment #1: Type: text/plain, Size: 2905 bytes --]

Hi,

On Tue Feb 11, 2025 at 1:09 PM CET, Bartosz Golaszewski wrote:
> From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
>
> struct gpio_chip now has additional variants of the set(_multiple)
> driver callbacks that return an integer to indicate success or failure.
> Convert the driver to using them.

Great!

> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
> ---
>  drivers/gpio/gpio-regmap.c | 21 ++++++++++++---------
>  1 file changed, 12 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/gpio/gpio-regmap.c b/drivers/gpio/gpio-regmap.c
> index 05f8781b5204..e3b4e392549b 100644
> --- a/drivers/gpio/gpio-regmap.c
> +++ b/drivers/gpio/gpio-regmap.c
> @@ -81,22 +81,25 @@ static int gpio_regmap_get(struct gpio_chip *chip, unsigned int offset)
>  	return !!(val & mask);
>  }
>  
> -static void gpio_regmap_set(struct gpio_chip *chip, unsigned int offset,
> -			    int val)
> +static int gpio_regmap_set(struct gpio_chip *chip, unsigned int offset,
> +			   int val)
>  {
>  	struct gpio_regmap *gpio = gpiochip_get_data(chip);
>  	unsigned int base = gpio_regmap_addr(gpio->reg_set_base);
>  	unsigned int reg, mask;
> +	int ret;
>  
>  	gpio->reg_mask_xlate(gpio, base, offset, &reg, &mask);

reg_mask_xlate() might fail. Please also check the return code.

>  	if (val)
> -		regmap_update_bits(gpio->regmap, reg, mask, mask);
> +		ret = regmap_update_bits(gpio->regmap, reg, mask, mask);
>  	else
> -		regmap_update_bits(gpio->regmap, reg, mask, 0);
> +		ret = regmap_update_bits(gpio->regmap, reg, mask, 0);
> +
> +	return ret;
>  }
>  
> -static void gpio_regmap_set_with_clear(struct gpio_chip *chip,
> -				       unsigned int offset, int val)
> +static int gpio_regmap_set_with_clear(struct gpio_chip *chip,
> +				      unsigned int offset, int val)
>  {
>  	struct gpio_regmap *gpio = gpiochip_get_data(chip);
>  	unsigned int base, reg, mask;
> @@ -107,7 +110,7 @@ static void gpio_regmap_set_with_clear(struct gpio_chip *chip,
>  		base = gpio_regmap_addr(gpio->reg_clr_base);
>  
>  	gpio->reg_mask_xlate(gpio, base, offset, &reg, &mask);

same same :)

-michael

> -	regmap_write(gpio->regmap, reg, mask);
> +	return regmap_write(gpio->regmap, reg, mask);
>  }
>  
>  static int gpio_regmap_get_direction(struct gpio_chip *chip,
> @@ -266,9 +269,9 @@ struct gpio_regmap *gpio_regmap_register(const struct gpio_regmap_config *config
>  	chip->free = gpiochip_generic_free;
>  	chip->get = gpio_regmap_get;
>  	if (gpio->reg_set_base && gpio->reg_clr_base)
> -		chip->set = gpio_regmap_set_with_clear;
> +		chip->set_rv = gpio_regmap_set_with_clear;
>  	else if (gpio->reg_set_base)
> -		chip->set = gpio_regmap_set;
> +		chip->set_rv = gpio_regmap_set;
>  
>  	chip->get_direction = gpio_regmap_get_direction;
>  	if (gpio->reg_dir_in_base || gpio->reg_dir_out_base) {


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 297 bytes --]

  reply	other threads:[~2025-02-17  7:49 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-11 12:09 [PATCH 00/14] gpiolib: indicate errors in value setters Bartosz Golaszewski
2025-02-11 12:09 ` [PATCH 01/14] gpiolib: make value setters have return values Bartosz Golaszewski
2025-02-12  8:03   ` kernel test robot
2025-02-12 13:26   ` kernel test robot
2025-02-12 13:57   ` kernel test robot
2025-02-14  9:24     ` Bartosz Golaszewski
2025-02-11 12:09 ` [PATCH 02/14] gpiolib: wrap gpio_chip::set() Bartosz Golaszewski
2025-02-11 12:09 ` [PATCH 03/14] gpiolib: rework the wrapper around gpio_chip::set_multiple() Bartosz Golaszewski
2025-02-11 12:09 ` [PATCH 04/14] gpiolib: introduce gpio_chip setters that return values Bartosz Golaszewski
2025-02-11 12:09 ` [PATCH 05/14] gpio: sim: use value returning setters Bartosz Golaszewski
2025-02-11 12:09 ` [PATCH 06/14] gpio: regmap: " Bartosz Golaszewski
2025-02-17  7:49   ` Michael Walle [this message]
2025-02-11 12:09 ` [PATCH 07/14] gpio: pca953x: " Bartosz Golaszewski
2025-02-11 12:09 ` [PATCH 08/14] gpio: mockup: " Bartosz Golaszewski
2025-02-11 12:09 ` [PATCH 09/14] gpio: aggregator: " Bartosz Golaszewski
2025-02-11 12:09 ` [PATCH 10/14] gpio: max77650: " Bartosz Golaszewski
2025-02-11 12:09 ` [PATCH 11/14] gpio: latch: use lock guards Bartosz Golaszewski
2025-02-11 12:09 ` [PATCH 12/14] gpio: latch: use value returning setters Bartosz Golaszewski
2025-02-11 12:09 ` [PATCH 13/14] gpio: davinci: " Bartosz Golaszewski
2025-02-11 12:09 ` [PATCH 14/14] gpio: mvebu: " Bartosz Golaszewski
2025-02-14  9:56 ` [PATCH 00/14] gpiolib: indicate errors in value setters Linus Walleij
2025-02-14 10:14   ` Bartosz Golaszewski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=D7UK17VYQYF1.1MBG6HEHPVXN3@kernel.org \
    --to=mwalle@kernel.org \
    --cc=bamv2005@gmail.com \
    --cc=bartosz.golaszewski@linaro.org \
    --cc=brgl@bgdev.pl \
    --cc=geert+renesas@glider.be \
    --cc=j-keerthy@ti.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pwm@vger.kernel.org \
    --cc=ukleinek@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.