diff options
-rw-r--r-- | arch/arm/mach-omap2/opp4xxx_data.c | 11 | ||||
-rw-r--r-- | kernel/trace/trace-clock-32-to-64.c | 2 |
2 files changed, 12 insertions, 1 deletions
diff --git a/arch/arm/mach-omap2/opp4xxx_data.c b/arch/arm/mach-omap2/opp4xxx_data.c index 2293ba27101..895f4d0f720 100644 --- a/arch/arm/mach-omap2/opp4xxx_data.c +++ b/arch/arm/mach-omap2/opp4xxx_data.c @@ -19,8 +19,11 @@ * GNU General Public License for more details. */ #include <linux/module.h> +#include <linux/opp.h> #include <plat/cpu.h> +#include <plat/common.h> +#include <asm/trace-clock.h> #include "control.h" #include "omap_opp_data.h" @@ -93,6 +96,7 @@ static struct omap_opp_def __initdata omap44xx_opp_def_list[] = { int __init omap4_opp_init(void) { int r = -ENODEV; + struct device *dev; if (!cpu_is_omap44xx()) return r; @@ -100,6 +104,13 @@ int __init omap4_opp_init(void) r = omap_init_opp_table(omap44xx_opp_def_list, ARRAY_SIZE(omap44xx_opp_def_list)); + dev = omap2_get_mpuss_device(); + cpu_hz = ULONG_MAX; + if (IS_ERR(opp_find_freq_floor(dev,&cpu_hz))) { + dev_err(dev, "%s: Unable to find highest opp\n", __func__); + return -ENODEV; + } + return r; } device_initcall(omap4_opp_init); diff --git a/kernel/trace/trace-clock-32-to-64.c b/kernel/trace/trace-clock-32-to-64.c index 07a22d17b1a..c036f5c5586 100644 --- a/kernel/trace/trace-clock-32-to-64.c +++ b/kernel/trace/trace-clock-32-to-64.c @@ -293,4 +293,4 @@ static int __init init_synthetic_tsc(void) /* Before SMP is up */ /* workaround for omap4 */ -early_initcall(init_synthetic_tsc); +late_initcall(init_synthetic_tsc); |