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>
This commit is contained in:
Bjorn Andersson
2018-01-05 15:58:01 -08:00
parent fb98e2bdbd
commit 0f21f9cc9d
8 changed files with 67 additions and 90 deletions

View File

@@ -156,11 +156,6 @@ static int wcnss_load(struct rproc *rproc, const struct firmware *fw)
wcnss->mem_region, wcnss->mem_phys, wcnss->mem_size);
}
static const struct rproc_fw_ops wcnss_fw_ops = {
.find_rsc_table = qcom_mdt_find_rsc_table,
.load = wcnss_load,
};
static void wcnss_indicate_nv_download(struct qcom_wcnss *wcnss)
{
u32 val;
@@ -313,6 +308,8 @@ static const struct rproc_ops wcnss_ops = {
.start = wcnss_start,
.stop = wcnss_stop,
.da_to_va = wcnss_da_to_va,
.find_rsc_table = qcom_mdt_find_rsc_table,
.load = wcnss_load,
};
static irqreturn_t wcnss_wdog_interrupt(int irq, void *dev)
@@ -492,8 +489,6 @@ static int wcnss_probe(struct platform_device *pdev)
return -ENOMEM;
}
rproc->fw_ops = &wcnss_fw_ops;
wcnss = (struct qcom_wcnss *)rproc->priv;
wcnss->dev = &pdev->dev;
wcnss->rproc = rproc;