diff options
| author | Michael Sevakis <jethead71@rockbox.org> | 2008-02-05 18:07:57 +0000 |
|---|---|---|
| committer | Michael Sevakis <jethead71@rockbox.org> | 2008-02-05 18:07:57 +0000 |
| commit | 73de812cb6aaa0180dc846864482213dfe198229 (patch) | |
| tree | 1c605df53037ec1af549137711073cd8fc8535f1 | |
| parent | cfe51b0cd168f470bcbd028cb5fbfddf9839c76a (diff) | |
| download | rockbox-73de812cb6aaa0180dc846864482213dfe198229.zip rockbox-73de812cb6aaa0180dc846864482213dfe198229.tar.gz rockbox-73de812cb6aaa0180dc846864482213dfe198229.tar.bz2 rockbox-73de812cb6aaa0180dc846864482213dfe198229.tar.xz | |
gigabeatS: Fix the timer startup oddness. Seems it likes the interrupt clear at the module level after enabling the vector.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16226 a1c6a512-1295-4272-9138-f99709370657
| -rw-r--r-- | firmware/target/arm/imx31/gigabeat-s/ata-imx31.c | 2 | ||||
| -rw-r--r-- | firmware/target/arm/imx31/gigabeat-s/kernel-imx31.c | 9 |
2 files changed, 3 insertions, 8 deletions
diff --git a/firmware/target/arm/imx31/gigabeat-s/ata-imx31.c b/firmware/target/arm/imx31/gigabeat-s/ata-imx31.c index a61e848..d4d5f66 100644 --- a/firmware/target/arm/imx31/gigabeat-s/ata-imx31.c +++ b/firmware/target/arm/imx31/gigabeat-s/ata-imx31.c @@ -44,7 +44,7 @@ void ata_enable(bool on) bool ata_is_coldstart(void) { - return 0; + return true; } unsigned long get_pll(bool serial) { diff --git a/firmware/target/arm/imx31/gigabeat-s/kernel-imx31.c b/firmware/target/arm/imx31/gigabeat-s/kernel-imx31.c index 7f88240..3c44a15 100644 --- a/firmware/target/arm/imx31/gigabeat-s/kernel-imx31.c +++ b/firmware/target/arm/imx31/gigabeat-s/kernel-imx31.c @@ -41,7 +41,6 @@ void tick_start(unsigned int interval_in_ms) * Count from load value */ EPITCR1 = (0x3 << 24) | (1 << 19) | (32 << 4) | (1 << 3) | (1 << 2) | (1 << 1); - EPITSR1 = 1; /* Clear any pending interrupt */ #ifndef BOOTLOADER EPITLR1 = interval_in_ms; EPITCMPR1 = 0; /* Event when counter reaches 0 */ @@ -49,12 +48,8 @@ void tick_start(unsigned int interval_in_ms) #else (void)interval_in_ms; #endif + EPITSR1 = 1; /* Clear any pending interrupt after + enabling the vector */ EPITCR1 |= (1 << 0); /* Enable the counter */ - - /* Why does only this trigger the counter? Remove when we find out. */ - asm volatile ( - "mcr p15, 0, %0, c7, c0, 4 \n" - : : "r" (0) - ); } |