Skip to content

Commit

Permalink
remoteproc: Rename "load_rsc_table" to "parse_fw"
Browse files Browse the repository at this point in the history
The resource table is just one possible source of information that can
be extracted from the firmware file. Generalize this interface to allow
drivers to override this with parsers of other types of information.

Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
  • Loading branch information
Bjorn Andersson committed Feb 12, 2018
1 parent 2666ca9 commit c1d35c1
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 8 deletions.
6 changes: 3 additions & 3 deletions drivers/remoteproc/remoteproc_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -944,8 +944,8 @@ static int rproc_fw_boot(struct rproc *rproc, const struct firmware *fw)

rproc->bootaddr = rproc_get_boot_addr(rproc, fw);

/* load resource table */
ret = rproc_load_rsc_table(rproc, fw);
/* Load resource table, core dump segment list etc from the firmware */
ret = rproc_parse_fw(rproc, fw);
if (ret)
goto disable_iommu;

Expand Down Expand Up @@ -1555,7 +1555,7 @@ struct rproc *rproc_alloc(struct device *dev, const char *name,
/* Default to ELF loader if no load function is specified */
if (!rproc->ops->load) {
rproc->ops->load = rproc_elf_load_segments;
rproc->ops->load_rsc_table = rproc_elf_load_rsc_table;
rproc->ops->parse_fw = rproc_elf_load_rsc_table;
rproc->ops->find_loaded_rsc_table = rproc_elf_find_loaded_rsc_table;
rproc->ops->sanity_check = rproc_elf_sanity_check;
rproc->ops->get_boot_addr = rproc_elf_get_boot_addr;
Expand Down
7 changes: 3 additions & 4 deletions drivers/remoteproc/remoteproc_internal.h
Original file line number Diff line number Diff line change
Expand Up @@ -88,11 +88,10 @@ int rproc_load_segments(struct rproc *rproc, const struct firmware *fw)
return -EINVAL;
}

static inline int rproc_load_rsc_table(struct rproc *rproc,
const struct firmware *fw)
static inline int rproc_parse_fw(struct rproc *rproc, const struct firmware *fw)
{
if (rproc->ops->load_rsc_table)
return rproc->ops->load_rsc_table(rproc, fw);
if (rproc->ops->parse_fw)
return rproc->ops->parse_fw(rproc, fw);

return 0;
}
Expand Down
2 changes: 1 addition & 1 deletion include/linux/remoteproc.h
Original file line number Diff line number Diff line change
Expand Up @@ -344,7 +344,7 @@ struct rproc_ops {
int (*stop)(struct rproc *rproc);
void (*kick)(struct rproc *rproc, int vqid);
void * (*da_to_va)(struct rproc *rproc, u64 da, int len);
int (*load_rsc_table)(struct rproc *rproc, const struct firmware *fw);
int (*parse_fw)(struct rproc *rproc, const struct firmware *fw);
struct resource_table *(*find_loaded_rsc_table)(
struct rproc *rproc, const struct firmware *fw);
int (*load)(struct rproc *rproc, const struct firmware *fw);
Expand Down

0 comments on commit c1d35c1

Please sign in to comment.