Message ID | 20200521001006.2725-2-s-anna@ti.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | TI K3 DSP remoteproc driver for C66x DSPs | expand |
On Wed 20 May 17:10 PDT 2020, Suman Anna wrote: > 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> Regards, Bjorn > --- > v2: New patch > > drivers/remoteproc/remoteproc_core.c | 23 +++++++++++++++++++++++ > drivers/remoteproc/remoteproc_internal.h | 2 ++ > 2 files changed, 25 insertions(+) > > diff --git a/drivers/remoteproc/remoteproc_core.c b/drivers/remoteproc/remoteproc_core.c > index 9f04c30c4aaf..c458b218d524 100644 > --- a/drivers/remoteproc/remoteproc_core.c > +++ b/drivers/remoteproc/remoteproc_core.c > @@ -1034,6 +1034,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. > diff --git a/drivers/remoteproc/remoteproc_internal.h b/drivers/remoteproc/remoteproc_internal.h > index 4ba7cb59d3e8..e5341e91d2fc 100644 > --- a/drivers/remoteproc/remoteproc_internal.h > +++ b/drivers/remoteproc/remoteproc_internal.h > @@ -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); > -- > 2.26.0 >
On Wed, May 20, 2020 at 07:10:03PM -0500, Suman Anna wrote: > 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> > --- > v2: New patch > > drivers/remoteproc/remoteproc_core.c | 23 +++++++++++++++++++++++ > drivers/remoteproc/remoteproc_internal.h | 2 ++ > 2 files changed, 25 insertions(+) > Reviewed-by: Mathieu Poirier <mathieu.poirier@linaro.org> > diff --git a/drivers/remoteproc/remoteproc_core.c b/drivers/remoteproc/remoteproc_core.c > index 9f04c30c4aaf..c458b218d524 100644 > --- a/drivers/remoteproc/remoteproc_core.c > +++ b/drivers/remoteproc/remoteproc_core.c > @@ -1034,6 +1034,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. > diff --git a/drivers/remoteproc/remoteproc_internal.h b/drivers/remoteproc/remoteproc_internal.h > index 4ba7cb59d3e8..e5341e91d2fc 100644 > --- a/drivers/remoteproc/remoteproc_internal.h > +++ b/drivers/remoteproc/remoteproc_internal.h > @@ -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); > -- > 2.26.0 >
diff --git a/drivers/remoteproc/remoteproc_core.c b/drivers/remoteproc/remoteproc_core.c index 9f04c30c4aaf..c458b218d524 100644 --- a/drivers/remoteproc/remoteproc_core.c +++ b/drivers/remoteproc/remoteproc_core.c @@ -1034,6 +1034,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. diff --git a/drivers/remoteproc/remoteproc_internal.h b/drivers/remoteproc/remoteproc_internal.h index 4ba7cb59d3e8..e5341e91d2fc 100644 --- a/drivers/remoteproc/remoteproc_internal.h +++ b/drivers/remoteproc/remoteproc_internal.h @@ -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);
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> --- v2: New patch drivers/remoteproc/remoteproc_core.c | 23 +++++++++++++++++++++++ drivers/remoteproc/remoteproc_internal.h | 2 ++ 2 files changed, 25 insertions(+)