]> www.infradead.org Git - linux.git/commitdiff
gpiolib: Add gpiochip_set_data() helper
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Tue, 21 Mar 2023 13:53:32 +0000 (15:53 +0200)
committerBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Mon, 3 Apr 2023 15:46:30 +0000 (17:46 +0200)
There are too many 'data' parameters here and there.

For the better maintenance keep access GPIO device data
via getter and setter.

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

index fd997eb0857f482ab5340bd3aad75aa9a3858267..88dcf40aca902a78dcac684d06ef8f7733e379cd 100644 (file)
@@ -680,6 +680,11 @@ static void gpiochip_setup_devs(void)
        }
 }
 
+static void gpiochip_set_data(struct gpio_chip *gc, void *data)
+{
+       gc->gpiodev->data = data;
+}
+
 /**
  * gpiochip_get_data() - get per-subdriver data for the chip
  * @gc: GPIO chip
@@ -722,7 +727,9 @@ int gpiochip_add_data_with_key(struct gpio_chip *gc, void *data,
        gdev->dev.bus = &gpio_bus_type;
        gdev->dev.parent = gc->parent;
        gdev->chip = gc;
+
        gc->gpiodev = gdev;
+       gpiochip_set_data(gc, data);
 
        device_set_node(&gdev->dev, gc->fwnode);
 
@@ -789,7 +796,6 @@ int gpiochip_add_data_with_key(struct gpio_chip *gc, void *data,
        }
 
        gdev->ngpio = gc->ngpio;
-       gdev->data = data;
 
        spin_lock_irqsave(&gpio_lock, flags);
 
@@ -977,9 +983,9 @@ void gpiochip_remove(struct gpio_chip *gc)
        gpiochip_free_valid_mask(gc);
        /*
         * We accept no more calls into the driver from this point, so
-        * NULL the driver data pointer
+        * NULL the driver data pointer.
         */
-       gdev->data = NULL;
+       gpiochip_set_data(gc, NULL);
 
        spin_lock_irqsave(&gpio_lock, flags);
        for (i = 0; i < gdev->ngpio; i++) {