Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e1db1706 authored by abdoulaye berthe's avatar abdoulaye berthe Committed by Linus Walleij
Browse files

gpio: gpiolib: set gpiochip_remove retval to void



This avoids handling gpiochip remove error in device
remove handler.

Signed-off-by: default avatarAbdoulaye Berthe <berthe.ab@gmail.com>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent e27e2786
Loading
Loading
Loading
Loading
+7 −17
Original line number Original line Diff line number Diff line
@@ -308,10 +308,9 @@ static void gpiochip_irqchip_remove(struct gpio_chip *gpiochip);
 *
 *
 * A gpio_chip with any GPIOs still requested may not be removed.
 * A gpio_chip with any GPIOs still requested may not be removed.
 */
 */
int gpiochip_remove(struct gpio_chip *chip)
void gpiochip_remove(struct gpio_chip *chip)
{
{
	unsigned long	flags;
	unsigned long	flags;
	int		status = 0;
	unsigned	id;
	unsigned	id;


	acpi_gpiochip_remove(chip);
	acpi_gpiochip_remove(chip);
@@ -323,24 +322,15 @@ int gpiochip_remove(struct gpio_chip *chip)
	of_gpiochip_remove(chip);
	of_gpiochip_remove(chip);


	for (id = 0; id < chip->ngpio; id++) {
	for (id = 0; id < chip->ngpio; id++) {
		if (test_bit(FLAG_REQUESTED, &chip->desc[id].flags)) {
		if (test_bit(FLAG_REQUESTED, &chip->desc[id].flags))
			status = -EBUSY;
			dev_crit(chip->dev, "REMOVING GPIOCHIP WITH GPIOS STILL REQUESTED\n");
			break;
	}
	}
	}
	if (status == 0) {
	for (id = 0; id < chip->ngpio; id++)
	for (id = 0; id < chip->ngpio; id++)
		chip->desc[id].chip = NULL;
		chip->desc[id].chip = NULL;


	list_del(&chip->list);
	list_del(&chip->list);
	}

	spin_unlock_irqrestore(&gpio_lock, flags);
	spin_unlock_irqrestore(&gpio_lock, flags);

	if (status == 0)
	gpiochip_unexport(chip);
	gpiochip_unexport(chip);

	return status;
}
}
EXPORT_SYMBOL_GPL(gpiochip_remove);
EXPORT_SYMBOL_GPL(gpiochip_remove);


+1 −1
Original line number Original line Diff line number Diff line
@@ -141,7 +141,7 @@ extern const char *gpiochip_is_requested(struct gpio_chip *chip,


/* add/remove chips */
/* add/remove chips */
extern int gpiochip_add(struct gpio_chip *chip);
extern int gpiochip_add(struct gpio_chip *chip);
extern int gpiochip_remove(struct gpio_chip *chip);
extern void gpiochip_remove(struct gpio_chip *chip);
extern struct gpio_chip *gpiochip_find(void *data,
extern struct gpio_chip *gpiochip_find(void *data,
			      int (*match)(struct gpio_chip *chip, void *data));
			      int (*match)(struct gpio_chip *chip, void *data));