Commit 49cff125 authored by Mathieu Poirier's avatar Mathieu Poirier Committed by Bjorn Andersson

Revert "remoteproc: Add support for runtime PM"

This reverts commit a99a37f6.

Removing PM runtime operations from the remoteproc core in order to:

1) Keep all power management operations in platform drivers.  That way we
do not loose flexibility in an area that is very HW specific.

2) Avoid making the support for remote processor managed by external
entities more complex that it already is.

3) Fix regression introduced for the Omap remoteproc driver.
Acked-by: default avatarSuman Anna <s-anna@ti.com>
Tested-by: default avatarSuman Anna <s-anna@ti.com>
Signed-off-by: default avatarMathieu Poirier <mathieu.poirier@linaro.org>
Link: https://lore.kernel.org/r/20200630163118.3830422-3-mathieu.poirier@linaro.orgSigned-off-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
parent 4605ad8f
...@@ -29,7 +29,6 @@ ...@@ -29,7 +29,6 @@
#include <linux/devcoredump.h> #include <linux/devcoredump.h>
#include <linux/rculist.h> #include <linux/rculist.h>
#include <linux/remoteproc.h> #include <linux/remoteproc.h>
#include <linux/pm_runtime.h>
#include <linux/iommu.h> #include <linux/iommu.h>
#include <linux/idr.h> #include <linux/idr.h>
#include <linux/elf.h> #include <linux/elf.h>
...@@ -1383,12 +1382,6 @@ static int rproc_fw_boot(struct rproc *rproc, const struct firmware *fw) ...@@ -1383,12 +1382,6 @@ static int rproc_fw_boot(struct rproc *rproc, const struct firmware *fw)
if (ret) if (ret)
return ret; return ret;
ret = pm_runtime_get_sync(dev);
if (ret < 0) {
dev_err(dev, "pm_runtime_get_sync failed: %d\n", ret);
return ret;
}
dev_info(dev, "Booting fw image %s, size %zd\n", name, fw->size); dev_info(dev, "Booting fw image %s, size %zd\n", name, fw->size);
/* /*
...@@ -1398,7 +1391,7 @@ static int rproc_fw_boot(struct rproc *rproc, const struct firmware *fw) ...@@ -1398,7 +1391,7 @@ static int rproc_fw_boot(struct rproc *rproc, const struct firmware *fw)
ret = rproc_enable_iommu(rproc); ret = rproc_enable_iommu(rproc);
if (ret) { if (ret) {
dev_err(dev, "can't enable iommu: %d\n", ret); dev_err(dev, "can't enable iommu: %d\n", ret);
goto put_pm_runtime; return ret;
} }
/* Prepare rproc for firmware loading if needed */ /* Prepare rproc for firmware loading if needed */
...@@ -1452,8 +1445,6 @@ static int rproc_fw_boot(struct rproc *rproc, const struct firmware *fw) ...@@ -1452,8 +1445,6 @@ static int rproc_fw_boot(struct rproc *rproc, const struct firmware *fw)
rproc_unprepare_device(rproc); rproc_unprepare_device(rproc);
disable_iommu: disable_iommu:
rproc_disable_iommu(rproc); rproc_disable_iommu(rproc);
put_pm_runtime:
pm_runtime_put(dev);
return ret; return ret;
} }
...@@ -1891,8 +1882,6 @@ void rproc_shutdown(struct rproc *rproc) ...@@ -1891,8 +1882,6 @@ void rproc_shutdown(struct rproc *rproc)
rproc_disable_iommu(rproc); rproc_disable_iommu(rproc);
pm_runtime_put(dev);
/* Free the copy of the resource table */ /* Free the copy of the resource table */
kfree(rproc->cached_table); kfree(rproc->cached_table);
rproc->cached_table = NULL; rproc->cached_table = NULL;
...@@ -2183,9 +2172,6 @@ struct rproc *rproc_alloc(struct device *dev, const char *name, ...@@ -2183,9 +2172,6 @@ struct rproc *rproc_alloc(struct device *dev, const char *name,
rproc->state = RPROC_OFFLINE; rproc->state = RPROC_OFFLINE;
pm_runtime_no_callbacks(&rproc->dev);
pm_runtime_enable(&rproc->dev);
return rproc; return rproc;
put_device: put_device:
...@@ -2205,7 +2191,6 @@ EXPORT_SYMBOL(rproc_alloc); ...@@ -2205,7 +2191,6 @@ EXPORT_SYMBOL(rproc_alloc);
*/ */
void rproc_free(struct rproc *rproc) void rproc_free(struct rproc *rproc)
{ {
pm_runtime_disable(&rproc->dev);
put_device(&rproc->dev); put_device(&rproc->dev);
} }
EXPORT_SYMBOL(rproc_free); EXPORT_SYMBOL(rproc_free);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment