gpio: move descriptors into gpio_device
We need gpio_device to hold the descriptors so that they can
be lifecycled with the struct gpio_device held from userspace.
Move the descriptor array into gpio_device. Also rename it from
"desc" (singularis) to "descs" (pluralis) to reflect the fact
that it is an array.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
diff --git a/drivers/gpio/gpiolib.h b/drivers/gpio/gpiolib.h
index c5a5b57..39b8301 100644
--- a/drivers/gpio/gpiolib.h
+++ b/drivers/gpio/gpiolib.h
@@ -32,6 +32,7 @@
* @owner: helps prevent removal of modules exporting active GPIOs
* @chip: pointer to the corresponding gpiochip, holding static
* data for this device
+ * @descs: array of ngpio descriptors.
* @list: links gpio_device:s together for traversal
*
* This state container holds most of the runtime variable data
@@ -46,6 +47,7 @@
struct device *mockdev;
struct module *owner;
struct gpio_chip *chip;
+ struct gpio_desc *descs;
struct list_head list;
};
@@ -152,7 +154,7 @@
*/
static int __maybe_unused gpio_chip_hwgpio(const struct gpio_desc *desc)
{
- return desc - &desc->chip->desc[0];
+ return desc - &desc->chip->gpiodev->descs[0];
}
/* With descriptor prefix */