Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

gpio: amdpt: 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: YD Tseng <ltyu101@gmail.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

+7 -9
+7 -9
drivers/gpio/gpio-amdpt.c
··· 31 31 spinlock_t lock; 32 32 }; 33 33 34 - #define to_pt_gpio(c) container_of(c, struct pt_gpio_chip, gc) 35 - 36 34 static int pt_gpio_request(struct gpio_chip *gc, unsigned offset) 37 35 { 38 - struct pt_gpio_chip *pt_gpio = to_pt_gpio(gc); 36 + struct pt_gpio_chip *pt_gpio = gpiochip_get_data(gc); 39 37 unsigned long flags; 40 38 u32 using_pins; 41 39 ··· 58 60 59 61 static void pt_gpio_free(struct gpio_chip *gc, unsigned offset) 60 62 { 61 - struct pt_gpio_chip *pt_gpio = to_pt_gpio(gc); 63 + struct pt_gpio_chip *pt_gpio = gpiochip_get_data(gc); 62 64 unsigned long flags; 63 65 u32 using_pins; 64 66 ··· 75 77 76 78 static void pt_gpio_set_value(struct gpio_chip *gc, unsigned offset, int value) 77 79 { 78 - struct pt_gpio_chip *pt_gpio = to_pt_gpio(gc); 80 + struct pt_gpio_chip *pt_gpio = gpiochip_get_data(gc); 79 81 unsigned long flags; 80 82 u32 data; 81 83 ··· 95 97 96 98 static int pt_gpio_get_value(struct gpio_chip *gc, unsigned offset) 97 99 { 98 - struct pt_gpio_chip *pt_gpio = to_pt_gpio(gc); 100 + struct pt_gpio_chip *pt_gpio = gpiochip_get_data(gc); 99 101 unsigned long flags; 100 102 u32 data; 101 103 ··· 122 124 123 125 static int pt_gpio_direction_input(struct gpio_chip *gc, unsigned offset) 124 126 { 125 - struct pt_gpio_chip *pt_gpio = to_pt_gpio(gc); 127 + struct pt_gpio_chip *pt_gpio = gpiochip_get_data(gc); 126 128 unsigned long flags; 127 129 u32 data; 128 130 ··· 142 144 static int pt_gpio_direction_output(struct gpio_chip *gc, 143 145 unsigned offset, int value) 144 146 { 145 - struct pt_gpio_chip *pt_gpio = to_pt_gpio(gc); 147 + struct pt_gpio_chip *pt_gpio = gpiochip_get_data(gc); 146 148 unsigned long flags; 147 149 u32 data; 148 150 ··· 212 214 #if defined(CONFIG_OF_GPIO) 213 215 pt_gpio->gc.of_node = pdev->dev.of_node; 214 216 #endif 215 - ret = gpiochip_add(&pt_gpio->gc); 217 + ret = gpiochip_add_data(&pt_gpio->gc, pt_gpio); 216 218 if (ret) { 217 219 dev_err(&pdev->dev, "Failed to register GPIO lib\n"); 218 220 return ret;