diff options
author | Boris Gjenero <boris.gjenero@gmail.com> | 2012-02-04 22:27:42 -0500 |
---|---|---|
committer | Boris Gjenero <boris.gjenero@gmail.com> | 2012-02-04 22:27:42 -0500 |
commit | 0a8235d0525b531ba932cdbb27c9092ec58a9323 (patch) | |
tree | d810b11d97cbe263deba10f4b10704132c720252 | |
parent | 67dd4d6995c2bef9910e031f23aae88e07354587 (diff) | |
download | rockbox-0a8235d0525b531ba932cdbb27c9092ec58a9323.tar.gz rockbox-0a8235d0525b531ba932cdbb27c9092ec58a9323.zip |
Use commit_dcache() instead of commit_discard_idcache() where possible
- PCM playback DMA doesn't need the discard. Only recording DMA would
need it.
- When creating threads for another core, the core creating the thread only
needs to commit. The discard on the other core is handled elsewhere.
Change-Id: I864a0777e22f221a66218efd2c02ff3ad3889736
-rw-r--r-- | firmware/target/arm/pp/pcm-pp.c | 4 | ||||
-rw-r--r-- | firmware/thread.c | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/firmware/target/arm/pp/pcm-pp.c b/firmware/target/arm/pp/pcm-pp.c index 3854206ae8..1b38994f7b 100644 --- a/firmware/target/arm/pp/pcm-pp.c +++ b/firmware/target/arm/pp/pcm-pp.c | |||
@@ -158,7 +158,7 @@ void ICODE_ATTR __attribute__((interrupt("FIQ"))) fiq_playback(void) | |||
158 | if (dma_play_data.addr < UNCACHED_BASE_ADDR) { | 158 | if (dma_play_data.addr < UNCACHED_BASE_ADDR) { |
159 | /* Flush any pending cache writes */ | 159 | /* Flush any pending cache writes */ |
160 | dma_play_data.addr = UNCACHED_ADDR(dma_play_data.addr); | 160 | dma_play_data.addr = UNCACHED_ADDR(dma_play_data.addr); |
161 | commit_discard_idcache(); | 161 | commit_dcache(); |
162 | } | 162 | } |
163 | } | 163 | } |
164 | } | 164 | } |
@@ -444,7 +444,7 @@ void pcm_play_dma_start(const void *addr, size_t size) | |||
444 | if ((unsigned long)addr < UNCACHED_BASE_ADDR) { | 444 | if ((unsigned long)addr < UNCACHED_BASE_ADDR) { |
445 | /* Flush any pending cache writes */ | 445 | /* Flush any pending cache writes */ |
446 | addr = UNCACHED_ADDR(addr); | 446 | addr = UNCACHED_ADDR(addr); |
447 | commit_discard_idcache(); | 447 | commit_dcache(); |
448 | } | 448 | } |
449 | 449 | ||
450 | dma_play_data.addr = (unsigned long)addr; | 450 | dma_play_data.addr = (unsigned long)addr; |
diff --git a/firmware/thread.c b/firmware/thread.c index 4c15fcc294..ce9252ccc6 100644 --- a/firmware/thread.c +++ b/firmware/thread.c | |||
@@ -1609,7 +1609,7 @@ unsigned int create_thread(void (*function)(void), | |||
1609 | /* Writeback stack munging or anything else before starting */ | 1609 | /* Writeback stack munging or anything else before starting */ |
1610 | if (core != CURRENT_CORE) | 1610 | if (core != CURRENT_CORE) |
1611 | { | 1611 | { |
1612 | commit_discard_idcache(); | 1612 | commit_dcache(); |
1613 | } | 1613 | } |
1614 | #endif | 1614 | #endif |
1615 | 1615 | ||