From 5b68cc2d5963e2241d36f07c5f5964d54fa7bc6f Mon Sep 17 00:00:00 2001 From: Linus Walleij Date: Mon, 7 Dec 2015 11:18:17 +0100 Subject: [PATCH] gpio: palmas: use gpiochip data pointer 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: Andrew Chew Cc: Stephen Warren Acked-by: Laxman Dewangan Signed-off-by: Linus Walleij --- drivers/gpio/gpio-palmas.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/drivers/gpio/gpio-palmas.c b/drivers/gpio/gpio-palmas.c index ddd1a00..fdfb3b1 100644 --- a/drivers/gpio/gpio-palmas.c +++ b/drivers/gpio/gpio-palmas.c @@ -35,14 +35,9 @@ struct palmas_device_data { int ngpio; }; -static inline struct palmas_gpio *to_palmas_gpio(struct gpio_chip *chip) -{ - return container_of(chip, struct palmas_gpio, gpio_chip); -} - static int palmas_gpio_get(struct gpio_chip *gc, unsigned offset) { - struct palmas_gpio *pg = to_palmas_gpio(gc); + struct palmas_gpio *pg = gpiochip_get_data(gc); struct palmas *palmas = pg->palmas; unsigned int val; int ret; @@ -74,7 +69,7 @@ static int palmas_gpio_get(struct gpio_chip *gc, unsigned offset) static void palmas_gpio_set(struct gpio_chip *gc, unsigned offset, int value) { - struct palmas_gpio *pg = to_palmas_gpio(gc); + struct palmas_gpio *pg = gpiochip_get_data(gc); struct palmas *palmas = pg->palmas; int ret; unsigned int reg; @@ -96,7 +91,7 @@ static void palmas_gpio_set(struct gpio_chip *gc, unsigned offset, static int palmas_gpio_output(struct gpio_chip *gc, unsigned offset, int value) { - struct palmas_gpio *pg = to_palmas_gpio(gc); + struct palmas_gpio *pg = gpiochip_get_data(gc); struct palmas *palmas = pg->palmas; int ret; unsigned int reg; @@ -118,7 +113,7 @@ static int palmas_gpio_output(struct gpio_chip *gc, unsigned offset, static int palmas_gpio_input(struct gpio_chip *gc, unsigned offset) { - struct palmas_gpio *pg = to_palmas_gpio(gc); + struct palmas_gpio *pg = gpiochip_get_data(gc); struct palmas *palmas = pg->palmas; int ret; unsigned int reg; @@ -136,7 +131,7 @@ static int palmas_gpio_input(struct gpio_chip *gc, unsigned offset) static int palmas_gpio_to_irq(struct gpio_chip *gc, unsigned offset) { - struct palmas_gpio *pg = to_palmas_gpio(gc); + struct palmas_gpio *pg = gpiochip_get_data(gc); struct palmas *palmas = pg->palmas; return palmas_irq_get_virq(palmas, PALMAS_GPIO_0_IRQ + offset); @@ -200,7 +195,7 @@ static int palmas_gpio_probe(struct platform_device *pdev) else palmas_gpio->gpio_chip.base = -1; - ret = gpiochip_add(&palmas_gpio->gpio_chip); + ret = gpiochip_add_data(&palmas_gpio->gpio_chip, palmas_gpio); if (ret < 0) { dev_err(&pdev->dev, "Could not register gpiochip, %d\n", ret); return ret; -- 2.7.4