aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/mach-omap2/io.c3
-rw-r--r--arch/arm/plat-omap/include/plat/omap-pm.h31
-rw-r--r--arch/arm/plat-omap/omap-pm-noop.c11
3 files changed, 12 insertions, 33 deletions
diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c
index 4605d5073a9b..5577ab2faad2 100644
--- a/arch/arm/mach-omap2/io.c
+++ b/arch/arm/mach-omap2/io.c
@@ -347,8 +347,7 @@ void __init omap2_init_common_hw(struct omap_sdrc_params *sdrc_cs0,
347 else if (cpu_is_omap44xx()) 347 else if (cpu_is_omap44xx())
348 omap44xx_hwmod_init(); 348 omap44xx_hwmod_init();
349 349
350 /* The OPP tables have to be registered before a clk init */ 350 omap_pm_if_early_init();
351 omap_pm_if_early_init(mpu_opps, dsp_opps, l3_opps);
352 351
353 if (cpu_is_omap2420()) 352 if (cpu_is_omap2420())
354 omap2420_clk_init(); 353 omap2420_clk_init();
diff --git a/arch/arm/plat-omap/include/plat/omap-pm.h b/arch/arm/plat-omap/include/plat/omap-pm.h
index 728fbb9dd549..62c3fe918ab2 100644
--- a/arch/arm/plat-omap/include/plat/omap-pm.h
+++ b/arch/arm/plat-omap/include/plat/omap-pm.h
@@ -17,27 +17,10 @@
17#include <linux/device.h> 17#include <linux/device.h>
18#include <linux/cpufreq.h> 18#include <linux/cpufreq.h>
19#include <linux/clk.h> 19#include <linux/clk.h>
20#include <linux/opp.h>
20 21
21#include "powerdomain.h" 22#include "powerdomain.h"
22 23
23/**
24 * struct omap_opp - clock frequency-to-OPP ID table for DSP, MPU
25 * @rate: target clock rate
26 * @opp_id: OPP ID
27 * @min_vdd: minimum VDD1 voltage (in millivolts) for this OPP
28 *
29 * Operating performance point data. Can vary by OMAP chip and board.
30 */
31struct omap_opp {
32 unsigned long rate;
33 u8 opp_id;
34 u16 min_vdd;
35};
36
37extern struct omap_opp *mpu_opps;
38extern struct omap_opp *dsp_opps;
39extern struct omap_opp *l3_opps;
40
41/* 24/*
42 * agent_id values for use with omap_pm_set_min_bus_tput(): 25 * agent_id values for use with omap_pm_set_min_bus_tput():
43 * 26 *
@@ -59,9 +42,11 @@ extern struct omap_opp *l3_opps;
59 * framework starts. The "_if_" is to avoid name collisions with the 42 * framework starts. The "_if_" is to avoid name collisions with the
60 * PM idle-loop code. 43 * PM idle-loop code.
61 */ 44 */
62int __init omap_pm_if_early_init(struct omap_opp *mpu_opp_table, 45#ifdef CONFIG_OMAP_PM_NONE
63 struct omap_opp *dsp_opp_table, 46#define omap_pm_if_early_init() 0
64 struct omap_opp *l3_opp_table); 47#else
48int __init omap_pm_if_early_init(void);
49#endif
65 50
66/** 51/**
67 * omap_pm_if_init - OMAP PM init code called after clock fw init 52 * omap_pm_if_init - OMAP PM init code called after clock fw init
@@ -69,7 +54,11 @@ int __init omap_pm_if_early_init(struct omap_opp *mpu_opp_table,
69 * The main initialization code. OPP tables are passed in here. The 54 * The main initialization code. OPP tables are passed in here. The
70 * "_if_" is to avoid name collisions with the PM idle-loop code. 55 * "_if_" is to avoid name collisions with the PM idle-loop code.
71 */ 56 */
57#ifdef CONFIG_OMAP_PM_NONE
58#define omap_pm_if_init() 0
59#else
72int __init omap_pm_if_init(void); 60int __init omap_pm_if_init(void);
61#endif
73 62
74/** 63/**
75 * omap_pm_if_exit - OMAP PM exit code 64 * omap_pm_if_exit - OMAP PM exit code
diff --git a/arch/arm/plat-omap/omap-pm-noop.c b/arch/arm/plat-omap/omap-pm-noop.c
index e129ce80c53b..ca75abb18068 100644
--- a/arch/arm/plat-omap/omap-pm-noop.c
+++ b/arch/arm/plat-omap/omap-pm-noop.c
@@ -26,10 +26,6 @@
26 26
27#include <plat/powerdomain.h> 27#include <plat/powerdomain.h>
28 28
29struct omap_opp *dsp_opps;
30struct omap_opp *mpu_opps;
31struct omap_opp *l3_opps;
32
33/* 29/*
34 * Device-driver-originated constraints (via board-*.c files) 30 * Device-driver-originated constraints (via board-*.c files)
35 */ 31 */
@@ -308,13 +304,8 @@ int omap_pm_get_dev_context_loss_count(struct device *dev)
308 304
309 305
310/* Should be called before clk framework init */ 306/* Should be called before clk framework init */
311int __init omap_pm_if_early_init(struct omap_opp *mpu_opp_table, 307int __init omap_pm_if_early_init(void)
312 struct omap_opp *dsp_opp_table,
313 struct omap_opp *l3_opp_table)
314{ 308{
315 mpu_opps = mpu_opp_table;
316 dsp_opps = dsp_opp_table;
317 l3_opps = l3_opp_table;
318 return 0; 309 return 0;
319} 310}
320 311