Merge remote-tracking branch 'torvalds/master' into perf/urgent
[linux-2.6-microblaze.git] / drivers / gpio / gpiolib-of.c
index baf0153..bbcc7c0 100644 (file)
@@ -1042,11 +1042,13 @@ void of_gpiochip_remove(struct gpio_chip *chip)
 
 void of_gpio_dev_init(struct gpio_chip *gc, struct gpio_device *gdev)
 {
+       /* Set default OF node to parent's one if present */
+       if (gc->parent)
+               gdev->dev.of_node = gc->parent->of_node;
+
        /* If the gpiochip has an assigned OF node this takes precedence */
        if (gc->of_node)
                gdev->dev.of_node = gc->of_node;
        else
                gc->of_node = gdev->dev.of_node;
-       if (gdev->dev.of_node)
-               gdev->dev.fwnode = of_fwnode_handle(gdev->dev.of_node);
 }