Merge branch 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[firefly-linux-kernel-4.4.55.git] / drivers / of / address.c
index 72c33fbe451d6c31f1b50d0f38ced362d5258210..66d96f14c274e890d26d9435643210f48f7bdd35 100644 (file)
@@ -14,7 +14,7 @@
 static struct of_bus *of_match_bus(struct device_node *np);
 static int __of_address_to_resource(struct device_node *dev,
                const __be32 *addrp, u64 size, unsigned int flags,
-                                   struct resource *r);
+               const char *name, struct resource *r);
 
 /* Debug utility */
 #ifdef DEBUG
@@ -215,7 +215,7 @@ int of_pci_address_to_resource(struct device_node *dev, int bar,
        addrp = of_get_pci_address(dev, bar, &size, &flags);
        if (addrp == NULL)
                return -EINVAL;
-       return __of_address_to_resource(dev, addrp, size, flags, r);
+       return __of_address_to_resource(dev, addrp, size, flags, NULL, r);
 }
 EXPORT_SYMBOL_GPL(of_pci_address_to_resource);
 #endif /* CONFIG_PCI */
@@ -529,7 +529,7 @@ EXPORT_SYMBOL(of_get_address);
 
 static int __of_address_to_resource(struct device_node *dev,
                const __be32 *addrp, u64 size, unsigned int flags,
-                                   struct resource *r)
+               const char *name, struct resource *r)
 {
        u64 taddr;
 
@@ -551,7 +551,8 @@ static int __of_address_to_resource(struct device_node *dev,
                r->end = taddr + size - 1;
        }
        r->flags = flags;
-       r->name = dev->full_name;
+       r->name = name ? name : dev->full_name;
+
        return 0;
 }
 
@@ -569,11 +570,16 @@ int of_address_to_resource(struct device_node *dev, int index,
        const __be32    *addrp;
        u64             size;
        unsigned int    flags;
+       const char      *name = NULL;
 
        addrp = of_get_address(dev, index, &size, &flags);
        if (addrp == NULL)
                return -EINVAL;
-       return __of_address_to_resource(dev, addrp, size, flags, r);
+
+       /* Get optional "reg-names" property to add a name to a resource */
+       of_property_read_string_index(dev, "reg-names", index, &name);
+
+       return __of_address_to_resource(dev, addrp, size, flags, name, r);
 }
 EXPORT_SYMBOL_GPL(of_address_to_resource);