diff options
Diffstat (limited to 'firmware/target/arm/s5l8702')
-rw-r--r-- | firmware/target/arm/s5l8702/pcm-s5l8702.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/firmware/target/arm/s5l8702/pcm-s5l8702.c b/firmware/target/arm/s5l8702/pcm-s5l8702.c index ef404ddd9c..1974c47d51 100644 --- a/firmware/target/arm/s5l8702/pcm-s5l8702.c +++ b/firmware/target/arm/s5l8702/pcm-s5l8702.c | |||
@@ -38,7 +38,7 @@ static unsigned char dblbuf[2][PCM_WATERMARK * 4]; | |||
38 | static int active_dblbuf; | 38 | static int active_dblbuf; |
39 | struct dma_lli pcm_lli[PCM_LLICOUNT] __attribute__((aligned(16))); | 39 | struct dma_lli pcm_lli[PCM_LLICOUNT] __attribute__((aligned(16))); |
40 | static struct dma_lli* lastlli; | 40 | static struct dma_lli* lastlli; |
41 | static const unsigned char* dataptr; | 41 | static const void* dataptr; |
42 | size_t pcm_remaining; | 42 | size_t pcm_remaining; |
43 | size_t pcm_chunksize; | 43 | size_t pcm_chunksize; |
44 | 44 | ||
@@ -65,8 +65,7 @@ void INT_DMAC0C0(void) | |||
65 | DMAC0INTTCCLR = 1; | 65 | DMAC0INTTCCLR = 1; |
66 | if (!pcm_remaining) | 66 | if (!pcm_remaining) |
67 | { | 67 | { |
68 | pcm_play_dma_complete_callback(PCM_DMAST_OK, (const void**)&dataptr, | 68 | pcm_play_dma_complete_callback(PCM_DMAST_OK, &dataptr, &pcm_remaining); |
69 | &pcm_remaining); | ||
70 | pcm_chunksize = pcm_remaining; | 69 | pcm_chunksize = pcm_remaining; |
71 | } | 70 | } |
72 | if (!pcm_remaining) | 71 | if (!pcm_remaining) |
@@ -121,7 +120,7 @@ void INT_DMAC0C0(void) | |||
121 | 120 | ||
122 | void pcm_play_dma_start(const void* addr, size_t size) | 121 | void pcm_play_dma_start(const void* addr, size_t size) |
123 | { | 122 | { |
124 | dataptr = (const unsigned char*)addr; | 123 | dataptr = addr; |
125 | pcm_remaining = size; | 124 | pcm_remaining = size; |
126 | I2STXCOM = 0xe; | 125 | I2STXCOM = 0xe; |
127 | INT_DMAC0C0(); | 126 | INT_DMAC0C0(); |