summaryrefslogtreecommitdiff
path: root/firmware/target/arm/as3525/pcm-as3525.c
diff options
context:
space:
mode:
authorRafaël Carré <rafael.carre@gmail.com>2008-12-04 22:54:06 +0000
committerRafaël Carré <rafael.carre@gmail.com>2008-12-04 22:54:06 +0000
commite97191faa7d685637c987dc91fc70a2cd64df57b (patch)
treef94f694a466ba9e859dbe1fe5564238a7f3d7216 /firmware/target/arm/as3525/pcm-as3525.c
parent3e4f3fe70e8ed404ea07c12e4fe9f5a25e55b16d (diff)
downloadrockbox-e97191faa7d685637c987dc91fc70a2cd64df57b.tar.gz
rockbox-e97191faa7d685637c987dc91fc70a2cd64df57b.zip
Sansa AMS: Disable DMA clocks when not in use
Add dma_retain() and dma_release() to reference count the users git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19344 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm/as3525/pcm-as3525.c')
-rw-r--r--firmware/target/arm/as3525/pcm-as3525.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/firmware/target/arm/as3525/pcm-as3525.c b/firmware/target/arm/as3525/pcm-as3525.c
index cf0333f24c..e5cbdc48ee 100644
--- a/firmware/target/arm/as3525/pcm-as3525.c
+++ b/firmware/target/arm/as3525/pcm-as3525.c
@@ -94,6 +94,8 @@ void pcm_play_dma_start(const void *addr, size_t size)
94 dma_size = size; 94 dma_size = size;
95 dma_start_addr = (unsigned char*)addr; 95 dma_start_addr = (unsigned char*)addr;
96 96
97 dma_retain();
98
97 play_start_pcm(); 99 play_start_pcm();
98} 100}
99 101
@@ -102,6 +104,8 @@ void pcm_play_dma_stop(void)
102 dma_disable_channel(1); 104 dma_disable_channel(1);
103 dma_size = 0; 105 dma_size = 0;
104 106
107 dma_release();
108
105 CGU_PERI &= ~CGU_I2SOUT_APB_CLOCK_ENABLE; 109 CGU_PERI &= ~CGU_I2SOUT_APB_CLOCK_ENABLE;
106 CGU_AUDIO &= ~(1<<11); 110 CGU_AUDIO &= ~(1<<11);
107} 111}