diff options
Diffstat (limited to 'firmware/target/arm')
-rw-r--r-- | firmware/target/arm/s5l8700/pcm-s5l8700.c | 10 | ||||
-rw-r--r-- | firmware/target/arm/s5l8702/pcm-s5l8702.c | 7 |
2 files changed, 8 insertions, 9 deletions
diff --git a/firmware/target/arm/s5l8700/pcm-s5l8700.c b/firmware/target/arm/s5l8700/pcm-s5l8700.c index c5a5bcf74f..d8387c2aa5 100644 --- a/firmware/target/arm/s5l8700/pcm-s5l8700.c +++ b/firmware/target/arm/s5l8700/pcm-s5l8700.c | |||
@@ -43,9 +43,9 @@ | |||
43 | static volatile int locked = 0; | 43 | static volatile int locked = 0; |
44 | static const int zerosample = 0; | 44 | static const int zerosample = 0; |
45 | static unsigned char dblbuf[1024] IBSS_ATTR; | 45 | static unsigned char dblbuf[1024] IBSS_ATTR; |
46 | static const unsigned char* queuedbuf; | 46 | static const void* queuedbuf; |
47 | static size_t queuedsize; | 47 | static size_t queuedsize; |
48 | static const unsigned char* nextbuf; | 48 | static const void* nextbuf; |
49 | static size_t nextsize; | 49 | static size_t nextsize; |
50 | 50 | ||
51 | static const struct div_entry { | 51 | static const struct div_entry { |
@@ -116,8 +116,8 @@ void INT_DMA(void) | |||
116 | { | 116 | { |
117 | if (!nextsize) | 117 | if (!nextsize) |
118 | { | 118 | { |
119 | new_buffer = pcm_play_dma_complete_callback(PCM_DMAST_OK, | 119 | new_buffer = pcm_play_dma_complete_callback( |
120 | (const void**)&nextbuf, &nextsize); | 120 | PCM_DMAST_OK, &nextbuf, &nextsize); |
121 | if (!new_buffer) | 121 | if (!new_buffer) |
122 | break; | 122 | break; |
123 | } | 123 | } |
@@ -144,7 +144,7 @@ void INT_DMA(void) | |||
144 | void pcm_play_dma_start(const void* addr, size_t size) | 144 | void pcm_play_dma_start(const void* addr, size_t size) |
145 | { | 145 | { |
146 | /* DMA channel on */ | 146 | /* DMA channel on */ |
147 | nextbuf = (const unsigned char*)addr; | 147 | nextbuf = addr; |
148 | nextsize = size; | 148 | nextsize = size; |
149 | queuedsize = 0; | 149 | queuedsize = 0; |
150 | DMABASE0 = (unsigned int)(&zerosample); | 150 | DMABASE0 = (unsigned int)(&zerosample); |
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(); |