diff options
author | abdoulaye berthe <berthe.ab@gmail.com> | 2014-07-05 12:28:50 -0400 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2014-09-23 11:51:36 -0400 |
commit | e1db1706c86ee455f25eeaeadeda827e1e02310f (patch) | |
tree | 5ac9a8c7397a911a5f8eacff25625fb4548fa43b | |
parent | e27e278608d0dca1b97abea3c1855beafcc68bcb (diff) |
gpio: gpiolib: set gpiochip_remove retval to void
This avoids handling gpiochip remove error in device
remove handler.
Signed-off-by: Abdoulaye Berthe <berthe.ab@gmail.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
-rw-r--r-- | drivers/gpio/gpiolib.c | 24 | ||||
-rw-r--r-- | include/linux/gpio/driver.h | 2 |
2 files changed, 8 insertions, 18 deletions
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index a5831d6a9b91..bf1bb795f100 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c | |||
@@ -308,10 +308,9 @@ static void gpiochip_irqchip_remove(struct gpio_chip *gpiochip); | |||
308 | * | 308 | * |
309 | * A gpio_chip with any GPIOs still requested may not be removed. | 309 | * A gpio_chip with any GPIOs still requested may not be removed. |
310 | */ | 310 | */ |
311 | int gpiochip_remove(struct gpio_chip *chip) | 311 | void gpiochip_remove(struct gpio_chip *chip) |
312 | { | 312 | { |
313 | unsigned long flags; | 313 | unsigned long flags; |
314 | int status = 0; | ||
315 | unsigned id; | 314 | unsigned id; |
316 | 315 | ||
317 | acpi_gpiochip_remove(chip); | 316 | acpi_gpiochip_remove(chip); |
@@ -323,24 +322,15 @@ int gpiochip_remove(struct gpio_chip *chip) | |||
323 | of_gpiochip_remove(chip); | 322 | of_gpiochip_remove(chip); |
324 | 323 | ||
325 | for (id = 0; id < chip->ngpio; id++) { | 324 | for (id = 0; id < chip->ngpio; id++) { |
326 | if (test_bit(FLAG_REQUESTED, &chip->desc[id].flags)) { | 325 | if (test_bit(FLAG_REQUESTED, &chip->desc[id].flags)) |
327 | status = -EBUSY; | 326 | dev_crit(chip->dev, "REMOVING GPIOCHIP WITH GPIOS STILL REQUESTED\n"); |
328 | break; | ||
329 | } | ||
330 | } | ||
331 | if (status == 0) { | ||
332 | for (id = 0; id < chip->ngpio; id++) | ||
333 | chip->desc[id].chip = NULL; | ||
334 | |||
335 | list_del(&chip->list); | ||
336 | } | 327 | } |
328 | for (id = 0; id < chip->ngpio; id++) | ||
329 | chip->desc[id].chip = NULL; | ||
337 | 330 | ||
331 | list_del(&chip->list); | ||
338 | spin_unlock_irqrestore(&gpio_lock, flags); | 332 | spin_unlock_irqrestore(&gpio_lock, flags); |
339 | 333 | gpiochip_unexport(chip); | |
340 | if (status == 0) | ||
341 | gpiochip_unexport(chip); | ||
342 | |||
343 | return status; | ||
344 | } | 334 | } |
345 | EXPORT_SYMBOL_GPL(gpiochip_remove); | 335 | EXPORT_SYMBOL_GPL(gpiochip_remove); |
346 | 336 | ||
diff --git a/include/linux/gpio/driver.h b/include/linux/gpio/driver.h index a2de58fffd19..560bf7fa614f 100644 --- a/include/linux/gpio/driver.h +++ b/include/linux/gpio/driver.h | |||
@@ -141,7 +141,7 @@ extern const char *gpiochip_is_requested(struct gpio_chip *chip, | |||
141 | 141 | ||
142 | /* add/remove chips */ | 142 | /* add/remove chips */ |
143 | extern int gpiochip_add(struct gpio_chip *chip); | 143 | extern int gpiochip_add(struct gpio_chip *chip); |
144 | extern int gpiochip_remove(struct gpio_chip *chip); | 144 | extern void gpiochip_remove(struct gpio_chip *chip); |
145 | extern struct gpio_chip *gpiochip_find(void *data, | 145 | extern struct gpio_chip *gpiochip_find(void *data, |
146 | int (*match)(struct gpio_chip *chip, void *data)); | 146 | int (*match)(struct gpio_chip *chip, void *data)); |
147 | 147 | ||