diff options
author | Tony Lindgren <tony@atomide.com> | 2009-05-26 17:41:35 -0400 |
---|---|---|
committer | Tony Lindgren <tony@atomide.com> | 2009-05-26 17:41:35 -0400 |
commit | 88b6f7eb9b4a06fbfe27f2d98e249577f4cfdaef (patch) | |
tree | 9ef0d7ecd3e0551ca4d13ac0134aeb3ecd8558c7 /arch/arm/plat-omap | |
parent | 8f9ccfeeb2cecb54dd093119291ab271ab0fd94a (diff) | |
parent | 7971687094ef48695aa56a0c03416b609bd4d1fd (diff) |
Merge branch 'omap-clock-upstream' of git://git.pwsan.com/linux-2.6 into for-next
Diffstat (limited to 'arch/arm/plat-omap')
-rw-r--r-- | arch/arm/plat-omap/clock.c | 4 | ||||
-rw-r--r-- | arch/arm/plat-omap/include/mach/clock.h | 2 | ||||
-rw-r--r-- | arch/arm/plat-omap/include/mach/sram.h | 6 | ||||
-rw-r--r-- | arch/arm/plat-omap/sram.c | 16 |
4 files changed, 20 insertions, 8 deletions
diff --git a/arch/arm/plat-omap/clock.c b/arch/arm/plat-omap/clock.c index 29efc279287..508c96ab24e 100644 --- a/arch/arm/plat-omap/clock.c +++ b/arch/arm/plat-omap/clock.c | |||
@@ -240,13 +240,13 @@ void recalculate_root_clocks(void) | |||
240 | } | 240 | } |
241 | 241 | ||
242 | /** | 242 | /** |
243 | * clk_init_one - initialize any fields in the struct clk before clk init | 243 | * clk_preinit - initialize any fields in the struct clk before clk init |
244 | * @clk: struct clk * to initialize | 244 | * @clk: struct clk * to initialize |
245 | * | 245 | * |
246 | * Initialize any struct clk fields needed before normal clk initialization | 246 | * Initialize any struct clk fields needed before normal clk initialization |
247 | * can run. No return value. | 247 | * can run. No return value. |
248 | */ | 248 | */ |
249 | void clk_init_one(struct clk *clk) | 249 | void clk_preinit(struct clk *clk) |
250 | { | 250 | { |
251 | INIT_LIST_HEAD(&clk->children); | 251 | INIT_LIST_HEAD(&clk->children); |
252 | } | 252 | } |
diff --git a/arch/arm/plat-omap/include/mach/clock.h b/arch/arm/plat-omap/include/mach/clock.h index 073a2c5569f..d7bd19c8ce3 100644 --- a/arch/arm/plat-omap/include/mach/clock.h +++ b/arch/arm/plat-omap/include/mach/clock.h | |||
@@ -119,7 +119,7 @@ struct clk_functions { | |||
119 | extern unsigned int mpurate; | 119 | extern unsigned int mpurate; |
120 | 120 | ||
121 | extern int clk_init(struct clk_functions *custom_clocks); | 121 | extern int clk_init(struct clk_functions *custom_clocks); |
122 | extern void clk_init_one(struct clk *clk); | 122 | extern void clk_preinit(struct clk *clk); |
123 | extern int clk_register(struct clk *clk); | 123 | extern int clk_register(struct clk *clk); |
124 | extern void clk_reparent(struct clk *child, struct clk *parent); | 124 | extern void clk_reparent(struct clk *child, struct clk *parent); |
125 | extern void clk_unregister(struct clk *clk); | 125 | extern void clk_unregister(struct clk *clk); |
diff --git a/arch/arm/plat-omap/include/mach/sram.h b/arch/arm/plat-omap/include/mach/sram.h index ab35d622dcf..dca7c16ae90 100644 --- a/arch/arm/plat-omap/include/mach/sram.h +++ b/arch/arm/plat-omap/include/mach/sram.h | |||
@@ -23,7 +23,8 @@ extern u32 omap2_set_prcm(u32 dpll_ctrl_val, u32 sdrc_rfr_val, int bypass); | |||
23 | 23 | ||
24 | extern u32 omap3_configure_core_dpll(u32 sdrc_rfr_ctrl, | 24 | extern u32 omap3_configure_core_dpll(u32 sdrc_rfr_ctrl, |
25 | u32 sdrc_actim_ctrla, | 25 | u32 sdrc_actim_ctrla, |
26 | u32 sdrc_actim_ctrlb, u32 m2); | 26 | u32 sdrc_actim_ctrlb, u32 m2, |
27 | u32 unlock_dll); | ||
27 | 28 | ||
28 | /* Do not use these */ | 29 | /* Do not use these */ |
29 | extern void omap1_sram_reprogram_clock(u32 ckctl, u32 dpllctl); | 30 | extern void omap1_sram_reprogram_clock(u32 ckctl, u32 dpllctl); |
@@ -60,7 +61,8 @@ extern unsigned long omap243x_sram_reprogram_sdrc_sz; | |||
60 | 61 | ||
61 | extern u32 omap3_sram_configure_core_dpll(u32 sdrc_rfr_ctrl, | 62 | extern u32 omap3_sram_configure_core_dpll(u32 sdrc_rfr_ctrl, |
62 | u32 sdrc_actim_ctrla, | 63 | u32 sdrc_actim_ctrla, |
63 | u32 sdrc_actim_ctrlb, u32 m2); | 64 | u32 sdrc_actim_ctrlb, u32 m2, |
65 | u32 unlock_dll); | ||
64 | extern unsigned long omap3_sram_configure_core_dpll_sz; | 66 | extern unsigned long omap3_sram_configure_core_dpll_sz; |
65 | 67 | ||
66 | #endif | 68 | #endif |
diff --git a/arch/arm/plat-omap/sram.c b/arch/arm/plat-omap/sram.c index e1493d83a7c..4f0145d2624 100644 --- a/arch/arm/plat-omap/sram.c +++ b/arch/arm/plat-omap/sram.c | |||
@@ -201,6 +201,15 @@ void __init omap_map_sram(void) | |||
201 | base = OMAP3_SRAM_PA; | 201 | base = OMAP3_SRAM_PA; |
202 | base = ROUND_DOWN(base, PAGE_SIZE); | 202 | base = ROUND_DOWN(base, PAGE_SIZE); |
203 | omap_sram_io_desc[0].pfn = __phys_to_pfn(base); | 203 | omap_sram_io_desc[0].pfn = __phys_to_pfn(base); |
204 | |||
205 | /* | ||
206 | * SRAM must be marked as non-cached on OMAP3 since the | ||
207 | * CORE DPLL M2 divider change code (in SRAM) runs with the | ||
208 | * SDRAM controller disabled, and if it is marked cached, | ||
209 | * the ARM may attempt to write cache lines back to SDRAM | ||
210 | * which will cause the system to hang. | ||
211 | */ | ||
212 | omap_sram_io_desc[0].type = MT_MEMORY_NONCACHED; | ||
204 | } | 213 | } |
205 | 214 | ||
206 | omap_sram_io_desc[0].length = 1024 * 1024; /* Use section desc */ | 215 | omap_sram_io_desc[0].length = 1024 * 1024; /* Use section desc */ |
@@ -343,14 +352,15 @@ static inline int omap243x_sram_init(void) | |||
343 | static u32 (*_omap3_sram_configure_core_dpll)(u32 sdrc_rfr_ctrl, | 352 | static u32 (*_omap3_sram_configure_core_dpll)(u32 sdrc_rfr_ctrl, |
344 | u32 sdrc_actim_ctrla, | 353 | u32 sdrc_actim_ctrla, |
345 | u32 sdrc_actim_ctrlb, | 354 | u32 sdrc_actim_ctrlb, |
346 | u32 m2); | 355 | u32 m2, u32 unlock_dll); |
347 | u32 omap3_configure_core_dpll(u32 sdrc_rfr_ctrl, u32 sdrc_actim_ctrla, | 356 | u32 omap3_configure_core_dpll(u32 sdrc_rfr_ctrl, u32 sdrc_actim_ctrla, |
348 | u32 sdrc_actim_ctrlb, u32 m2) | 357 | u32 sdrc_actim_ctrlb, u32 m2, u32 unlock_dll) |
349 | { | 358 | { |
350 | BUG_ON(!_omap3_sram_configure_core_dpll); | 359 | BUG_ON(!_omap3_sram_configure_core_dpll); |
351 | return _omap3_sram_configure_core_dpll(sdrc_rfr_ctrl, | 360 | return _omap3_sram_configure_core_dpll(sdrc_rfr_ctrl, |
352 | sdrc_actim_ctrla, | 361 | sdrc_actim_ctrla, |
353 | sdrc_actim_ctrlb, m2); | 362 | sdrc_actim_ctrlb, m2, |
363 | unlock_dll); | ||
354 | } | 364 | } |
355 | 365 | ||
356 | /* REVISIT: Should this be same as omap34xx_sram_init() after off-idle? */ | 366 | /* REVISIT: Should this be same as omap34xx_sram_init() after off-idle? */ |