|
@@ -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);
|
|
|
|