summaryrefslogtreecommitdiff
path: root/firmware/target
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target')
-rw-r--r--firmware/target/arm/as3525/pcm-as3525.c11
-rw-r--r--firmware/target/arm/imx233/pcm-imx233.c6
-rw-r--r--firmware/target/arm/imx31/gigabeat-s/pcm-gigabeat-s.c24
-rw-r--r--firmware/target/arm/pcm-telechips.c5
-rw-r--r--firmware/target/arm/pnx0101/pcm-pnx0101.c5
-rw-r--r--firmware/target/arm/pp/pcm-pp.c5
-rw-r--r--firmware/target/arm/rk27xx/pcm-rk27xx.c6
-rw-r--r--firmware/target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c6
-rw-r--r--firmware/target/arm/s3c2440/mini2440/pcm-mini2440.c6
-rw-r--r--firmware/target/arm/s5l8700/pcm-s5l8700.c7
-rw-r--r--firmware/target/arm/s5l8702/pcm-s5l8702.c7
-rw-r--r--firmware/target/arm/tms320dm320/creative-zvm/pcm-creativezvm.c5
-rw-r--r--firmware/target/arm/tms320dm320/mrobe-500/pcm-mr500.c5
-rw-r--r--firmware/target/arm/tms320dm320/sansa-connect/pcm-sansaconnect.c5
-rw-r--r--firmware/target/coldfire/pcm-coldfire.c5
-rw-r--r--firmware/target/hosted/android/pcm-android.c5
-rw-r--r--firmware/target/hosted/ibasso/pcm-ibasso.c9
-rw-r--r--firmware/target/hosted/maemo/pcm-gstreamer.c5
-rw-r--r--firmware/target/hosted/pcm-alsa.c5
-rw-r--r--firmware/target/hosted/sdl/pcm-sdl.c5
-rw-r--r--firmware/target/mips/ingenic_jz47xx/pcm-jz4740.c14
-rw-r--r--firmware/target/mips/ingenic_jz47xx/pcm-jz4760.c14
22 files changed, 1 insertions, 164 deletions
diff --git a/firmware/target/arm/as3525/pcm-as3525.c b/firmware/target/arm/as3525/pcm-as3525.c
index 90b6aabd7c..dfbda388be 100644
--- a/firmware/target/arm/as3525/pcm-as3525.c
+++ b/firmware/target/arm/as3525/pcm-as3525.c
@@ -200,17 +200,6 @@ void pcm_dma_apply_settings(void)
200 0x01ffffff); 200 0x01ffffff);
201} 201}
202 202
203size_t pcm_get_bytes_waiting(void)
204{
205 int oldstatus = disable_irq_save();
206 size_t addr = DMAC_CH_SRC_ADDR(0);
207 size_t start_addr = (size_t)dma_start_addr;
208 size_t start_size = dma_start_size;
209 restore_interrupt(oldstatus);
210
211 return start_size - addr + start_addr;
212}
213
214const void * pcm_play_dma_get_peak_buffer(int *count) 203const void * pcm_play_dma_get_peak_buffer(int *count)
215{ 204{
216 int oldstatus = disable_irq_save(); 205 int oldstatus = disable_irq_save();
diff --git a/firmware/target/arm/imx233/pcm-imx233.c b/firmware/target/arm/imx233/pcm-imx233.c
index 7e20a7ce68..c06120e4aa 100644
--- a/firmware/target/arm/imx233/pcm-imx233.c
+++ b/firmware/target/arm/imx233/pcm-imx233.c
@@ -175,12 +175,6 @@ void pcm_dma_apply_settings(void)
175 pcm_play_unlock(); 175 pcm_play_unlock();
176} 176}
177 177
178size_t pcm_get_bytes_waiting(void)
179{
180 struct imx233_dma_info_t info = imx233_dma_get_info(APB_AUDIO_DAC, DMA_INFO_AHB_BYTES);
181 return info.ahb_bytes;
182}
183
184const void *pcm_play_dma_get_peak_buffer(int *count) 178const void *pcm_play_dma_get_peak_buffer(int *count)
185{ 179{
186 if(!dac_freezed) 180 if(!dac_freezed)
diff --git a/firmware/target/arm/imx31/gigabeat-s/pcm-gigabeat-s.c b/firmware/target/arm/imx31/gigabeat-s/pcm-gigabeat-s.c
index 72d8e4a021..13dff6ecb5 100644
--- a/firmware/target/arm/imx31/gigabeat-s/pcm-gigabeat-s.c
+++ b/firmware/target/arm/imx31/gigabeat-s/pcm-gigabeat-s.c
@@ -224,30 +224,6 @@ void pcm_play_dma_stop(void)
224 play_stop_pcm(); 224 play_stop_pcm();
225} 225}
226 226
227/* Return the number of bytes waiting - full L-R sample pairs only */
228size_t pcm_get_bytes_waiting(void)
229{
230 static unsigned long dsa NOCACHEBSS_ATTR;
231 long offs, size;
232 int oldstatus;
233
234 /* read burst dma source address register in channel context */
235 sdma_read_words(&dsa, CHANNEL_CONTEXT_ADDR(DMA_PLAY_CH_NUM)+0x0b, 1);
236
237 oldstatus = disable_irq_save();
238 offs = dsa - (unsigned long)dma_play_bd.buf_addr;
239 size = dma_play_bd.mode.count;
240 restore_irq(oldstatus);
241
242 /* Be addresses are coherent (no buffer change during read) */
243 if (offs >= 0 && offs < size)
244 {
245 return (size - offs) & ~3;
246 }
247
248 return 0;
249}
250
251/* Return a pointer to the samples and the number of them in *count */ 227/* Return a pointer to the samples and the number of them in *count */
252const void * pcm_play_dma_get_peak_buffer(int *count) 228const void * pcm_play_dma_get_peak_buffer(int *count)
253{ 229{
diff --git a/firmware/target/arm/pcm-telechips.c b/firmware/target/arm/pcm-telechips.c
index 9c64b58594..68bae1b0a9 100644
--- a/firmware/target/arm/pcm-telechips.c
+++ b/firmware/target/arm/pcm-telechips.c
@@ -194,11 +194,6 @@ void pcm_play_unlock(void)
194 restore_fiq(status); 194 restore_fiq(status);
195} 195}
196 196
197size_t pcm_get_bytes_waiting(void)
198{
199 return dma_play_data.size & ~3;
200}
201
202#ifdef HAVE_RECORDING 197#ifdef HAVE_RECORDING
203/* TODO: implement */ 198/* TODO: implement */
204void pcm_rec_dma_init(void) 199void pcm_rec_dma_init(void)
diff --git a/firmware/target/arm/pnx0101/pcm-pnx0101.c b/firmware/target/arm/pnx0101/pcm-pnx0101.c
index 01ead4723b..6099dcb7ef 100644
--- a/firmware/target/arm/pnx0101/pcm-pnx0101.c
+++ b/firmware/target/arm/pnx0101/pcm-pnx0101.c
@@ -192,11 +192,6 @@ void pcm_dma_apply_settings(void)
192{ 192{
193} 193}
194 194
195size_t pcm_get_bytes_waiting(void)
196{
197 return p_size & ~3;
198}
199
200const void * pcm_play_dma_get_peak_buffer(int *count) 195const void * pcm_play_dma_get_peak_buffer(int *count)
201{ 196{
202 unsigned long addr = (unsigned long)p; 197 unsigned long addr = (unsigned long)p;
diff --git a/firmware/target/arm/pp/pcm-pp.c b/firmware/target/arm/pp/pcm-pp.c
index 91d567ee83..8434123a92 100644
--- a/firmware/target/arm/pp/pcm-pp.c
+++ b/firmware/target/arm/pp/pcm-pp.c
@@ -497,11 +497,6 @@ void pcm_play_dma_stop(void)
497#endif 497#endif
498} 498}
499 499
500size_t pcm_get_bytes_waiting(void)
501{
502 return dma_play_data.size & ~3;
503}
504
505void pcm_play_dma_init(void) 500void pcm_play_dma_init(void)
506{ 501{
507 /* Initialize default register values. */ 502 /* Initialize default register values. */
diff --git a/firmware/target/arm/rk27xx/pcm-rk27xx.c b/firmware/target/arm/rk27xx/pcm-rk27xx.c
index 5cfe54f9de..c0b4c45805 100644
--- a/firmware/target/arm/rk27xx/pcm-rk27xx.c
+++ b/firmware/target/arm/rk27xx/pcm-rk27xx.c
@@ -250,12 +250,6 @@ void pcm_dma_apply_settings(void)
250 audiohw_set_frequency(pcm_fsel); 250 audiohw_set_frequency(pcm_fsel);
251} 251}
252 252
253size_t pcm_get_bytes_waiting(void)
254{
255 /* current terminate count is in transfer size units (4bytes here) */
256 return (HDMA_CCNT0 & 0xffff)<<2;
257}
258
259/* audio DMA ISR called when chunk from callers buffer has been transfered */ 253/* audio DMA ISR called when chunk from callers buffer has been transfered */
260void INT_HDMA(void) 254void INT_HDMA(void)
261{ 255{
diff --git a/firmware/target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c b/firmware/target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c
index da5dc9cdd5..d784180e77 100644
--- a/firmware/target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c
+++ b/firmware/target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c
@@ -220,12 +220,6 @@ void fiq_handler(void)
220 pcm_play_dma_status_callback(PCM_DMAST_STARTED); 220 pcm_play_dma_status_callback(PCM_DMAST_STARTED);
221} 221}
222 222
223size_t pcm_get_bytes_waiting(void)
224{
225 /* lie a little and only return full pairs */
226 return (DSTAT2 & 0xFFFFE) * 2;
227}
228
229const void * pcm_play_dma_get_peak_buffer(int *count) 223const void * pcm_play_dma_get_peak_buffer(int *count)
230{ 224{
231 unsigned long addr = DCSRC2; 225 unsigned long addr = DCSRC2;
diff --git a/firmware/target/arm/s3c2440/mini2440/pcm-mini2440.c b/firmware/target/arm/s3c2440/mini2440/pcm-mini2440.c
index dbb1a06809..9574522586 100644
--- a/firmware/target/arm/s3c2440/mini2440/pcm-mini2440.c
+++ b/firmware/target/arm/s3c2440/mini2440/pcm-mini2440.c
@@ -260,12 +260,6 @@ void fiq_handler(void)
260 pcm_play_dma_status_callback(PCM_DMAST_STARTED); 260 pcm_play_dma_status_callback(PCM_DMAST_STARTED);
261} 261}
262 262
263size_t pcm_get_bytes_waiting(void)
264{
265 /* lie a little and only return full pairs */
266 return (DSTAT2 & 0xFFFFE) * 2;
267}
268
269const void * pcm_play_dma_get_peak_buffer(int *count) 263const void * pcm_play_dma_get_peak_buffer(int *count)
270{ 264{
271 unsigned long addr = DCSRC2; 265 unsigned long addr = DCSRC2;
diff --git a/firmware/target/arm/s5l8700/pcm-s5l8700.c b/firmware/target/arm/s5l8700/pcm-s5l8700.c
index 47525611ee..050e14451d 100644
--- a/firmware/target/arm/s5l8700/pcm-s5l8700.c
+++ b/firmware/target/arm/s5l8700/pcm-s5l8700.c
@@ -259,12 +259,7 @@ void pcm_play_dma_postinit(void)
259/* set the configured PCM frequency */ 259/* set the configured PCM frequency */
260void pcm_dma_apply_settings(void) 260void pcm_dma_apply_settings(void)
261{ 261{
262 pcm_dma_set_freq(pcm_fsel); 262 pcm_dma_set_freq(pcm_fsel);
263}
264
265size_t pcm_get_bytes_waiting(void)
266{
267 return (nextsize + DMACTCNT0 + 2) << 1;
268} 263}
269 264
270const void * pcm_play_dma_get_peak_buffer(int *count) 265const void * pcm_play_dma_get_peak_buffer(int *count)
diff --git a/firmware/target/arm/s5l8702/pcm-s5l8702.c b/firmware/target/arm/s5l8702/pcm-s5l8702.c
index a62a7243a2..33fe637770 100644
--- a/firmware/target/arm/s5l8702/pcm-s5l8702.c
+++ b/firmware/target/arm/s5l8702/pcm-s5l8702.c
@@ -216,13 +216,6 @@ void pcm_play_dma_postinit(void)
216 audiohw_postinit(); 216 audiohw_postinit();
217} 217}
218 218
219size_t pcm_get_bytes_waiting(void)
220{
221 size_t total_bytes;
222 dmac_ch_get_info(&dma_play_ch, NULL, &total_bytes);
223 return total_bytes;
224}
225
226const void* pcm_play_dma_get_peak_buffer(int *count) 219const void* pcm_play_dma_get_peak_buffer(int *count)
227{ 220{
228 void *addr = dmac_ch_get_info(&dma_play_ch, count, NULL); 221 void *addr = dmac_ch_get_info(&dma_play_ch, count, NULL);
diff --git a/firmware/target/arm/tms320dm320/creative-zvm/pcm-creativezvm.c b/firmware/target/arm/tms320dm320/creative-zvm/pcm-creativezvm.c
index f31185c2ea..d5e30ad73b 100644
--- a/firmware/target/arm/tms320dm320/creative-zvm/pcm-creativezvm.c
+++ b/firmware/target/arm/tms320dm320/creative-zvm/pcm-creativezvm.c
@@ -84,8 +84,3 @@ void pcm_play_unlock(void)
84{ 84{
85 85
86} 86}
87
88size_t pcm_get_bytes_waiting(void)
89{
90 return 0;
91}
diff --git a/firmware/target/arm/tms320dm320/mrobe-500/pcm-mr500.c b/firmware/target/arm/tms320dm320/mrobe-500/pcm-mr500.c
index 0d7bcbab37..5ce5a8f399 100644
--- a/firmware/target/arm/tms320dm320/mrobe-500/pcm-mr500.c
+++ b/firmware/target/arm/tms320dm320/mrobe-500/pcm-mr500.c
@@ -120,11 +120,6 @@ void pcm_play_unlock(void)
120 120
121} 121}
122 122
123size_t pcm_get_bytes_waiting(void)
124{
125 return DSP_(_sdem_dsp_size)-DSP_(_sdem_level);
126}
127
128/* Only used when debugging */ 123/* Only used when debugging */
129static char buffer[80]; 124static char buffer[80];
130 125
diff --git a/firmware/target/arm/tms320dm320/sansa-connect/pcm-sansaconnect.c b/firmware/target/arm/tms320dm320/sansa-connect/pcm-sansaconnect.c
index c2932fd762..f9f19a8045 100644
--- a/firmware/target/arm/tms320dm320/sansa-connect/pcm-sansaconnect.c
+++ b/firmware/target/arm/tms320dm320/sansa-connect/pcm-sansaconnect.c
@@ -127,11 +127,6 @@ void pcm_play_unlock(void)
127 127
128} 128}
129 129
130size_t pcm_get_bytes_waiting(void)
131{
132 return DSP_(_sdem_dsp_size)-DSP_(_sdem_level);
133}
134
135/* Only used when debugging */ 130/* Only used when debugging */
136static char buffer[80]; 131static char buffer[80];
137 132
diff --git a/firmware/target/coldfire/pcm-coldfire.c b/firmware/target/coldfire/pcm-coldfire.c
index 10f9ea931f..c45219297c 100644
--- a/firmware/target/coldfire/pcm-coldfire.c
+++ b/firmware/target/coldfire/pcm-coldfire.c
@@ -264,11 +264,6 @@ void pcm_play_dma_stop(void)
264 dma_play_lock.state = (1 << 14); 264 dma_play_lock.state = (1 << 14);
265} /* pcm_play_dma_stop */ 265} /* pcm_play_dma_stop */
266 266
267size_t pcm_get_bytes_waiting(void)
268{
269 return BCR0 & 0xffffff;
270} /* pcm_get_bytes_waiting */
271
272/* DMA0 Interrupt is called when the DMA has finished transfering a chunk 267/* DMA0 Interrupt is called when the DMA has finished transfering a chunk
273 from the caller's buffer */ 268 from the caller's buffer */
274void DMA0(void) __attribute__ ((interrupt_handler, section(".icode"))); 269void DMA0(void) __attribute__ ((interrupt_handler, section(".icode")));
diff --git a/firmware/target/hosted/android/pcm-android.c b/firmware/target/hosted/android/pcm-android.c
index 4577c8078a..b078f92698 100644
--- a/firmware/target/hosted/android/pcm-android.c
+++ b/firmware/target/hosted/android/pcm-android.c
@@ -171,11 +171,6 @@ void pcm_play_dma_stop(void)
171 stop_method); 171 stop_method);
172} 172}
173 173
174size_t pcm_get_bytes_waiting(void)
175{
176 return pcm_data_size;
177}
178
179const void * pcm_play_dma_get_peak_buffer(int *count) 174const void * pcm_play_dma_get_peak_buffer(int *count)
180{ 175{
181 uintptr_t addr = (uintptr_t)pcm_data_start; 176 uintptr_t addr = (uintptr_t)pcm_data_start;
diff --git a/firmware/target/hosted/ibasso/pcm-ibasso.c b/firmware/target/hosted/ibasso/pcm-ibasso.c
index edfdc6d592..e31732431b 100644
--- a/firmware/target/hosted/ibasso/pcm-ibasso.c
+++ b/firmware/target/hosted/ibasso/pcm-ibasso.c
@@ -439,15 +439,6 @@ void pcm_dma_apply_settings(void)
439 } 439 }
440} 440}
441 441
442
443size_t pcm_get_bytes_waiting(void)
444{
445 TRACE;
446
447 return _pcm_buffer_size;
448}
449
450
451/* TODO: WTF */ 442/* TODO: WTF */
452const void* pcm_play_dma_get_peak_buffer(int* count) 443const void* pcm_play_dma_get_peak_buffer(int* count)
453{ 444{
diff --git a/firmware/target/hosted/maemo/pcm-gstreamer.c b/firmware/target/hosted/maemo/pcm-gstreamer.c
index 7c864738ef..e2d57f9fab 100644
--- a/firmware/target/hosted/maemo/pcm-gstreamer.c
+++ b/firmware/target/hosted/maemo/pcm-gstreamer.c
@@ -154,11 +154,6 @@ void pcm_play_dma_stop(void)
154 gst_element_set_state (GST_ELEMENT(gst_pipeline), GST_STATE_NULL); 154 gst_element_set_state (GST_ELEMENT(gst_pipeline), GST_STATE_NULL);
155} 155}
156 156
157size_t pcm_get_bytes_waiting(void)
158{
159 return pcm_data_size;
160}
161
162static void feed_data(GstElement * appsrc, guint size_hint, void *unused) 157static void feed_data(GstElement * appsrc, guint size_hint, void *unused)
163{ 158{
164 (void)size_hint; 159 (void)size_hint;
diff --git a/firmware/target/hosted/pcm-alsa.c b/firmware/target/hosted/pcm-alsa.c
index 970abc78cf..14e1c4cd3e 100644
--- a/firmware/target/hosted/pcm-alsa.c
+++ b/firmware/target/hosted/pcm-alsa.c
@@ -735,11 +735,6 @@ void pcm_play_dma_start(const void *addr, size_t size)
735 } 735 }
736} 736}
737 737
738size_t pcm_get_bytes_waiting(void)
739{
740 return pcm_size;
741}
742
743const void * pcm_play_dma_get_peak_buffer(int *count) 738const void * pcm_play_dma_get_peak_buffer(int *count)
744{ 739{
745 uintptr_t addr = (uintptr_t)pcm_data; 740 uintptr_t addr = (uintptr_t)pcm_data;
diff --git a/firmware/target/hosted/sdl/pcm-sdl.c b/firmware/target/hosted/sdl/pcm-sdl.c
index ba43ece543..7297e94340 100644
--- a/firmware/target/hosted/sdl/pcm-sdl.c
+++ b/firmware/target/hosted/sdl/pcm-sdl.c
@@ -124,11 +124,6 @@ void pcm_play_dma_stop(void)
124#endif 124#endif
125} 125}
126 126
127size_t pcm_get_bytes_waiting(void)
128{
129 return pcm_data_size;
130}
131
132static void write_to_soundcard(struct pcm_udata *udata) 127static void write_to_soundcard(struct pcm_udata *udata)
133{ 128{
134#ifdef DEBUG 129#ifdef DEBUG
diff --git a/firmware/target/mips/ingenic_jz47xx/pcm-jz4740.c b/firmware/target/mips/ingenic_jz47xx/pcm-jz4740.c
index 1ce0b5ad5f..83325e09ef 100644
--- a/firmware/target/mips/ingenic_jz47xx/pcm-jz4740.c
+++ b/firmware/target/mips/ingenic_jz47xx/pcm-jz4740.c
@@ -203,20 +203,6 @@ static int get_dma_count(void)
203 return count; 203 return count;
204} 204}
205 205
206size_t pcm_get_bytes_waiting(void)
207{
208 int bytes, flags = disable_irq_save();
209
210 if(REG_DMAC_DCCSR(DMA_AIC_TX_CHANNEL) & DMAC_DCCSR_EN)
211 bytes = get_dma_count() & ~3;
212 else
213 bytes = 0;
214
215 restore_irq(flags);
216
217 return bytes;
218}
219
220const void * pcm_play_dma_get_peak_buffer(int *count) 206const void * pcm_play_dma_get_peak_buffer(int *count)
221{ 207{
222 int flags = disable_irq_save(); 208 int flags = disable_irq_save();
diff --git a/firmware/target/mips/ingenic_jz47xx/pcm-jz4760.c b/firmware/target/mips/ingenic_jz47xx/pcm-jz4760.c
index 4a4f3020bb..401d568a97 100644
--- a/firmware/target/mips/ingenic_jz47xx/pcm-jz4760.c
+++ b/firmware/target/mips/ingenic_jz47xx/pcm-jz4760.c
@@ -192,20 +192,6 @@ static int get_dma_count(void)
192 return count; 192 return count;
193} 193}
194 194
195size_t pcm_get_bytes_waiting(void)
196{
197 int bytes, flags = disable_irq_save();
198
199 if(REG_DMAC_DCCSR(DMA_AIC_TX_CHANNEL) & DMAC_DCCSR_EN)
200 bytes = get_dma_count() & ~3;
201 else
202 bytes = 0;
203
204 restore_irq(flags);
205
206 return bytes;
207}
208
209const void * pcm_play_dma_get_peak_buffer(int *count) 195const void * pcm_play_dma_get_peak_buffer(int *count)
210{ 196{
211 int flags = disable_irq_save(); 197 int flags = disable_irq_save();