MIPS: txx9: iocled: use gpiochip data pointer
authorLinus Walleij <linus.walleij@linaro.org>
Tue, 8 Dec 2015 13:40:40 +0000 (14:40 +0100)
committerLinus Walleij <linus.walleij@linaro.org>
Fri, 19 Feb 2016 08:51:44 +0000 (09:51 +0100)
This makes the driver use the data pointer added to the gpio_chip
to store a pointer to the state container instead of relying on
container_of().

Cc: linux-mips@linux-mips.org
Acked-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
arch/mips/txx9/generic/setup.c

index 2fd350f31f4b54c4c505700c966cb941b62e4980..108f8a8d1640be907fd193c3131757e9504e18b0 100644 (file)
@@ -17,7 +17,7 @@
 #include <linux/module.h>
 #include <linux/clk.h>
 #include <linux/err.h>
-#include <linux/gpio.h>
+#include <linux/gpio/driver.h>
 #include <linux/platform_device.h>
 #include <linux/serial_core.h>
 #include <linux/mtd/physmap.h>
@@ -687,16 +687,14 @@ struct txx9_iocled_data {
 
 static int txx9_iocled_get(struct gpio_chip *chip, unsigned int offset)
 {
-       struct txx9_iocled_data *data =
-               container_of(chip, struct txx9_iocled_data, chip);
+       struct txx9_iocled_data *data = gpiochip_get_data(chip);
        return !!(data->cur_val & (1 << offset));
 }
 
 static void txx9_iocled_set(struct gpio_chip *chip, unsigned int offset,
                            int value)
 {
-       struct txx9_iocled_data *data =
-               container_of(chip, struct txx9_iocled_data, chip);
+       struct txx9_iocled_data *data = gpiochip_get_data(chip);
        unsigned long flags;
        spin_lock_irqsave(&txx9_iocled_lock, flags);
        if (value)
@@ -749,7 +747,7 @@ void __init txx9_iocled_init(unsigned long baseaddr,
        iocled->chip.label = "iocled";
        iocled->chip.base = basenum;
        iocled->chip.ngpio = num;
-       if (gpiochip_add(&iocled->chip))
+       if (gpiochip_add_data(&iocled->chip, iocled))
                goto out_unmap;
        if (basenum < 0)
                basenum = iocled->chip.base;