summaryrefslogtreecommitdiffstats
path: root/drivers/remoteproc/remoteproc_internal.h
diff options
context:
space:
mode:
authorBjorn Andersson <bjorn.andersson@linaro.org>2018-01-06 00:58:03 +0100
committerBjorn Andersson <bjorn.andersson@linaro.org>2018-01-15 18:29:53 +0100
commit58b640906702bcc083ac783bf10325e22c67d9fc (patch)
treea9464c01c1f24b6977f7fefa67066a2e10eb4fea /drivers/remoteproc/remoteproc_internal.h
parentremoteproc: Don't handle empty resource table (diff)
downloadlinux-58b640906702bcc083ac783bf10325e22c67d9fc.tar.xz
linux-58b640906702bcc083ac783bf10325e22c67d9fc.zip
remoteproc: Move resource table load logic to find
Extend the previous operation of finding the resource table in the ELF with the extra step of populating the rproc struct with a copy and the size. This allows drivers to override the mechanism used for acquiring the resource table, or omit it for firmware that is known not to have a resource table. This leaves the custom, dummy, find_rsc_table implementations found in some drivers dangling. Reviewed-By: Loic Pallardy <loic.pallardy@st.com> Tested-By: Loic Pallardy <loic.pallardy@st.com> Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Diffstat (limited to 'drivers/remoteproc/remoteproc_internal.h')
-rw-r--r--drivers/remoteproc/remoteproc_internal.h16
1 files changed, 6 insertions, 10 deletions
diff --git a/drivers/remoteproc/remoteproc_internal.h b/drivers/remoteproc/remoteproc_internal.h
index a42690c514e2..55a2950c5cb7 100644
--- a/drivers/remoteproc/remoteproc_internal.h
+++ b/drivers/remoteproc/remoteproc_internal.h
@@ -57,9 +57,7 @@ int rproc_trigger_recovery(struct rproc *rproc);
int rproc_elf_sanity_check(struct rproc *rproc, const struct firmware *fw);
u32 rproc_elf_get_boot_addr(struct rproc *rproc, const struct firmware *fw);
int rproc_elf_load_segments(struct rproc *rproc, const struct firmware *fw);
-struct resource_table *rproc_elf_find_rsc_table(struct rproc *rproc,
- const struct firmware *fw,
- int *tablesz);
+int rproc_elf_load_rsc_table(struct rproc *rproc, const struct firmware *fw);
struct resource_table *rproc_elf_find_loaded_rsc_table(struct rproc *rproc,
const struct firmware *fw);
@@ -90,15 +88,13 @@ int rproc_load_segments(struct rproc *rproc, const struct firmware *fw)
return -EINVAL;
}
-static inline
-struct resource_table *rproc_find_rsc_table(struct rproc *rproc,
- const struct firmware *fw,
- int *tablesz)
+static inline int rproc_load_rsc_table(struct rproc *rproc,
+ const struct firmware *fw)
{
- if (rproc->ops->find_rsc_table)
- return rproc->ops->find_rsc_table(rproc, fw, tablesz);
+ if (rproc->ops->load_rsc_table)
+ return rproc->ops->load_rsc_table(rproc, fw);
- return NULL;
+ return 0;
}
static inline