gpiolib: Don't free if pin ranges are not defined
[sfrench/cifs-2.6.git] / drivers / gpio / gpiolib.c
index 089ddcaa9bc64a8bfaac05e52f2dbde0c8f3436b..6e3c4d7a7d14675b47c576b1b09165ca7d929877 100644 (file)
@@ -1806,6 +1806,11 @@ EXPORT_SYMBOL_GPL(gpiochip_generic_request);
  */
 void gpiochip_generic_free(struct gpio_chip *gc, unsigned offset)
 {
+#ifdef CONFIG_PINCTRL
+       if (list_empty(&gc->gpiodev->pin_ranges))
+               return;
+#endif
+
        pinctrl_gpio_free(gc->gpiodev->base + offset);
 }
 EXPORT_SYMBOL_GPL(gpiochip_generic_free);