gpiolib: acpi: Respect bias settings for GpioInt() resource
[linux-2.6-microblaze.git] / drivers / gpio / gpiolib-acpi.c
index 54ca3c1..3a39e8a 100644 (file)
@@ -942,6 +942,7 @@ int acpi_dev_gpio_irq_get(struct acpi_device *adev, int index)
 
                if (info.gpioint && idx++ == index) {
                        unsigned long lflags = GPIO_LOOKUP_FLAGS_DEFAULT;
+                       enum gpiod_flags dflags = GPIOD_ASIS;
                        char label[32];
                        int irq;
 
@@ -952,8 +953,11 @@ int acpi_dev_gpio_irq_get(struct acpi_device *adev, int index)
                        if (irq < 0)
                                return irq;
 
+                       acpi_gpio_update_gpiod_flags(&dflags, &info);
+                       acpi_gpio_update_gpiod_lookup_flags(&lflags, &info);
+
                        snprintf(label, sizeof(label), "GpioInt() %d", index);
-                       ret = gpiod_configure_flags(desc, label, lflags, info.flags);
+                       ret = gpiod_configure_flags(desc, label, lflags, dflags);
                        if (ret < 0)
                                return ret;
 
@@ -1221,9 +1225,6 @@ void acpi_gpiochip_add(struct gpio_chip *chip)
                return;
        }
 
-       if (!chip->names)
-               devprop_gpiochip_set_names(chip, dev_fwnode(chip->parent));
-
        acpi_gpiochip_request_regions(acpi_gpio);
        acpi_gpiochip_scan_gpios(acpi_gpio);
        acpi_walk_dep_device_list(handle);