gpiolib: Provide to_gpio_device() helper
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Mon, 28 Nov 2022 19:00:54 +0000 (21:00 +0200)
committerBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Tue, 29 Nov 2022 13:52:20 +0000 (14:52 +0100)
Provide to_gpio_device() helper which can be utilized in the existing
and future code.

While at it, make sure it becomes no-op at compilation time.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
drivers/gpio/gpiolib.c
drivers/gpio/gpiolib.h

index 2729f7e..0058ee8 100644 (file)
@@ -549,7 +549,7 @@ EXPORT_SYMBOL_GPL(gpiochip_line_is_valid);
 
 static void gpiodevice_release(struct device *dev)
 {
-       struct gpio_device *gdev = container_of(dev, struct gpio_device, dev);
+       struct gpio_device *gdev = to_gpio_device(dev);
        unsigned long flags;
 
        spin_lock_irqsave(&gpio_lock, flags);
index d900ecd..e443c10 100644 (file)
@@ -20,9 +20,9 @@
 
 /**
  * struct gpio_device - internal state container for GPIO devices
- * @id: numerical ID number for the GPIO chip
  * @dev: the GPIO device struct
  * @chrdev: character device for the GPIO device
+ * @id: numerical ID number for the GPIO chip
  * @mockdev: class device used by the deprecated sysfs interface (may be
  * NULL)
  * @owner: helps prevent removal of modules exporting active GPIOs
@@ -47,9 +47,9 @@
  * userspace.
  */
 struct gpio_device {
-       int                     id;
        struct device           dev;
        struct cdev             chrdev;
+       int                     id;
        struct device           *mockdev;
        struct module           *owner;
        struct gpio_chip        *chip;
@@ -72,6 +72,11 @@ struct gpio_device {
 #endif
 };
 
+static inline struct gpio_device *to_gpio_device(struct device *dev)
+{
+       return container_of(dev, struct gpio_device, dev);
+}
+
 /* gpio suffixes used for ACPI and device tree lookup */
 static __maybe_unused const char * const gpio_suffixes[] = { "gpios", "gpio" };