of: reserved-memory: Support lookup of regions by name
Add support for looking up memory regions by name. This looks up the given name in the newly introduced memory-region-names property and returns the memory region at the corresponding index in the memory- region(s) property. Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Thierry Reding <treding@nvidia.com>
This commit is contained in:
parent
8f3d9f3542
commit
0da0e31600
|
@ -357,6 +357,25 @@ int of_reserved_mem_device_init_by_idx(struct device *dev,
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(of_reserved_mem_device_init_by_idx);
|
EXPORT_SYMBOL_GPL(of_reserved_mem_device_init_by_idx);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* of_reserved_mem_device_init_by_name() - assign named reserved memory region
|
||||||
|
* to given device
|
||||||
|
* @dev: pointer to the device to configure
|
||||||
|
* @np: pointer to the device node with 'memory-region' property
|
||||||
|
* @name: name of the selected memory region
|
||||||
|
*
|
||||||
|
* Returns: 0 on success or a negative error-code on failure.
|
||||||
|
*/
|
||||||
|
int of_reserved_mem_device_init_by_name(struct device *dev,
|
||||||
|
struct device_node *np,
|
||||||
|
const char *name)
|
||||||
|
{
|
||||||
|
int idx = of_property_match_string(np, "memory-region-names", name);
|
||||||
|
|
||||||
|
return of_reserved_mem_device_init_by_idx(dev, np, idx);
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL_GPL(of_reserved_mem_device_init_by_name);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* of_reserved_mem_device_release() - release reserved memory device structures
|
* of_reserved_mem_device_release() - release reserved memory device structures
|
||||||
* @dev: Pointer to the device to deconfigure
|
* @dev: Pointer to the device to deconfigure
|
||||||
|
|
|
@ -33,6 +33,9 @@ typedef int (*reservedmem_of_init_fn)(struct reserved_mem *rmem);
|
||||||
|
|
||||||
int of_reserved_mem_device_init_by_idx(struct device *dev,
|
int of_reserved_mem_device_init_by_idx(struct device *dev,
|
||||||
struct device_node *np, int idx);
|
struct device_node *np, int idx);
|
||||||
|
int of_reserved_mem_device_init_by_name(struct device *dev,
|
||||||
|
struct device_node *np,
|
||||||
|
const char *name);
|
||||||
void of_reserved_mem_device_release(struct device *dev);
|
void of_reserved_mem_device_release(struct device *dev);
|
||||||
|
|
||||||
void fdt_init_reserved_mem(void);
|
void fdt_init_reserved_mem(void);
|
||||||
|
@ -45,6 +48,14 @@ static inline int of_reserved_mem_device_init_by_idx(struct device *dev,
|
||||||
{
|
{
|
||||||
return -ENOSYS;
|
return -ENOSYS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline int of_reserved_mem_device_init_by_name(struct device *dev,
|
||||||
|
struct device_node *np,
|
||||||
|
const char *name)
|
||||||
|
{
|
||||||
|
return -ENOSYS;
|
||||||
|
}
|
||||||
|
|
||||||
static inline void of_reserved_mem_device_release(struct device *pdev) { }
|
static inline void of_reserved_mem_device_release(struct device *pdev) { }
|
||||||
|
|
||||||
static inline void fdt_init_reserved_mem(void) { }
|
static inline void fdt_init_reserved_mem(void) { }
|
||||||
|
|
Loading…
Reference in New Issue