aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpio
diff options
context:
space:
mode:
authorabdoulaye berthe <berthe.ab@gmail.com>2014-07-05 12:28:50 -0400
committerLinus Walleij <linus.walleij@linaro.org>2014-09-23 11:51:36 -0400
commite1db1706c86ee455f25eeaeadeda827e1e02310f (patch)
tree5ac9a8c7397a911a5f8eacff25625fb4548fa43b /drivers/gpio
parente27e278608d0dca1b97abea3c1855beafcc68bcb (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>
Diffstat (limited to 'drivers/gpio')
-rw-r--r--drivers/gpio/gpiolib.c24
1 files changed, 7 insertions, 17 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 */
311int gpiochip_remove(struct gpio_chip *chip) 311void 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}
345EXPORT_SYMBOL_GPL(gpiochip_remove); 335EXPORT_SYMBOL_GPL(gpiochip_remove);
346 336