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

gpio: bcm-kona: 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: Markus Mayer <markus.mayer@linaro.org>
Cc: Tim Kryger <tim.kryger@linaro.org>
Cc: Matt Porter <matt.porter@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

+10 -15
+10 -15
drivers/gpio/gpio-bcm-kona.c
··· 78 78 struct bcm_kona_gpio *kona_gpio; 79 79 }; 80 80 81 - static inline struct bcm_kona_gpio *to_kona_gpio(struct gpio_chip *chip) 82 - { 83 - return container_of(chip, struct bcm_kona_gpio, gpio_chip); 84 - } 85 - 86 81 static inline void bcm_kona_gpio_write_lock_regs(void __iomem *reg_base, 87 82 int bank_id, u32 lockcode) 88 83 { ··· 119 124 120 125 static int bcm_kona_gpio_get_dir(struct gpio_chip *chip, unsigned gpio) 121 126 { 122 - struct bcm_kona_gpio *kona_gpio = to_kona_gpio(chip); 127 + struct bcm_kona_gpio *kona_gpio = gpiochip_get_data(chip); 123 128 void __iomem *reg_base = kona_gpio->reg_base; 124 129 u32 val; 125 130 ··· 136 141 u32 val, reg_offset; 137 142 unsigned long flags; 138 143 139 - kona_gpio = to_kona_gpio(chip); 144 + kona_gpio = gpiochip_get_data(chip); 140 145 reg_base = kona_gpio->reg_base; 141 146 spin_lock_irqsave(&kona_gpio->lock, flags); 142 147 ··· 163 168 u32 val, reg_offset; 164 169 unsigned long flags; 165 170 166 - kona_gpio = to_kona_gpio(chip); 171 + kona_gpio = gpiochip_get_data(chip); 167 172 reg_base = kona_gpio->reg_base; 168 173 spin_lock_irqsave(&kona_gpio->lock, flags); 169 174 ··· 183 188 184 189 static int bcm_kona_gpio_request(struct gpio_chip *chip, unsigned gpio) 185 190 { 186 - struct bcm_kona_gpio *kona_gpio = to_kona_gpio(chip); 191 + struct bcm_kona_gpio *kona_gpio = gpiochip_get_data(chip); 187 192 188 193 bcm_kona_gpio_unlock_gpio(kona_gpio, gpio); 189 194 return 0; ··· 191 196 192 197 static void bcm_kona_gpio_free(struct gpio_chip *chip, unsigned gpio) 193 198 { 194 - struct bcm_kona_gpio *kona_gpio = to_kona_gpio(chip); 199 + struct bcm_kona_gpio *kona_gpio = gpiochip_get_data(chip); 195 200 196 201 bcm_kona_gpio_lock_gpio(kona_gpio, gpio); 197 202 } ··· 203 208 u32 val; 204 209 unsigned long flags; 205 210 206 - kona_gpio = to_kona_gpio(chip); 211 + kona_gpio = gpiochip_get_data(chip); 207 212 reg_base = kona_gpio->reg_base; 208 213 spin_lock_irqsave(&kona_gpio->lock, flags); 209 214 ··· 227 232 u32 val, reg_offset; 228 233 unsigned long flags; 229 234 230 - kona_gpio = to_kona_gpio(chip); 235 + kona_gpio = gpiochip_get_data(chip); 231 236 reg_base = kona_gpio->reg_base; 232 237 spin_lock_irqsave(&kona_gpio->lock, flags); 233 238 ··· 250 255 { 251 256 struct bcm_kona_gpio *kona_gpio; 252 257 253 - kona_gpio = to_kona_gpio(chip); 258 + kona_gpio = gpiochip_get_data(chip); 254 259 if (gpio >= kona_gpio->gpio_chip.ngpio) 255 260 return -ENXIO; 256 261 return irq_create_mapping(kona_gpio->irq_domain, gpio); ··· 264 269 u32 val, res; 265 270 unsigned long flags; 266 271 267 - kona_gpio = to_kona_gpio(chip); 272 + kona_gpio = gpiochip_get_data(chip); 268 273 reg_base = kona_gpio->reg_base; 269 274 /* debounce must be 1-128ms (or 0) */ 270 275 if ((debounce > 0 && debounce < 1000) || debounce > 128000) { ··· 630 635 631 636 bcm_kona_gpio_reset(kona_gpio); 632 637 633 - ret = gpiochip_add(chip); 638 + ret = gpiochip_add_data(chip, kona_gpio); 634 639 if (ret < 0) { 635 640 dev_err(dev, "Couldn't add GPIO chip -- %d\n", ret); 636 641 goto err_irq_domain;