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(). Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx> --- drivers/gpio/gpio-adp5520.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/gpio/gpio-adp5520.c b/drivers/gpio/gpio-adp5520.c index caff711ca5a9..4fa7ff1fec9a 100644 --- a/drivers/gpio/gpio-adp5520.c +++ b/drivers/gpio/gpio-adp5520.c @@ -27,7 +27,7 @@ static int adp5520_gpio_get_value(struct gpio_chip *chip, unsigned off) struct adp5520_gpio *dev; uint8_t reg_val; - dev = container_of(chip, struct adp5520_gpio, gpio_chip); + dev = gpiochip_get_data(chip); /* * There are dedicated registers for GPIO IN/OUT. @@ -46,7 +46,7 @@ static void adp5520_gpio_set_value(struct gpio_chip *chip, unsigned off, int val) { struct adp5520_gpio *dev; - dev = container_of(chip, struct adp5520_gpio, gpio_chip); + dev = gpiochip_get_data(chip); if (val) adp5520_set_bits(dev->master, ADP5520_GPIO_OUT, dev->lut[off]); @@ -57,7 +57,7 @@ static void adp5520_gpio_set_value(struct gpio_chip *chip, static int adp5520_gpio_direction_input(struct gpio_chip *chip, unsigned off) { struct adp5520_gpio *dev; - dev = container_of(chip, struct adp5520_gpio, gpio_chip); + dev = gpiochip_get_data(chip); clear_bit(off, &dev->output); @@ -70,7 +70,7 @@ static int adp5520_gpio_direction_output(struct gpio_chip *chip, { struct adp5520_gpio *dev; int ret = 0; - dev = container_of(chip, struct adp5520_gpio, gpio_chip); + dev = gpiochip_get_data(chip); set_bit(off, &dev->output); @@ -153,7 +153,7 @@ static int adp5520_gpio_probe(struct platform_device *pdev) goto err; } - ret = gpiochip_add(&dev->gpio_chip); + ret = gpiochip_add_data(&dev->gpio_chip, dev); if (ret) goto err; -- 2.4.3 -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html