summaryrefslogtreecommitdiffstats
path: root/drivers/remoteproc/qcom_adsp_pil.c
diff options
context:
space:
mode:
authorBjorn Andersson2018-01-06 00:58:01 +0100
committerBjorn Andersson2018-01-15 18:29:40 +0100
commit0f21f9cc9d868784c7564edc0cfeddd25ca9621a (patch)
tree4529534ba2c028abd340bf7f47ba9646eb838091 /drivers/remoteproc/qcom_adsp_pil.c
parentremoteproc: Clone rproc_ops in rproc_alloc() (diff)
downloadkernel-qcow2-linux-0f21f9cc9d868784c7564edc0cfeddd25ca9621a.tar.gz
kernel-qcow2-linux-0f21f9cc9d868784c7564edc0cfeddd25ca9621a.tar.xz
kernel-qcow2-linux-0f21f9cc9d868784c7564edc0cfeddd25ca9621a.zip
remoteproc: Merge rproc_ops and rproc_fw_ops
There are currently a few different schemes used for overriding fw_ops or parts of fw_ops. Merge fw_ops into rproc_ops and expose the default ELF-loader symbols so that they can be assigned by the drivers. To keep backwards compatibility with the "default" case, a driver not specifying the "load" operation is assumed to want the full ELF-loader suit of functions. 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/qcom_adsp_pil.c')
-rw-r--r--drivers/remoteproc/qcom_adsp_pil.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/drivers/remoteproc/qcom_adsp_pil.c b/drivers/remoteproc/qcom_adsp_pil.c
index 3f6af54dbc96..56156c12bd73 100644
--- a/drivers/remoteproc/qcom_adsp_pil.c
+++ b/drivers/remoteproc/qcom_adsp_pil.c
@@ -85,11 +85,6 @@ static int adsp_load(struct rproc *rproc, const struct firmware *fw)
adsp->mem_region, adsp->mem_phys, adsp->mem_size);
}
-static const struct rproc_fw_ops adsp_fw_ops = {
- .find_rsc_table = qcom_mdt_find_rsc_table,
- .load = adsp_load,
-};
-
static int adsp_start(struct rproc *rproc)
{
struct qcom_adsp *adsp = (struct qcom_adsp *)rproc->priv;
@@ -182,6 +177,8 @@ static const struct rproc_ops adsp_ops = {
.start = adsp_start,
.stop = adsp_stop,
.da_to_va = adsp_da_to_va,
+ .find_rsc_table = qcom_mdt_find_rsc_table,
+ .load = adsp_load,
};
static irqreturn_t adsp_wdog_interrupt(int irq, void *dev)
@@ -344,8 +341,6 @@ static int adsp_probe(struct platform_device *pdev)
return -ENOMEM;
}
- rproc->fw_ops = &adsp_fw_ops;
-
adsp = (struct qcom_adsp *)rproc->priv;
adsp->dev = &pdev->dev;
adsp->rproc = rproc;