summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/arm/mach-omap2/opp4xxx_data.c11
-rw-r--r--kernel/trace/trace-clock-32-to-64.c2
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);