summaryrefslogtreecommitdiff
path: root/firmware/target/arm
diff options
context:
space:
mode:
authorSolomon Peachy <pizza@shaftnet.org>2020-10-30 20:30:27 -0400
committerSolomon Peachy <pizza@shaftnet.org>2020-10-31 01:18:27 +0000
commitfe2d52cc7d0180acff26349f2904fba854de6fbc (patch)
tree62dbbe9a6e6ebc011e8e02f7428b8f620a83f698 /firmware/target/arm
parent2d85c7215169780168032617603e9e7b06d7ba25 (diff)
downloadrockbox-fe2d52cc7d0180acff26349f2904fba854de6fbc.tar.gz
rockbox-fe2d52cc7d0180acff26349f2904fba854de6fbc.zip
pcm: Get rid of pcm_play_pause() and associated APIs
Nothing in the core has used it for some time. It's exported to the plugin API but the last plugins to use it were switched to the mixer API back in 2011. This allows us to get rid of pcm_play_dma_pause() from all audio drivers Change-Id: Ic3fa02592316f84963e41d792d1cabb436d1ff6b
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);