gpio: Move devres calls to devres file
authorLinus Walleij <linus.walleij@linaro.org>
Fri, 13 Mar 2020 08:15:22 +0000 (09:15 +0100)
committerLinus Walleij <linus.walleij@linaro.org>
Fri, 20 Mar 2020 09:23:06 +0000 (10:23 +0100)
These two devres functions devm_gpiochip_[add|remove]()
were in the wrong file. They should be in gpiolib-devres.c
not gpiolib.c.

Link: https://lore.kernel.org/r/20200313081522.35143-1-linus.walleij@linaro.org
Reviewed-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/gpiolib-devres.c
drivers/gpio/gpiolib.c

index 72b6001..5c91c43 100644 (file)
@@ -478,3 +478,49 @@ void devm_gpio_free(struct device *dev, unsigned int gpio)
                &gpio));
 }
 EXPORT_SYMBOL_GPL(devm_gpio_free);
+
+static void devm_gpio_chip_release(struct device *dev, void *res)
+{
+       struct gpio_chip *gc = *(struct gpio_chip **)res;
+
+       gpiochip_remove(gc);
+}
+
+/**
+ * devm_gpiochip_add_data() - Resource managed gpiochip_add_data()
+ * @dev: pointer to the device that gpio_chip belongs to.
+ * @gc: the GPIO chip to register
+ * @data: driver-private data associated with this chip
+ *
+ * Context: potentially before irqs will work
+ *
+ * The gpio chip automatically be released when the device is unbound.
+ *
+ * Returns:
+ * A negative errno if the chip can't be registered, such as because the
+ * gc->base is invalid or already associated with a different chip.
+ * Otherwise it returns zero as a success code.
+ */
+int devm_gpiochip_add_data(struct device *dev, struct gpio_chip *gc,
+                          void *data)
+{
+       struct gpio_chip **ptr;
+       int ret;
+
+       ptr = devres_alloc(devm_gpio_chip_release, sizeof(*ptr),
+                            GFP_KERNEL);
+       if (!ptr)
+               return -ENOMEM;
+
+       ret = gpiochip_add_data(gc, data);
+       if (ret < 0) {
+               devres_free(ptr);
+               return ret;
+       }
+
+       *ptr = gc;
+       devres_add(dev, ptr);
+
+       return 0;
+}
+EXPORT_SYMBOL_GPL(devm_gpiochip_add_data);
index 02f8b2b..00890f3 100644 (file)
@@ -1838,52 +1838,6 @@ void gpiochip_remove(struct gpio_chip *chip)
 }
 EXPORT_SYMBOL_GPL(gpiochip_remove);
 
-static void devm_gpio_chip_release(struct device *dev, void *res)
-{
-       struct gpio_chip *chip = *(struct gpio_chip **)res;
-
-       gpiochip_remove(chip);
-}
-
-/**
- * devm_gpiochip_add_data() - Resource managed gpiochip_add_data()
- * @dev: pointer to the device that gpio_chip belongs to.
- * @chip: the chip to register, with chip->base initialized
- * @data: driver-private data associated with this chip
- *
- * Context: potentially before irqs will work
- *
- * The gpio chip automatically be released when the device is unbound.
- *
- * Returns:
- * A negative errno if the chip can't be registered, such as because the
- * chip->base is invalid or already associated with a different chip.
- * Otherwise it returns zero as a success code.
- */
-int devm_gpiochip_add_data(struct device *dev, struct gpio_chip *chip,
-                          void *data)
-{
-       struct gpio_chip **ptr;
-       int ret;
-
-       ptr = devres_alloc(devm_gpio_chip_release, sizeof(*ptr),
-                            GFP_KERNEL);
-       if (!ptr)
-               return -ENOMEM;
-
-       ret = gpiochip_add_data(chip, data);
-       if (ret < 0) {
-               devres_free(ptr);
-               return ret;
-       }
-
-       *ptr = chip;
-       devres_add(dev, ptr);
-
-       return 0;
-}
-EXPORT_SYMBOL_GPL(devm_gpiochip_add_data);
-
 /**
  * gpiochip_find() - iterator for locating a specific gpio_chip
  * @data: data to pass to match function