diff options
author | Bjorn Andersson <bjorn.andersson@linaro.org> | 2018-01-05 15:58:01 -0800 |
---|---|---|
committer | Bjorn Andersson <bjorn.andersson@linaro.org> | 2018-01-15 09:29:40 -0800 |
commit | 0f21f9cc9d868784c7564edc0cfeddd25ca9621a (patch) | |
tree | 4529534ba2c028abd340bf7f47ba9646eb838091 /drivers/remoteproc/qcom_wcnss.c | |
parent | fb98e2bdbd5f5949459dcfe9976bdafdb0ed1948 (diff) | |
download | linux-0f21f9cc9d868784c7564edc0cfeddd25ca9621a.tar.gz linux-0f21f9cc9d868784c7564edc0cfeddd25ca9621a.tar.bz2 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_wcnss.c')
-rw-r--r-- | drivers/remoteproc/qcom_wcnss.c | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/drivers/remoteproc/qcom_wcnss.c b/drivers/remoteproc/qcom_wcnss.c index c7686393d505..e53fc6f268fc 100644 --- a/drivers/remoteproc/qcom_wcnss.c +++ b/drivers/remoteproc/qcom_wcnss.c @@ -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; |