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: [email protected]
Cc: Richard Purdie <[email protected]>
Signed-off-by: Linus Walleij <[email protected]>
---
ARM SoC people: please ACK this so I can take it with the rest of
the refactoring through the GPIO tree.
---
 arch/arm/common/scoop.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/arch/arm/common/scoop.c b/arch/arm/common/scoop.c
index 45f4c21e393c..20ff61b2d179 100644
--- a/arch/arm/common/scoop.c
+++ b/arch/arm/common/scoop.c
@@ -69,7 +69,7 @@ static void __scoop_gpio_set(struct scoop_dev *sdev,
 
 static void scoop_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
 {
-       struct scoop_dev *sdev = container_of(chip, struct scoop_dev, gpio);
+       struct scoop_dev *sdev = gpiochip_get_data(chip);
        unsigned long flags;
 
        spin_lock_irqsave(&sdev->scoop_lock, flags);
@@ -81,7 +81,7 @@ static void scoop_gpio_set(struct gpio_chip *chip, unsigned 
offset, int value)
 
 static int scoop_gpio_get(struct gpio_chip *chip, unsigned offset)
 {
-       struct scoop_dev *sdev = container_of(chip, struct scoop_dev, gpio);
+       struct scoop_dev *sdev = gpiochip_get_data(chip);
 
        /* XXX: I'm unsure, but it seems so */
        return ioread16(sdev->base + SCOOP_GPRR) & (1 << (offset + 1));
@@ -90,7 +90,7 @@ static int scoop_gpio_get(struct gpio_chip *chip, unsigned 
offset)
 static int scoop_gpio_direction_input(struct gpio_chip *chip,
                        unsigned offset)
 {
-       struct scoop_dev *sdev = container_of(chip, struct scoop_dev, gpio);
+       struct scoop_dev *sdev = gpiochip_get_data(chip);
        unsigned long flags;
        unsigned short gpcr;
 
@@ -108,7 +108,7 @@ static int scoop_gpio_direction_input(struct gpio_chip 
*chip,
 static int scoop_gpio_direction_output(struct gpio_chip *chip,
                        unsigned offset, int value)
 {
-       struct scoop_dev *sdev = container_of(chip, struct scoop_dev, gpio);
+       struct scoop_dev *sdev = gpiochip_get_data(chip);
        unsigned long flags;
        unsigned short gpcr;
 
@@ -224,7 +224,7 @@ static int scoop_probe(struct platform_device *pdev)
                devptr->gpio.direction_input = scoop_gpio_direction_input;
                devptr->gpio.direction_output = scoop_gpio_direction_output;
 
-               ret = gpiochip_add(&devptr->gpio);
+               ret = gpiochip_add_data(&devptr->gpio, devptr);
                if (ret)
                        goto err_gpio;
        }
-- 
2.4.3

--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to