diff options
author | Rafaël Carré <rafael.carre@gmail.com> | 2008-12-04 22:54:06 +0000 |
---|---|---|
committer | Rafaël Carré <rafael.carre@gmail.com> | 2008-12-04 22:54:06 +0000 |
commit | e97191faa7d685637c987dc91fc70a2cd64df57b (patch) | |
tree | f94f694a466ba9e859dbe1fe5564238a7f3d7216 /firmware/target/arm/as3525/pcm-as3525.c | |
parent | 3e4f3fe70e8ed404ea07c12e4fe9f5a25e55b16d (diff) | |
download | rockbox-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.c | 4 |
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 | } |