Browse Source

gpio: mb86s70: Return error if requesting an already assigned gpio

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Axel Lin 10 years ago
parent
commit
fd9c963c56
1 changed files with 5 additions and 0 deletions
  1. 5 0
      drivers/gpio/gpio-mb86s7x.c

+ 5 - 0
drivers/gpio/gpio-mb86s7x.c

@@ -58,6 +58,11 @@ static int mb86s70_gpio_request(struct gpio_chip *gc, unsigned gpio)
 	spin_lock_irqsave(&gchip->lock, flags);
 
 	val = readl(gchip->base + PFR(gpio));
+	if (!(val & OFFSET(gpio))) {
+		spin_unlock_irqrestore(&gchip->lock, flags);
+		return -EINVAL;
+	}
+
 	val &= ~OFFSET(gpio);
 	writel(val, gchip->base + PFR(gpio));