]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
gpio: regmap: Move optional assignments down in the code
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Thu, 13 Feb 2025 19:48:49 +0000 (21:48 +0200)
committerBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Fri, 21 Feb 2025 08:42:45 +0000 (09:42 +0100)
Move optional assignments down in the code, so they may use some values
from the (updated) struct gpio_chip later on.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Michael Walle <mwalle@kernel.org>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Tested-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Reviewed-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Link: https://lore.kernel.org/r/20250213195621.3133406-5-andriy.shevchenko@linux.intel.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
drivers/gpio/gpio-regmap.c

index 7775b0c56602949cff5e9116c436bf5c58559ab5..41ee576e7cd09dc502be2250227f48f8165c1c41 100644 (file)
@@ -239,20 +239,6 @@ struct gpio_regmap *gpio_regmap_register(const struct gpio_regmap_config *config
        gpio->reg_dir_in_base = config->reg_dir_in_base;
        gpio->reg_dir_out_base = config->reg_dir_out_base;
 
-       /* if not set, assume there is only one register */
-       gpio->ngpio_per_reg = config->ngpio_per_reg;
-       if (!gpio->ngpio_per_reg)
-               gpio->ngpio_per_reg = config->ngpio;
-
-       /* if not set, assume they are consecutive */
-       gpio->reg_stride = config->reg_stride;
-       if (!gpio->reg_stride)
-               gpio->reg_stride = 1;
-
-       gpio->reg_mask_xlate = config->reg_mask_xlate;
-       if (!gpio->reg_mask_xlate)
-               gpio->reg_mask_xlate = gpio_regmap_simple_xlate;
-
        chip = &gpio->gpio_chip;
        chip->parent = config->parent;
        chip->fwnode = config->fwnode;
@@ -276,6 +262,20 @@ struct gpio_regmap *gpio_regmap_register(const struct gpio_regmap_config *config
                chip->direction_output = gpio_regmap_direction_output;
        }
 
+       /* if not set, assume there is only one register */
+       gpio->ngpio_per_reg = config->ngpio_per_reg;
+       if (!gpio->ngpio_per_reg)
+               gpio->ngpio_per_reg = config->ngpio;
+
+       /* if not set, assume they are consecutive */
+       gpio->reg_stride = config->reg_stride;
+       if (!gpio->reg_stride)
+               gpio->reg_stride = 1;
+
+       gpio->reg_mask_xlate = config->reg_mask_xlate;
+       if (!gpio->reg_mask_xlate)
+               gpio->reg_mask_xlate = gpio_regmap_simple_xlate;
+
        ret = gpiochip_add_data(chip, gpio);
        if (ret < 0)
                goto err_free_gpio;