[PATCH v1 2/2] gpiolib: Add gpiochip_set_data() helper

From: Andy Shevchenko
Date: Tue Mar 21 2023 - 09:53:05 EST


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@xxxxxxxxxxxxxxx>
---
drivers/gpio/gpiolib.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index 2bfc474d99c3..51a19cbe39a4 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -681,6 +681,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
@@ -723,7 +728,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);

@@ -790,7 +797,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);

@@ -978,9 +984,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++) {
--
2.40.0.1.gaa8946217a0b