summaryrefslogtreecommitdiff
path: root/drivers/gpio
diff options
context:
space:
mode:
authorBharat Nihalani <bnihalani@nvidia.com>2013-12-30 20:30:28 +0530
committerBharat Nihalani <bnihalani@nvidia.com>2013-12-30 20:30:28 +0530
commit546f63c2a5ecbf08064d9a65b799906832dbe2e6 (patch)
treeb4e9b8eb333935f83109fac0426ec3dfac21c85a /drivers/gpio
parentb9695b63896bea96cf2ad192673429eac7f9f467 (diff)
parentc5149b1e38ecd5c3f3d3add7fc118fb47b719929 (diff)
Merge branch 'remotes/android/android-3.10' into dev-kernel-3.10
Change-Id: I0c919e55654e0c224a5f8a5df80d9f49e92dbb37
Diffstat (limited to 'drivers/gpio')
-rw-r--r--drivers/gpio/gpiolib.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index 193bedfbcdcb..c8437ad5135b 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -136,7 +136,7 @@ static struct gpio_desc *gpio_to_desc(unsigned gpio)
*/
static int desc_to_gpio(const struct gpio_desc *desc)
{
- return desc->chip->base + gpio_chip_hwgpio(desc);
+ return desc - &gpio_desc[0];
}
@@ -1214,15 +1214,14 @@ int gpiochip_add(struct gpio_chip *chip)
}
}
+ spin_unlock_irqrestore(&gpio_lock, flags);
+
#ifdef CONFIG_PINCTRL
INIT_LIST_HEAD(&chip->pin_ranges);
#endif
of_gpiochip_add(chip);
-unlock:
- spin_unlock_irqrestore(&gpio_lock, flags);
-
if (status)
goto fail;
@@ -1237,6 +1236,9 @@ unlock:
chip->label ? : "generic");
return 0;
+
+unlock:
+ spin_unlock_irqrestore(&gpio_lock, flags);
fail:
/* failures here can mean systems won't boot... */
pr_err("gpiochip_add: gpios %d..%d (%s) failed to register\n",