summaryrefslogtreecommitdiff
path: root/firmware/target/arm
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm')
-rw-r--r--firmware/target/arm/as3525/pcm-as3525.c20
-rw-r--r--firmware/target/arm/imx233/pcm-imx233.c6
-rw-r--r--firmware/target/arm/imx31/gigabeat-s/pcm-gigabeat-s.c14
-rw-r--r--firmware/target/arm/pcm-telechips.c9
-rw-r--r--firmware/target/arm/pnx0101/pcm-pnx0101.c7
-rw-r--r--firmware/target/arm/pp/pcm-pp.c9
-rw-r--r--firmware/target/arm/rk27xx/pcm-rk27xx.c15
-rw-r--r--firmware/target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c18
-rw-r--r--firmware/target/arm/s3c2440/mini2440/pcm-mini2440.c18
-rw-r--r--firmware/target/arm/s5l8700/pcm-s5l8700.c12
-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.c14
-rw-r--r--firmware/target/arm/tms320dm320/sansa-connect/pcm-sansaconnect.c14
14 files changed, 1 insertions, 167 deletions
diff --git a/firmware/target/arm/as3525/pcm-as3525.c b/firmware/target/arm/as3525/pcm-as3525.c
index ddb4d86bd4..90b6aabd7c 100644
--- a/firmware/target/arm/as3525/pcm-as3525.c
+++ b/firmware/target/arm/as3525/pcm-as3525.c
@@ -152,26 +152,6 @@ void pcm_play_dma_stop(void)
152 play_callback_pending = false; 152 play_callback_pending = false;
153} 153}
154 154
155void pcm_play_dma_pause(bool pause)
156{
157 is_playing = !pause;
158
159 if(pause)
160 {
161 dma_pause_channel(0);
162
163 /* if producer's buffer finished, upper layer starts anew */
164 if (dma_rem_size == 0)
165 play_callback_pending = false;
166 }
167 else
168 {
169 if (play_sub_size != 0)
170 dma_resume_channel(0);
171 /* else unlock calls the callback if sub buffers remain */
172 }
173}
174
175void pcm_play_dma_init(void) 155void pcm_play_dma_init(void)
176{ 156{
177 bitset32(&CGU_PERI, CGU_I2SOUT_APB_CLOCK_ENABLE); 157 bitset32(&CGU_PERI, CGU_I2SOUT_APB_CLOCK_ENABLE);
diff --git a/firmware/target/arm/imx233/pcm-imx233.c b/firmware/target/arm/imx233/pcm-imx233.c
index de0e1aabf5..7e20a7ce68 100644
--- a/firmware/target/arm/imx233/pcm-imx233.c
+++ b/firmware/target/arm/imx233/pcm-imx233.c
@@ -149,12 +149,6 @@ void pcm_play_dma_start(const void *addr, size_t size)
149 pcm_play_unlock(); 149 pcm_play_unlock();
150} 150}
151 151
152void pcm_play_dma_pause(bool pause)
153{
154 imx233_dma_freeze_channel(APB_AUDIO_DAC, pause);
155 dac_freezed = pause;
156}
157
158void pcm_play_dma_init(void) 152void pcm_play_dma_init(void)
159{ 153{
160 audiohw_preinit(); 154 audiohw_preinit();
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 7304bdcff3..72d8e4a021 100644
--- a/firmware/target/arm/imx31/gigabeat-s/pcm-gigabeat-s.c
+++ b/firmware/target/arm/imx31/gigabeat-s/pcm-gigabeat-s.c
@@ -224,20 +224,6 @@ void pcm_play_dma_stop(void)
224 play_stop_pcm(); 224 play_stop_pcm();
225} 225}
226 226
227void pcm_play_dma_pause(bool pause)
228{
229 if (pause)
230 {
231 sdma_channel_pause(DMA_PLAY_CH_NUM);
232 play_stop_pcm();
233 }
234 else
235 {
236 play_start_pcm();
237 sdma_channel_run(DMA_PLAY_CH_NUM);
238 }
239}
240
241/* Return the number of bytes waiting - full L-R sample pairs only */ 227/* Return the number of bytes waiting - full L-R sample pairs only */
242size_t pcm_get_bytes_waiting(void) 228size_t pcm_get_bytes_waiting(void)
243{ 229{
diff --git a/firmware/target/arm/pcm-telechips.c b/firmware/target/arm/pcm-telechips.c
index ddd69088cf..9c64b58594 100644
--- a/firmware/target/arm/pcm-telechips.c
+++ b/firmware/target/arm/pcm-telechips.c
@@ -194,15 +194,6 @@ void pcm_play_unlock(void)
194 restore_fiq(status); 194 restore_fiq(status);
195} 195}
196 196
197void pcm_play_dma_pause(bool pause)
198{
199 if (pause) {
200 play_stop_pcm();
201 } else {
202 play_start_pcm();
203 }
204}
205
206size_t pcm_get_bytes_waiting(void) 197size_t pcm_get_bytes_waiting(void)
207{ 198{
208 return dma_play_data.size & ~3; 199 return dma_play_data.size & ~3;
diff --git a/firmware/target/arm/pnx0101/pcm-pnx0101.c b/firmware/target/arm/pnx0101/pcm-pnx0101.c
index a2394bc355..01ead4723b 100644
--- a/firmware/target/arm/pnx0101/pcm-pnx0101.c
+++ b/firmware/target/arm/pnx0101/pcm-pnx0101.c
@@ -49,11 +49,6 @@ void pcm_play_dma_stop(void)
49{ 49{
50} 50}
51 51
52void pcm_play_dma_pause(bool pause)
53{
54 (void)pause;
55}
56
57static inline void fill_dma_buf(int offset) 52static inline void fill_dma_buf(int offset)
58{ 53{
59 short *l, *r, *lend; 54 short *l, *r, *lend;
@@ -62,7 +57,7 @@ static inline void fill_dma_buf(int offset)
62 lend = l + DMA_BUF_SAMPLES / 2; 57 lend = l + DMA_BUF_SAMPLES / 2;
63 r = dma_buf_right + offset; 58 r = dma_buf_right + offset;
64 59
65 if (pcm_playing && !pcm_paused) 60 if (pcm_playing)
66 { 61 {
67 bool new_buffer =false; 62 bool new_buffer =false;
68 63
diff --git a/firmware/target/arm/pp/pcm-pp.c b/firmware/target/arm/pp/pcm-pp.c
index 99d46a6096..91d567ee83 100644
--- a/firmware/target/arm/pp/pcm-pp.c
+++ b/firmware/target/arm/pp/pcm-pp.c
@@ -497,15 +497,6 @@ void pcm_play_dma_stop(void)
497#endif 497#endif
498} 498}
499 499
500void pcm_play_dma_pause(bool pause)
501{
502 if (pause) {
503 play_stop_pcm();
504 } else {
505 play_start_pcm();
506 }
507}
508
509size_t pcm_get_bytes_waiting(void) 500size_t pcm_get_bytes_waiting(void)
510{ 501{
511 return dma_play_data.size & ~3; 502 return dma_play_data.size & ~3;
diff --git a/firmware/target/arm/rk27xx/pcm-rk27xx.c b/firmware/target/arm/rk27xx/pcm-rk27xx.c
index 21feaf6cc4..5cfe54f9de 100644
--- a/firmware/target/arm/rk27xx/pcm-rk27xx.c
+++ b/firmware/target/arm/rk27xx/pcm-rk27xx.c
@@ -114,21 +114,6 @@ void pcm_play_dma_start(const void *addr, size_t size)
114 hdma_i2s_transfer(addr, size); 114 hdma_i2s_transfer(addr, size);
115} 115}
116 116
117/* pause DMA transfer by disabling clock to DMA module */
118void pcm_play_dma_pause(bool pause)
119{
120 if(pause)
121 {
122 SCU_CLKCFG |= CLKCFG_HDMA;
123 locked = 1;
124 }
125 else
126 {
127 SCU_CLKCFG &= ~CLKCFG_HDMA;
128 locked = 0;
129 }
130}
131
132static void i2s_init(void) 117static void i2s_init(void)
133{ 118{
134#if defined(HAVE_RK27XX_CODEC) 119#if defined(HAVE_RK27XX_CODEC)
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 a1c854a0df..da5dc9cdd5 100644
--- a/firmware/target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c
+++ b/firmware/target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c
@@ -195,24 +195,6 @@ void pcm_play_dma_stop(void)
195 bitclr32(&CLKCON, 1<<17); 195 bitclr32(&CLKCON, 1<<17);
196} 196}
197 197
198void pcm_play_dma_pause(bool pause)
199{
200 if (pause)
201 {
202 /* pause playback on current buffer */
203 play_stop_pcm();
204 }
205 else
206 {
207 /* restart playback on current buffer */
208 /* make sure we're aligned on left channel - skip any right
209 channel sample left waiting */
210 DISRC2 = (DCSRC2 + 2) & ~0x3;
211 DCON2 = DMA_CONTROL_SETUP | (DSTAT2 & 0xFFFFE);
212 play_start_pcm();
213 }
214}
215
216void fiq_handler(void) 198void fiq_handler(void)
217{ 199{
218 static const void *start; 200 static const void *start;
diff --git a/firmware/target/arm/s3c2440/mini2440/pcm-mini2440.c b/firmware/target/arm/s3c2440/mini2440/pcm-mini2440.c
index 943cbb2ade..dbb1a06809 100644
--- a/firmware/target/arm/s3c2440/mini2440/pcm-mini2440.c
+++ b/firmware/target/arm/s3c2440/mini2440/pcm-mini2440.c
@@ -235,24 +235,6 @@ void pcm_play_dma_stop(void)
235 bitclr32(&CLKCON, 1<<17); 235 bitclr32(&CLKCON, 1<<17);
236} 236}
237 237
238void pcm_play_dma_pause(bool pause)
239{
240 if (pause)
241 {
242 /* pause playback on current buffer */
243 play_stop_pcm();
244 }
245 else
246 {
247 /* restart playback on current buffer */
248 /* make sure we're aligned on left channel - skip any right
249 channel sample left waiting */
250 DISRC2 = (DCSRC2 + 2) & ~0x3;
251 DCON2 = DMA_CONTROL_SETUP | (DSTAT2 & 0xFFFFE);
252 play_start_pcm();
253 }
254}
255
256void fiq_handler(void) 238void fiq_handler(void)
257{ 239{
258 static const void *start; 240 static const void *start;
diff --git a/firmware/target/arm/s5l8700/pcm-s5l8700.c b/firmware/target/arm/s5l8700/pcm-s5l8700.c
index d8387c2aa5..47525611ee 100644
--- a/firmware/target/arm/s5l8700/pcm-s5l8700.c
+++ b/firmware/target/arm/s5l8700/pcm-s5l8700.c
@@ -35,7 +35,6 @@
35/* Driver for the IIS/PCM part of the s5l8700 using DMA 35/* Driver for the IIS/PCM part of the s5l8700 using DMA
36 36
37 Notes: 37 Notes:
38 - pcm_play_dma_pause is untested, not sure if implemented the right way
39 - pcm_play_dma_stop is untested, not sure if implemented the right way 38 - pcm_play_dma_stop is untested, not sure if implemented the right way
40 - recording is not implemented 39 - recording is not implemented
41*/ 40*/
@@ -173,17 +172,6 @@ void pcm_play_dma_stop(void)
173 (0 << 0); /* 0 = LRCK on */ 172 (0 << 0); /* 0 = LRCK on */
174} 173}
175 174
176/* pause playback by disabling the I2S interface */
177void pcm_play_dma_pause(bool pause)
178{
179 if (pause) {
180 I2STXCOM |= (1 << 0); /* LRCK off */
181 }
182 else {
183 I2STXCOM &= ~(1 << 0); /* LRCK on */
184 }
185}
186
187static void pcm_dma_set_freq(enum hw_freq_indexes idx) 175static void pcm_dma_set_freq(enum hw_freq_indexes idx)
188{ 176{
189 struct div_entry div = div_table[idx]; 177 struct div_entry div = div_table[idx];
diff --git a/firmware/target/arm/s5l8702/pcm-s5l8702.c b/firmware/target/arm/s5l8702/pcm-s5l8702.c
index 86a0edd54a..a62a7243a2 100644
--- a/firmware/target/arm/s5l8702/pcm-s5l8702.c
+++ b/firmware/target/arm/s5l8702/pcm-s5l8702.c
@@ -157,13 +157,6 @@ void pcm_play_dma_stop(void)
157 I2STXCOM = 0xa; 157 I2STXCOM = 0xa;
158} 158}
159 159
160/* pause playback by disabling LRCK */
161void pcm_play_dma_pause(bool pause)
162{
163 if (pause) I2STXCOM |= 1;
164 else I2STXCOM &= ~1;
165}
166
167/* MCLK = 12MHz (MCLKDIV2=1), [CS42L55 DS, s4.8] */ 160/* MCLK = 12MHz (MCLKDIV2=1), [CS42L55 DS, s4.8] */
168#define MCLK_FREQ 12000000 161#define MCLK_FREQ 12000000
169 162
diff --git a/firmware/target/arm/tms320dm320/creative-zvm/pcm-creativezvm.c b/firmware/target/arm/tms320dm320/creative-zvm/pcm-creativezvm.c
index 1fda5fe045..f31185c2ea 100644
--- a/firmware/target/arm/tms320dm320/creative-zvm/pcm-creativezvm.c
+++ b/firmware/target/arm/tms320dm320/creative-zvm/pcm-creativezvm.c
@@ -85,11 +85,6 @@ void pcm_play_unlock(void)
85 85
86} 86}
87 87
88void pcm_play_dma_pause(bool pause)
89{
90 (void) pause;
91}
92
93size_t pcm_get_bytes_waiting(void) 88size_t pcm_get_bytes_waiting(void)
94{ 89{
95 return 0; 90 return 0;
diff --git a/firmware/target/arm/tms320dm320/mrobe-500/pcm-mr500.c b/firmware/target/arm/tms320dm320/mrobe-500/pcm-mr500.c
index d23c93de39..0d7bcbab37 100644
--- a/firmware/target/arm/tms320dm320/mrobe-500/pcm-mr500.c
+++ b/firmware/target/arm/tms320dm320/mrobe-500/pcm-mr500.c
@@ -120,20 +120,6 @@ void pcm_play_unlock(void)
120 120
121} 121}
122 122
123void pcm_play_dma_pause(bool pause)
124{
125 if (pause)
126 {
127 DSP_(_dma0_stopped)=2;
128 dsp_wake();
129 }
130 else
131 {
132 DSP_(_dma0_stopped)=0;
133 dsp_wake();
134 }
135}
136
137size_t pcm_get_bytes_waiting(void) 123size_t pcm_get_bytes_waiting(void)
138{ 124{
139 return DSP_(_sdem_dsp_size)-DSP_(_sdem_level); 125 return DSP_(_sdem_dsp_size)-DSP_(_sdem_level);
diff --git a/firmware/target/arm/tms320dm320/sansa-connect/pcm-sansaconnect.c b/firmware/target/arm/tms320dm320/sansa-connect/pcm-sansaconnect.c
index 6e640bdf12..c2932fd762 100644
--- a/firmware/target/arm/tms320dm320/sansa-connect/pcm-sansaconnect.c
+++ b/firmware/target/arm/tms320dm320/sansa-connect/pcm-sansaconnect.c
@@ -127,20 +127,6 @@ void pcm_play_unlock(void)
127 127
128} 128}
129 129
130void pcm_play_dma_pause(bool pause)
131{
132 if (pause)
133 {
134 DSP_(_dma0_stopped)=2;
135 dsp_wake();
136 }
137 else
138 {
139 DSP_(_dma0_stopped)=0;
140 dsp_wake();
141 }
142}
143
144size_t pcm_get_bytes_waiting(void) 130size_t pcm_get_bytes_waiting(void)
145{ 131{
146 return DSP_(_sdem_dsp_size)-DSP_(_sdem_level); 132 return DSP_(_sdem_dsp_size)-DSP_(_sdem_level);