summaryrefslogtreecommitdiff
path: root/firmware/target/coldfire/system-coldfire.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/coldfire/system-coldfire.c')
-rw-r--r--firmware/target/coldfire/system-coldfire.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/firmware/target/coldfire/system-coldfire.c b/firmware/target/coldfire/system-coldfire.c
index 251c97fb73..f2ac075e14 100644
--- a/firmware/target/coldfire/system-coldfire.c
+++ b/firmware/target/coldfire/system-coldfire.c
@@ -324,5 +324,8 @@ void coldfire_set_pllcr_audio_bits(long bits)
/* Set DATAINCONTROL without disturbing FIFO reset state */
void coldfire_set_dataincontrol(unsigned long value)
{
+ /* Have to be atomic against recording stop initiated by DMA1 */
+ int level = set_irq_level(DMA_IRQ_LEVEL);
DATAINCONTROL = (DATAINCONTROL & (1 << 9)) | value;
+ set_irq_level(level);
}