remoteproc: introduce rproc_add_carveout function
authorLoic Pallardy <loic.pallardy@st.com>
Fri, 27 Jul 2018 13:14:41 +0000 (15:14 +0200)
committerBjorn Andersson <bjorn.andersson@linaro.org>
Wed, 10 Oct 2018 05:39:08 +0000 (22:39 -0700)
This patch introduces a new API to allow platform driver to register
platform specific carveout regions.

Signed-off-by: Loic Pallardy <loic.pallardy@st.com>
Acked-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
drivers/remoteproc/remoteproc_core.c
include/linux/remoteproc.h

index 9decc598944d09f0c3fa908a65eedf423da0bc65..db771e53f0971ceb1d3be35edcf56bea7abfe807 100644 (file)
@@ -747,7 +747,7 @@ static int rproc_handle_carveout(struct rproc *rproc,
        if (!carveout)
                goto free_carv;
 
-       list_add_tail(&carveout->node, &rproc->carveouts);
+       rproc_add_carveout(rproc, carveout);
 
        return 0;
 
@@ -760,6 +760,20 @@ dma_free:
        return ret;
 }
 
+/**
+ * rproc_add_carveout() - register an allocated carveout region
+ * @rproc: rproc handle
+ * @mem: memory entry to register
+ *
+ * This function registers specified memory entry in @rproc carveouts list.
+ * Specified carveout should have been allocated before registering.
+ */
+void rproc_add_carveout(struct rproc *rproc, struct rproc_mem_entry *mem)
+{
+       list_add_tail(&mem->node, &rproc->carveouts);
+}
+EXPORT_SYMBOL(rproc_add_carveout);
+
 /**
  * rproc_mem_entry_init() - allocate and initialize rproc_mem_entry struct
  * @dev: pointer on device struct
index 9e2b84fa2efa3f4e0f2288d40e8416ff8959e5a2..8a350265d8838bc57d5e153f97df8b4ff1448ca1 100644 (file)
@@ -559,6 +559,8 @@ int rproc_add(struct rproc *rproc);
 int rproc_del(struct rproc *rproc);
 void rproc_free(struct rproc *rproc);
 
+void rproc_add_carveout(struct rproc *rproc, struct rproc_mem_entry *mem);
+
 struct rproc_mem_entry *
 rproc_mem_entry_init(struct device *dev,
                     void *va, dma_addr_t dma, int len, u32 da,