diff options
author | Fernando Guzman Lugo <fernando.lugo@ti.com> | 2012-06-15 13:12:04 -0500 |
---|---|---|
committer | Guillaume Aubertin <g-aubertin@ti.com> | 2012-06-26 12:20:40 +0200 |
commit | 686a9b4a5d66979106821615820ec01e1c3ad17f (patch) | |
tree | bfe3c567c996c6a44d4bb8f4ff3dd4828ac6c71f | |
parent | 6192a94f54e04df96f28514bebcc70ca64236f7c (diff) |
rpmsg: resmgr : omap: move call to omap_get_clk_by_name into mach-omap2 directory
The function omap_get_clk_by_name is not exported. Therefore, we will
have issue if we want to build omap_rpmsg_resmgr as a module. Now, this
called have been moved to mach-omap2/rpmsg_resmgr.c which is always
builtin. Now, ISS optional clock struct clk is exported as part of the
platform data to its omap driver.
Change-Id: I76dac4188f227af591733b02e965a892b5fccdf8
Signed-off-by: Fernando Guzman Lugo <fernando.lugo@ti.com>
-rw-r--r-- | arch/arm/mach-omap2/rpmsg_resmgr.c | 14 | ||||
-rw-r--r-- | arch/arm/plat-omap/include/plat/rpmsg_resmgr.h | 1 | ||||
-rw-r--r-- | drivers/rpmsg/omap_rpmsg_resmgr.c | 7 |
3 files changed, 20 insertions, 2 deletions
diff --git a/arch/arm/mach-omap2/rpmsg_resmgr.c b/arch/arm/mach-omap2/rpmsg_resmgr.c index ef0a08ec3969..a62d4c218ffc 100644 --- a/arch/arm/mach-omap2/rpmsg_resmgr.c +++ b/arch/arm/mach-omap2/rpmsg_resmgr.c @@ -23,6 +23,7 @@ #include <plat/rpmsg_resmgr.h> #include <plat/omap-pm.h> #include <plat/cpu.h> +#include <plat/clock.h> static const char * const omap4_pauxclks[] = { "sys_clkin_ck", @@ -154,6 +155,7 @@ static struct omap_rprm_pdata omap2_rprm_data = { static int __init omap2_rprm_init(void) { struct platform_device *pdev; + struct omap_rprm_pdata *pdata = &omap2_rprm_data; int ret; if (cpu_is_omap54xx()) { @@ -164,12 +166,20 @@ static int __init omap2_rprm_init(void) auxclk_cnt = ARRAY_SIZE(omap4_auxclks); } + if (pdata->iss_opt_clk_name) { + pdata->iss_opt_clk = + omap_clk_get_by_name(pdata->iss_opt_clk_name); + if (!pdata->iss_opt_clk) { + dev_err(&pdev->dev, "error getting iss opt clk\n"); + return -ENOENT; + } + } + pdev = platform_device_alloc("omap-rprm", -1); if (!pdev) return -ENOMEM; - ret = platform_device_add_data(pdev, &omap2_rprm_data, - sizeof omap2_rprm_data); + ret = platform_device_add_data(pdev, pdata, sizeof *pdata); if (ret) goto err; diff --git a/arch/arm/plat-omap/include/plat/rpmsg_resmgr.h b/arch/arm/plat-omap/include/plat/rpmsg_resmgr.h index 0d30eac5154b..5cce8548ad96 100644 --- a/arch/arm/plat-omap/include/plat/rpmsg_resmgr.h +++ b/arch/arm/plat-omap/include/plat/rpmsg_resmgr.h @@ -69,6 +69,7 @@ struct omap_rprm_ops { */ struct omap_rprm_pdata { const char *iss_opt_clk_name; + struct clk *iss_opt_clk; struct omap_rprm_ops *ops; }; diff --git a/drivers/rpmsg/omap_rpmsg_resmgr.c b/drivers/rpmsg/omap_rpmsg_resmgr.c index 7fd57c022d46..f6ccee45702e 100644 --- a/drivers/rpmsg/omap_rpmsg_resmgr.c +++ b/drivers/rpmsg/omap_rpmsg_resmgr.c @@ -535,12 +535,19 @@ static int omap_rprm_probe(struct platform_device *pdev) struct omap_rprm_pdata *pdata = pdev->dev.platform_data; cnstrnt_ops = pdata->ops; + /* set iss optional clock */ + + iss_opt_clk = pdata->iss_opt_clk; + mach_ops = pdata->ops; + return 0; } static int omap_rprm_remove(struct platform_device *pdev) { cnstrnt_ops = NULL; + iss_opt_clk = NULL; + mach_ops = NULL; return 0; } |