From 6fd72c750faa878bfe4f1e4d05771d4c9c6ae340 Mon Sep 17 00:00:00 2001 From: Rob Purchase Date: Mon, 31 Mar 2008 22:43:20 +0000 Subject: Introduce sanity check and extra nop to stabilise TCC780x set_cpu_frequency(). Re-enable HAVE_ADJUSTABLE_CPU_FREQ and kill a few warnings by setting HAVE_SW_TONE_CONTROLS. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16904 a1c6a512-1295-4272-9138-f99709370657 --- firmware/target/arm/tcc780x/system-tcc780x.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'firmware/target') diff --git a/firmware/target/arm/tcc780x/system-tcc780x.c b/firmware/target/arm/tcc780x/system-tcc780x.c index f6392b023a..c109b8ddda 100644 --- a/firmware/target/arm/tcc780x/system-tcc780x.c +++ b/firmware/target/arm/tcc780x/system-tcc780x.c @@ -291,11 +291,11 @@ int system_memory_guard(int newmode) #ifdef HAVE_ADJUSTABLE_CPU_FREQ -/* Note: This is not currently enabled because switching seems to - cause an occasional freeze. To be investigated. */ - void set_cpu_frequency(long frequency) { + if (cpu_frequency == frequency) + return; + /* CPU/COP frequencies can be scaled between Fbus (min) and Fsys (max). Fbus should not be set below ~32Mhz with LCD enabled or the display will be garbled. */ @@ -327,6 +327,7 @@ void set_cpu_frequency(long frequency) asm volatile ( "nop \n\t" "nop \n\t" + "nop \n\t" ); cpu_frequency = frequency; -- cgit v1.2.3