remoteproc: Introduce rproc_of_parse_firmware() helper
Add a new helper function rproc_of_parse_firmware() to the remoteproc core that can be used by various remoteproc drivers to look up the the "firmware-name" property from a rproc device node. This property is already being used by multiple drivers, so this helper can avoid repeating equivalent code in remoteproc drivers. Signed-off-by: Suman Anna <s-anna@ti.com> Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org> Reviewed-by: Mathieu Poirier <mathieu.poirier@linaro.org> Link: https://lore.kernel.org/r/20200721223617.20312-3-s-anna@ti.com Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
This commit is contained in:
Родитель
44aa656f22
Коммит
a8aa5ee100
|
@ -1046,6 +1046,29 @@ rproc_of_resm_mem_entry_init(struct device *dev, u32 of_resm_idx, size_t len,
|
|||
}
|
||||
EXPORT_SYMBOL(rproc_of_resm_mem_entry_init);
|
||||
|
||||
/**
|
||||
* rproc_of_parse_firmware() - parse and return the firmware-name
|
||||
* @dev: pointer on device struct representing a rproc
|
||||
* @index: index to use for the firmware-name retrieval
|
||||
* @fw_name: pointer to a character string, in which the firmware
|
||||
* name is returned on success and unmodified otherwise.
|
||||
*
|
||||
* This is an OF helper function that parses a device's DT node for
|
||||
* the "firmware-name" property and returns the firmware name pointer
|
||||
* in @fw_name on success.
|
||||
*
|
||||
* Return: 0 on success, or an appropriate failure.
|
||||
*/
|
||||
int rproc_of_parse_firmware(struct device *dev, int index, const char **fw_name)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = of_property_read_string_index(dev->of_node, "firmware-name",
|
||||
index, fw_name);
|
||||
return ret ? ret : 0;
|
||||
}
|
||||
EXPORT_SYMBOL(rproc_of_parse_firmware);
|
||||
|
||||
/*
|
||||
* A lookup table for resource handlers. The indices are defined in
|
||||
* enum fw_resource_type.
|
||||
|
|
|
@ -28,6 +28,8 @@ struct rproc_debug_trace {
|
|||
void rproc_release(struct kref *kref);
|
||||
irqreturn_t rproc_vq_interrupt(struct rproc *rproc, int vq_id);
|
||||
void rproc_vdev_release(struct kref *ref);
|
||||
int rproc_of_parse_firmware(struct device *dev, int index,
|
||||
const char **fw_name);
|
||||
|
||||
/* from remoteproc_virtio.c */
|
||||
int rproc_add_virtio_dev(struct rproc_vdev *rvdev, int id);
|
||||
|
|
Загрузка…
Ссылка в новой задаче