diff options
Diffstat (limited to 'firmware/target/arm/imx233/system-imx233.c')
-rw-r--r-- | firmware/target/arm/imx233/system-imx233.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/firmware/target/arm/imx233/system-imx233.c b/firmware/target/arm/imx233/system-imx233.c index 4e1583d568..3ac5d0e557 100644 --- a/firmware/target/arm/imx233/system-imx233.c +++ b/firmware/target/arm/imx233/system-imx233.c | |||
@@ -53,6 +53,8 @@ | |||
53 | #define WATCHDOG_HW_DELAY (10 * HZ) | 53 | #define WATCHDOG_HW_DELAY (10 * HZ) |
54 | #define WATCHDOG_SW_DELAY (5 * HZ) | 54 | #define WATCHDOG_SW_DELAY (5 * HZ) |
55 | 55 | ||
56 | static struct mutex cpufreq_mtx; | ||
57 | |||
56 | void UIE(unsigned int pc, unsigned int num); | 58 | void UIE(unsigned int pc, unsigned int num); |
57 | 59 | ||
58 | static void woof_woof(void) | 60 | static void woof_woof(void) |
@@ -183,6 +185,7 @@ void system_init(void) | |||
183 | * The main() will naturally set cpu speed to normal after kernel_init() | 185 | * The main() will naturally set cpu speed to normal after kernel_init() |
184 | * so don't bother if the cpu is running at 24MHz here. | 186 | * so don't bother if the cpu is running at 24MHz here. |
185 | * Make sure IO clock is running at expected speed */ | 187 | * Make sure IO clock is running at expected speed */ |
188 | mutex_init(&cpufreq_mtx); | ||
186 | imx233_clkctrl_init(); | 189 | imx233_clkctrl_init(); |
187 | imx233_clkctrl_enable(CLK_PLL, true); | 190 | imx233_clkctrl_enable(CLK_PLL, true); |
188 | #if IMX233_SUBTARGET >= 3700 | 191 | #if IMX233_SUBTARGET >= 3700 |
@@ -364,6 +367,20 @@ void imx233_set_cpu_frequency(long frequency) | |||
364 | } | 367 | } |
365 | 368 | ||
366 | #ifdef HAVE_ADJUSTABLE_CPU_FREQ | 369 | #ifdef HAVE_ADJUSTABLE_CPU_FREQ |
370 | bool set_cpu_frequency__lock(void) | ||
371 | { | ||
372 | if (get_processor_mode() != CPU_MODE_THREAD_CONTEXT) | ||
373 | return false; | ||
374 | |||
375 | mutex_lock(&cpufreq_mtx); | ||
376 | return true; | ||
377 | } | ||
378 | |||
379 | void set_cpu_frequency__unlock(void) | ||
380 | { | ||
381 | mutex_unlock(&cpufreq_mtx); | ||
382 | } | ||
383 | |||
367 | void set_cpu_frequency(long frequency) | 384 | void set_cpu_frequency(long frequency) |
368 | { | 385 | { |
369 | return imx233_set_cpu_frequency(frequency); | 386 | return imx233_set_cpu_frequency(frequency); |