]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/gpio/gpiolib.c
gpiolib: quiet gpiochip_add boot message noise
[karo-tx-linux.git] / drivers / gpio / gpiolib.c
index 5a75510d66bb14a2148c71432104fc7ac5f39d9b..e48b70c6ddf11b767b75a86c864360a52832790a 100644 (file)
@@ -1093,7 +1093,7 @@ unlock:
        if (status)
                goto fail;
 
-       pr_info("gpiochip_add: registered GPIOs %d to %d on device: %s\n",
+       pr_debug("gpiochip_add: registered GPIOs %d to %d on device: %s\n",
                chip->base, chip->base + chip->ngpio - 1,
                chip->label ? : "generic");
 
@@ -1156,7 +1156,7 @@ EXPORT_SYMBOL_GPL(gpiochip_remove);
  */
 struct gpio_chip *gpiochip_find(const void *data,
                                int (*match)(struct gpio_chip *chip,
-                                            const void *data))
+                                            void *data))
 {
        struct gpio_chip *chip = NULL;
        unsigned long flags;
@@ -1302,8 +1302,18 @@ int gpio_request_one(unsigned gpio, unsigned long flags, const char *label)
                                (flags & GPIOF_INIT_HIGH) ? 1 : 0);
 
        if (err)
-               gpio_free(gpio);
+               goto free_gpio;
+
+       if (flags & GPIOF_EXPORT) {
+               err = gpio_export(gpio, flags & GPIOF_EXPORT_CHANGEABLE);
+               if (err)
+                       goto free_gpio;
+       }
+
+       return 0;
 
+ free_gpio:
+       gpio_free(gpio);
        return err;
 }
 EXPORT_SYMBOL_GPL(gpio_request_one);