diff options
author | Marcin Bukat <marcin.bukat@gmail.com> | 2013-02-12 08:48:43 +0100 |
---|---|---|
committer | Marcin Bukat <marcin.bukat@gmail.com> | 2013-02-12 08:48:43 +0100 |
commit | c66a66728c855456a465a57504344038b3224dd9 (patch) | |
tree | 1580956414e049970c2455aefaa806356d490607 /firmware | |
parent | 6c5bc31ff799da8cd93c6896d302bd9cf6299e7d (diff) | |
download | rockbox-c66a66728c855456a465a57504344038b3224dd9.tar.gz rockbox-c66a66728c855456a465a57504344038b3224dd9.zip |
rk27xx: do not disable irq in commit_discard_dcache_range()
commit_discard_dcache_range() is used in sd, lcd and pcm drivers
to handle transfers form/to data buffers so this should not introduce
any problems. It is reported to fix pop noise observed on some hifimans.
We apparently don't fully understand cache handling on this platform.
Change-Id: I436d291509f91d16a13d10965a28171fb27574ab
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/target/arm/rk27xx/system-rk27xx.c | 4 |
1 files changed, 0 insertions, 4 deletions
diff --git a/firmware/target/arm/rk27xx/system-rk27xx.c b/firmware/target/arm/rk27xx/system-rk27xx.c index 712c7d6549..9f089e8170 100644 --- a/firmware/target/arm/rk27xx/system-rk27xx.c +++ b/firmware/target/arm/rk27xx/system-rk27xx.c | |||
@@ -222,8 +222,6 @@ void commit_discard_dcache_range (const void *base, unsigned int size) | |||
222 | uint32_t end_opcode = (uint32_t)((uintptr_t)base + size) | 0x01; | 222 | uint32_t end_opcode = (uint32_t)((uintptr_t)base + size) | 0x01; |
223 | uint32_t opcode = (uint32_t)((uintptr_t)base & 0xffffffe0) | 0x01; | 223 | uint32_t opcode = (uint32_t)((uintptr_t)base & 0xffffffe0) | 0x01; |
224 | 224 | ||
225 | int old_irq = disable_irq_save(); | ||
226 | |||
227 | while (opcode <= end_opcode) | 225 | while (opcode <= end_opcode) |
228 | { | 226 | { |
229 | while (CACHEOP & 0x03); | 227 | while (CACHEOP & 0x03); |
@@ -231,8 +229,6 @@ void commit_discard_dcache_range (const void *base, unsigned int size) | |||
231 | CACHEOP = opcode; | 229 | CACHEOP = opcode; |
232 | opcode += 32; | 230 | opcode += 32; |
233 | } | 231 | } |
234 | |||
235 | restore_irq(old_irq); | ||
236 | } | 232 | } |
237 | 233 | ||
238 | #ifdef HAVE_ADJUSTABLE_CPU_FREQ | 234 | #ifdef HAVE_ADJUSTABLE_CPU_FREQ |