diff options
author | Miguel Vadillo <vadillo@ti.com> | 2011-06-30 18:51:21 -0500 |
---|---|---|
committer | Iliyan Malchev <malchev@google.com> | 2011-07-20 17:34:33 -0700 |
commit | 736da552bc7e22e6233d20459c120b82738d080b (patch) | |
tree | 7c2a90de0cfa93d5b763ae5f0127835e3d9d1ce0 /drivers/remoteproc | |
parent | dbf3f62c5761f298cce9991b30a60dd08f76656f (diff) | |
download | kernel_samsung_tuna-736da552bc7e22e6233d20459c120b82738d080b.zip kernel_samsung_tuna-736da552bc7e22e6233d20459c120b82738d080b.tar.gz kernel_samsung_tuna-736da552bc7e22e6233d20459c120b82738d080b.tar.bz2 |
omap4: remoteproc: specific constraints apis
Omap4 specific implementation of constraints
apis supporting:
- Latency
- Frequency
- Bandwidth
Change-Id: I7c001a54702156ed5e628867268279be3f2cc2ed
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Fernando Guzman Lugo <fernando.lugo@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
Diffstat (limited to 'drivers/remoteproc')
-rw-r--r-- | drivers/remoteproc/omap_remoteproc.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/drivers/remoteproc/omap_remoteproc.c b/drivers/remoteproc/omap_remoteproc.c index f47b447..9c2ea38 100644 --- a/drivers/remoteproc/omap_remoteproc.c +++ b/drivers/remoteproc/omap_remoteproc.c @@ -27,6 +27,9 @@ #include <plat/omap_device.h> #include <plat/remoteproc.h> #include <plat/mailbox.h> +#include <plat/common.h> +#include <plat/omap-pm.h> +#include "../../arch/arm/mach-omap2/dvfs.h" #define PM_SUSPEND_MBOX 0xffffff07 #define PM_SUSPEND_TIMEOUT 300 @@ -309,6 +312,22 @@ static inline int omap_rproc_stop(struct rproc *rproc) return omap_device_idle(pdev); } +static int omap_rproc_set_lat(struct rproc *rproc, long val) +{ + pm_qos_update_request(rproc->qos_request, val); + return 0; +} + +static int omap_rproc_set_l3_bw(struct rproc *rproc, long val) +{ + return omap_pm_set_min_bus_tput(rproc->dev, OCP_INITIATOR_AGENT, val); +} + +static int omap_rproc_scale(struct rproc *rproc, long val) +{ + return omap_device_scale(rproc->dev, rproc->dev, val); +} + static struct rproc_ops omap_rproc_ops = { .start = omap_rproc_start, .stop = omap_rproc_stop, @@ -317,6 +336,9 @@ static struct rproc_ops omap_rproc_ops = { #endif .iommu_init = omap_rproc_iommu_init, .iommu_exit = omap_rproc_iommu_exit, + .set_lat = omap_rproc_set_lat, + .set_bw = omap_rproc_set_l3_bw, + .scale = omap_rproc_scale, }; static int omap_rproc_probe(struct platform_device *pdev) |