Merge master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 into next
[pandora-kernel.git] / drivers / gpio / gpiolib.c
index 24c62b8..beaf6b3 100644 (file)
@@ -127,7 +127,7 @@ int __init gpiochip_reserve(int start, int ngpio)
        unsigned long flags;
        int i;
 
-       if (!gpio_is_valid(start) || !gpio_is_valid(start + ngpio))
+       if (!gpio_is_valid(start) || !gpio_is_valid(start + ngpio - 1))
                return -EINVAL;
 
        spin_lock_irqsave(&gpio_lock, flags);
@@ -170,7 +170,7 @@ int gpiochip_add(struct gpio_chip *chip)
        unsigned        id;
        int             base = chip->base;
 
-       if ((!gpio_is_valid(base) || !gpio_is_valid(base + chip->ngpio))
+       if ((!gpio_is_valid(base) || !gpio_is_valid(base + chip->ngpio - 1))
                        && base >= 0) {
                status = -EINVAL;
                goto fail;
@@ -207,7 +207,7 @@ fail:
        /* failures here can mean systems won't boot... */
        if (status)
                pr_err("gpiochip_add: gpios %d..%d (%s) not registered\n",
-                       chip->base, chip->base + chip->ngpio,
+                       chip->base, chip->base + chip->ngpio - 1,
                        chip->label ? : "generic");
        return status;
 }
@@ -382,7 +382,7 @@ fail:
        spin_unlock_irqrestore(&gpio_lock, flags);
        if (status)
                pr_debug("%s: gpio-%d status %d\n",
-                       __FUNCTION__, gpio, status);
+                       __func__, gpio, status);
        return status;
 }
 EXPORT_SYMBOL_GPL(gpio_direction_input);
@@ -420,7 +420,7 @@ fail:
        spin_unlock_irqrestore(&gpio_lock, flags);
        if (status)
                pr_debug("%s: gpio-%d status %d\n",
-                       __FUNCTION__, gpio, status);
+                       __func__, gpio, status);
        return status;
 }
 EXPORT_SYMBOL_GPL(gpio_direction_output);