summaryrefslogtreecommitdiff
path: root/firmware/thread.c
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2010-05-15 15:51:47 +0000
committerMichael Sevakis <jethead71@rockbox.org>2010-05-15 15:51:47 +0000
commit90ea991dff11bcb3cfc411d895115669ace8e636 (patch)
tree28e77265a002da2a54a47a3bc45e8dbb92ea0c36 /firmware/thread.c
parent601fd3c3af054b1be00395d8df412314c4eb8940 (diff)
downloadrockbox-90ea991dff11bcb3cfc411d895115669ace8e636.zip
rockbox-90ea991dff11bcb3cfc411d895115669ace8e636.tar.gz
rockbox-90ea991dff11bcb3cfc411d895115669ace8e636.tar.bz2
rockbox-90ea991dff11bcb3cfc411d895115669ace8e636.tar.xz
i.MX31: Issue some NOP's immediately after MCR WFI to prevent premature execution of subsequent code.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26058 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/thread.c')
-rw-r--r--firmware/thread.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/firmware/thread.c b/firmware/thread.c
index d3031d5..54d966f 100644
--- a/firmware/thread.c
+++ b/firmware/thread.c
@@ -752,7 +752,10 @@ static void core_thread_init(unsigned int core)
static inline void core_sleep(void)
{
asm volatile (
- "mcr p15, 0, %0, c7, c0, 4" /* Wait for interrupt */
+ "mcr p15, 0, %0, c7, c0, 4 \n" /* Wait for interrupt */
+#if CONFIG_CPU == IMX31L
+ "nop\n nop\n nop\n nop\n nop\n" /* Clean out the pipes */
+#endif
: : "r"(0)
);
enable_irq();