diff options
Diffstat (limited to 'firmware')
30 files changed, 15 insertions, 360 deletions
diff --git a/firmware/drivers/audio/rocker_codec.c b/firmware/drivers/audio/rocker_codec.c index 4beda4b572..b4ebdd7816 100644 --- a/firmware/drivers/audio/rocker_codec.c +++ b/firmware/drivers/audio/rocker_codec.c | |||
@@ -71,7 +71,7 @@ void audiohw_preinit(void) | |||
71 | { | 71 | { |
72 | alsa_controls_init(); | 72 | alsa_controls_init(); |
73 | hw_open(); | 73 | hw_open(); |
74 | #if defined(AUDIOHW_MUTE_ON_PAUSE) || defined (AUDIOHW_NEEDS_INITIAL_UNMUTE) | 74 | #if defined(AUDIOHW_MUTE_ON_STOP) || defined(AUDIOHW_NEEDS_INITIAL_UNMUTE) |
75 | audiohw_mute(true); /* Start muted to avoid the POP */ | 75 | audiohw_mute(true); /* Start muted to avoid the POP */ |
76 | #else | 76 | #else |
77 | audiohw_mute(false); | 77 | audiohw_mute(false); |
diff --git a/firmware/export/fiiolinux_codec.h b/firmware/export/fiiolinux_codec.h index 118a0928d7..5fa7ae2b10 100644 --- a/firmware/export/fiiolinux_codec.h +++ b/firmware/export/fiiolinux_codec.h | |||
@@ -7,6 +7,6 @@ AUDIOHW_SETTING(VOLUME, "dB", 0, 1, -100, 0, -30) | |||
7 | AUDIOHW_SETTING(FILTER_ROLL_OFF, "", 0, 1, 0, 4, 0) | 7 | AUDIOHW_SETTING(FILTER_ROLL_OFF, "", 0, 1, 0, 4, 0) |
8 | #endif | 8 | #endif |
9 | 9 | ||
10 | #define AUDIOHW_MUTE_ON_PAUSE | 10 | #define AUDIOHW_MUTE_ON_STOP |
11 | 11 | ||
12 | void audiohw_mute(int mute); | 12 | void audiohw_mute(int mute); |
diff --git a/firmware/export/pcm-internal.h b/firmware/export/pcm-internal.h index 7670f99f04..d5d46c33e1 100644 --- a/firmware/export/pcm-internal.h +++ b/firmware/export/pcm-internal.h | |||
@@ -119,7 +119,6 @@ pcm_play_dma_status_callback(enum pcm_dma_status status) | |||
119 | 119 | ||
120 | #if defined(HAVE_SW_VOLUME_CONTROL) && !defined(PCM_SW_VOLUME_UNBUFFERED) | 120 | #if defined(HAVE_SW_VOLUME_CONTROL) && !defined(PCM_SW_VOLUME_UNBUFFERED) |
121 | void pcm_play_dma_start_int(const void *addr, size_t size); | 121 | void pcm_play_dma_start_int(const void *addr, size_t size); |
122 | void pcm_play_dma_pause_int(bool pause); | ||
123 | void pcm_play_dma_stop_int(void); | 122 | void pcm_play_dma_stop_int(void); |
124 | void pcm_play_stop_int(void); | 123 | void pcm_play_stop_int(void); |
125 | const void *pcm_play_dma_get_peak_buffer_int(int *count); | 124 | const void *pcm_play_dma_get_peak_buffer_int(int *count); |
@@ -139,7 +138,6 @@ void * pcm_dma_addr(void *addr); | |||
139 | #endif | 138 | #endif |
140 | 139 | ||
141 | extern volatile bool pcm_playing; | 140 | extern volatile bool pcm_playing; |
142 | extern volatile bool pcm_paused; | ||
143 | 141 | ||
144 | void pcm_play_dma_lock(void); | 142 | void pcm_play_dma_lock(void); |
145 | void pcm_play_dma_unlock(void); | 143 | void pcm_play_dma_unlock(void); |
@@ -147,7 +145,6 @@ void pcm_play_dma_init(void) INIT_ATTR; | |||
147 | void pcm_play_dma_postinit(void); | 145 | void pcm_play_dma_postinit(void); |
148 | void pcm_play_dma_start(const void *addr, size_t size); | 146 | void pcm_play_dma_start(const void *addr, size_t size); |
149 | void pcm_play_dma_stop(void); | 147 | void pcm_play_dma_stop(void); |
150 | void pcm_play_dma_pause(bool pause); | ||
151 | const void * pcm_play_dma_get_peak_buffer(int *count); | 148 | const void * pcm_play_dma_get_peak_buffer(int *count); |
152 | 149 | ||
153 | void pcm_dma_apply_settings(void); | 150 | void pcm_dma_apply_settings(void); |
diff --git a/firmware/export/pcm.h b/firmware/export/pcm.h index 23c0bd4a0b..61e11ef801 100644 --- a/firmware/export/pcm.h +++ b/firmware/export/pcm.h | |||
@@ -90,8 +90,6 @@ const void* pcm_get_peak_buffer(int* count); | |||
90 | size_t pcm_get_bytes_waiting(void); | 90 | size_t pcm_get_bytes_waiting(void); |
91 | 91 | ||
92 | void pcm_play_stop(void); | 92 | void pcm_play_stop(void); |
93 | void pcm_play_pause(bool play); | ||
94 | bool pcm_is_paused(void); | ||
95 | bool pcm_is_playing(void); | 93 | bool pcm_is_playing(void); |
96 | 94 | ||
97 | #ifdef HAVE_RECORDING | 95 | #ifdef HAVE_RECORDING |
diff --git a/firmware/export/rocker_codec.h b/firmware/export/rocker_codec.h index c1ee7b87bc..9eb4954f0b 100644 --- a/firmware/export/rocker_codec.h +++ b/firmware/export/rocker_codec.h | |||
@@ -5,7 +5,7 @@ | |||
5 | AUDIOHW_SETTING(VOLUME, "dB", 1, 5, -115*10, 0, -30*10) | 5 | AUDIOHW_SETTING(VOLUME, "dB", 1, 5, -115*10, 0, -30*10) |
6 | #endif | 6 | #endif |
7 | 7 | ||
8 | //#define AUDIOHW_MUTE_ON_PAUSE | 8 | //#define AUDIOHW_MUTE_ON_STOP |
9 | //#define AUDIOHW_NEEDS_INITIAL_UNMUTE | 9 | //#define AUDIOHW_NEEDS_INITIAL_UNMUTE |
10 | 10 | ||
11 | /* Note: Due to Kernel bug, we can't use MUTE_ON_PAUSE with backlight fading */ | 11 | /* Note: Due to Kernel bug, we can't use MUTE_ON_PAUSE with backlight fading */ |
diff --git a/firmware/export/xduoolinux_codec.h b/firmware/export/xduoolinux_codec.h index 744be58e30..301a341f15 100644 --- a/firmware/export/xduoolinux_codec.h +++ b/firmware/export/xduoolinux_codec.h | |||
@@ -7,7 +7,7 @@ AUDIOHW_SETTING(FILTER_ROLL_OFF, "", 0, 1, 0, 4, 0) | |||
7 | #endif | 7 | #endif |
8 | 8 | ||
9 | // We want this, but the codec takes over a second to unmute! | 9 | // We want this, but the codec takes over a second to unmute! |
10 | //#define AUDIOHW_MUTE_ON_PAUSE | 10 | //#define AUDIOHW_MUTE_ON_STOP |
11 | 11 | ||
12 | #if defined(XDUOO_X3II) | 12 | #if defined(XDUOO_X3II) |
13 | /* The AK4490 glitches when switching sample rates */ | 13 | /* The AK4490 glitches when switching sample rates */ |
diff --git a/firmware/pcm.c b/firmware/pcm.c index 640bb7830f..7a7043bef8 100644 --- a/firmware/pcm.c +++ b/firmware/pcm.c | |||
@@ -47,14 +47,12 @@ | |||
47 | * pcm_play_dma_postinit | 47 | * pcm_play_dma_postinit |
48 | * pcm_play_dma_start | 48 | * pcm_play_dma_start |
49 | * pcm_play_dma_stop | 49 | * pcm_play_dma_stop |
50 | * pcm_play_dma_pause | ||
51 | * pcm_play_dma_get_peak_buffer | 50 | * pcm_play_dma_get_peak_buffer |
52 | * Data Read/Written within TSP - | 51 | * Data Read/Written within TSP - |
53 | * pcm_sampr (R) | 52 | * pcm_sampr (R) |
54 | * pcm_fsel (R) | 53 | * pcm_fsel (R) |
55 | * pcm_curr_sampr (R) | 54 | * pcm_curr_sampr (R) |
56 | * pcm_playing (R) | 55 | * pcm_playing (R) |
57 | * pcm_paused (R) | ||
58 | * | 56 | * |
59 | * ==Playback/Recording== | 57 | * ==Playback/Recording== |
60 | * Public - | 58 | * Public - |
@@ -93,8 +91,6 @@ volatile pcm_status_callback_type | |||
93 | pcm_play_status_callback SHAREDBSS_ATTR = NULL; | 91 | pcm_play_status_callback SHAREDBSS_ATTR = NULL; |
94 | /* PCM playback state */ | 92 | /* PCM playback state */ |
95 | volatile bool pcm_playing SHAREDBSS_ATTR = false; | 93 | volatile bool pcm_playing SHAREDBSS_ATTR = false; |
96 | /* PCM paused state. paused implies playing */ | ||
97 | volatile bool pcm_paused SHAREDBSS_ATTR = false; | ||
98 | /* samplerate of currently playing audio - undefined if stopped */ | 94 | /* samplerate of currently playing audio - undefined if stopped */ |
99 | unsigned long pcm_curr_sampr SHAREDBSS_ATTR = 0; | 95 | unsigned long pcm_curr_sampr SHAREDBSS_ATTR = 0; |
100 | /* samplerate waiting to be set */ | 96 | /* samplerate waiting to be set */ |
@@ -103,7 +99,6 @@ unsigned long pcm_sampr SHAREDBSS_ATTR = HW_SAMPR_DEFAULT; | |||
103 | int pcm_fsel SHAREDBSS_ATTR = HW_FREQ_DEFAULT; | 99 | int pcm_fsel SHAREDBSS_ATTR = HW_FREQ_DEFAULT; |
104 | 100 | ||
105 | static void pcm_play_data_start_int(const void *addr, size_t size); | 101 | static void pcm_play_data_start_int(const void *addr, size_t size); |
106 | static void pcm_play_pause_int(bool play); | ||
107 | void pcm_play_stop_int(void); | 102 | void pcm_play_stop_int(void); |
108 | 103 | ||
109 | #if !defined(HAVE_SW_VOLUME_CONTROL) || defined(PCM_SW_VOLUME_UNBUFFERED) | 104 | #if !defined(HAVE_SW_VOLUME_CONTROL) || defined(PCM_SW_VOLUME_UNBUFFERED) |
@@ -118,19 +113,6 @@ static inline void pcm_play_dma_start_int(const void *addr, size_t size) | |||
118 | pcm_play_dma_start(addr, size); | 113 | pcm_play_dma_start(addr, size); |
119 | } | 114 | } |
120 | 115 | ||
121 | static inline void pcm_play_dma_pause_int(bool pause) | ||
122 | { | ||
123 | if (pause || pcm_get_bytes_waiting() > 0) | ||
124 | { | ||
125 | pcm_play_dma_pause(pause); | ||
126 | } | ||
127 | else | ||
128 | { | ||
129 | logf(" no data"); | ||
130 | pcm_play_data_start_int(NULL, 0); | ||
131 | } | ||
132 | } | ||
133 | |||
134 | static inline void pcm_play_dma_stop_int(void) | 116 | static inline void pcm_play_dma_stop_int(void) |
135 | { | 117 | { |
136 | pcm_play_dma_stop(); | 118 | pcm_play_dma_stop(); |
@@ -167,7 +149,6 @@ static void pcm_play_data_start_int(const void *addr, size_t size) | |||
167 | logf(" pcm_play_dma_start_int"); | 149 | logf(" pcm_play_dma_start_int"); |
168 | pcm_play_dma_start_int(addr, size); | 150 | pcm_play_dma_start_int(addr, size); |
169 | pcm_playing = true; | 151 | pcm_playing = true; |
170 | pcm_paused = false; | ||
171 | } | 152 | } |
172 | else | 153 | else |
173 | { | 154 | { |
@@ -177,22 +158,11 @@ static void pcm_play_data_start_int(const void *addr, size_t size) | |||
177 | } | 158 | } |
178 | } | 159 | } |
179 | 160 | ||
180 | static void pcm_play_pause_int(bool play) | ||
181 | { | ||
182 | if (play) | ||
183 | pcm_apply_settings(); | ||
184 | |||
185 | logf(" pcm_play_dma_pause_int"); | ||
186 | pcm_play_dma_pause_int(!play); | ||
187 | pcm_paused = !play && pcm_playing; | ||
188 | } | ||
189 | |||
190 | void pcm_play_stop_int(void) | 161 | void pcm_play_stop_int(void) |
191 | { | 162 | { |
192 | pcm_play_dma_stop_int(); | 163 | pcm_play_dma_stop_int(); |
193 | pcm_callback_for_more = NULL; | 164 | pcm_callback_for_more = NULL; |
194 | pcm_play_status_callback = NULL; | 165 | pcm_play_status_callback = NULL; |
195 | pcm_paused = false; | ||
196 | pcm_playing = false; | 166 | pcm_playing = false; |
197 | } | 167 | } |
198 | 168 | ||
@@ -282,8 +252,7 @@ void pcm_calculate_peaks(int *left, int *right) | |||
282 | int count; | 252 | int count; |
283 | const void *addr = pcm_play_dma_get_peak_buffer_int(&count); | 253 | const void *addr = pcm_play_dma_get_peak_buffer_int(&count); |
284 | 254 | ||
285 | pcm_do_peak_calculation(&peaks, pcm_playing && !pcm_paused, | 255 | pcm_do_peak_calculation(&peaks, pcm_playing, addr, count); |
286 | addr, count); | ||
287 | 256 | ||
288 | if (left) | 257 | if (left) |
289 | *left = peaks.left; | 258 | *left = peaks.left; |
@@ -302,11 +271,6 @@ bool pcm_is_playing(void) | |||
302 | return pcm_playing; | 271 | return pcm_playing; |
303 | } | 272 | } |
304 | 273 | ||
305 | bool pcm_is_paused(void) | ||
306 | { | ||
307 | return pcm_paused; | ||
308 | } | ||
309 | |||
310 | /**************************************************************************** | 274 | /**************************************************************************** |
311 | * Functions that do not require targeted implementation but only a targeted | 275 | * Functions that do not require targeted implementation but only a targeted |
312 | * interface | 276 | * interface |
@@ -358,21 +322,6 @@ void pcm_play_data(pcm_play_callback_type get_more, | |||
358 | pcm_play_unlock(); | 322 | pcm_play_unlock(); |
359 | } | 323 | } |
360 | 324 | ||
361 | void pcm_play_pause(bool play) | ||
362 | { | ||
363 | logf("pcm_play_pause: %s", play ? "play" : "pause"); | ||
364 | |||
365 | pcm_play_lock(); | ||
366 | |||
367 | if (play == pcm_paused && pcm_playing) | ||
368 | { | ||
369 | logf(" pcm_play_pause_int"); | ||
370 | pcm_play_pause_int(play); | ||
371 | } | ||
372 | |||
373 | pcm_play_unlock(); | ||
374 | } | ||
375 | |||
376 | void pcm_play_stop(void) | 325 | void pcm_play_stop(void) |
377 | { | 326 | { |
378 | logf("pcm_play_stop"); | 327 | logf("pcm_play_stop"); |
diff --git a/firmware/pcm_sw_volume.c b/firmware/pcm_sw_volume.c index 8b6c9220fd..e972896321 100644 --- a/firmware/pcm_sw_volume.c +++ b/firmware/pcm_sw_volume.c | |||
@@ -278,16 +278,6 @@ void pcm_play_dma_start_int(const void *addr, size_t size) | |||
278 | start_pcm(true); | 278 | start_pcm(true); |
279 | } | 279 | } |
280 | 280 | ||
281 | void pcm_play_dma_pause_int(bool pause) | ||
282 | { | ||
283 | if (pause) | ||
284 | pcm_play_dma_pause(true); | ||
285 | else if (src_buf_rem) | ||
286 | start_pcm(false); /* Reprocess in case volume level changed */ | ||
287 | else | ||
288 | pcm_play_stop_int(); /* Playing frame was last frame */ | ||
289 | } | ||
290 | |||
291 | void pcm_play_dma_stop_int(void) | 281 | void pcm_play_dma_stop_int(void) |
292 | { | 282 | { |
293 | pcm_play_dma_stop(); | 283 | pcm_play_dma_stop(); |
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 | ||
155 | void 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 | |||
175 | void pcm_play_dma_init(void) | 155 | void 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 | ||
152 | void pcm_play_dma_pause(bool pause) | ||
153 | { | ||
154 | imx233_dma_freeze_channel(APB_AUDIO_DAC, pause); | ||
155 | dac_freezed = pause; | ||
156 | } | ||
157 | |||
158 | void pcm_play_dma_init(void) | 152 | void 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 | ||
227 | void 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 */ |
242 | size_t pcm_get_bytes_waiting(void) | 228 | size_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 | ||
197 | void pcm_play_dma_pause(bool pause) | ||
198 | { | ||
199 | if (pause) { | ||
200 | play_stop_pcm(); | ||
201 | } else { | ||
202 | play_start_pcm(); | ||
203 | } | ||
204 | } | ||
205 | |||
206 | size_t pcm_get_bytes_waiting(void) | 197 | size_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 | ||
52 | void pcm_play_dma_pause(bool pause) | ||
53 | { | ||
54 | (void)pause; | ||
55 | } | ||
56 | |||
57 | static inline void fill_dma_buf(int offset) | 52 | static 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 | ||
500 | void pcm_play_dma_pause(bool pause) | ||
501 | { | ||
502 | if (pause) { | ||
503 | play_stop_pcm(); | ||
504 | } else { | ||
505 | play_start_pcm(); | ||
506 | } | ||
507 | } | ||
508 | |||
509 | size_t pcm_get_bytes_waiting(void) | 500 | size_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 */ | ||
118 | void 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 | |||
132 | static void i2s_init(void) | 117 | static 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 | ||
198 | void 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 | |||
216 | void fiq_handler(void) | 198 | void 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 | ||
238 | void 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 | |||
256 | void fiq_handler(void) | 238 | void 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 */ | ||
177 | void 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 | |||
187 | static void pcm_dma_set_freq(enum hw_freq_indexes idx) | 175 | static 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 */ | ||
161 | void 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 | ||
88 | void pcm_play_dma_pause(bool pause) | ||
89 | { | ||
90 | (void) pause; | ||
91 | } | ||
92 | |||
93 | size_t pcm_get_bytes_waiting(void) | 88 | size_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 | ||
123 | void 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 | |||
137 | size_t pcm_get_bytes_waiting(void) | 123 | size_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 | ||
130 | void 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 | |||
144 | size_t pcm_get_bytes_waiting(void) | 130 | size_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); |
diff --git a/firmware/target/coldfire/pcm-coldfire.c b/firmware/target/coldfire/pcm-coldfire.c index 8162f521f9..10f9ea931f 100644 --- a/firmware/target/coldfire/pcm-coldfire.c +++ b/firmware/target/coldfire/pcm-coldfire.c | |||
@@ -264,25 +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 | ||
267 | void pcm_play_dma_pause(bool pause) | ||
268 | { | ||
269 | if (pause) | ||
270 | { | ||
271 | /* pause playback on current buffer */ | ||
272 | and_l(~(DMA_EEXT | DMA_INT), &DCR0); /* per request and int OFF */ | ||
273 | DSR0 = 1; /* stop channel */ | ||
274 | iis_play_reset_if_playback(true); | ||
275 | dma_play_lock.state = (1 << 14); | ||
276 | } | ||
277 | else | ||
278 | { | ||
279 | /* restart playback on current buffer */ | ||
280 | iis_play_reset_if_playback(true); | ||
281 | or_l(DMA_INT | DMA_EEXT | DMA_START, &DCR0); /* everything ON */ | ||
282 | dma_play_lock.state = (0 << 14); | ||
283 | } | ||
284 | } /* pcm_play_dma_pause */ | ||
285 | |||
286 | size_t pcm_get_bytes_waiting(void) | 267 | size_t pcm_get_bytes_waiting(void) |
287 | { | 268 | { |
288 | return BCR0 & 0xffffff; | 269 | return BCR0 & 0xffffff; |
diff --git a/firmware/target/hosted/android/pcm-android.c b/firmware/target/hosted/android/pcm-android.c index 23a003ff73..69fd06c6f7 100644 --- a/firmware/target/hosted/android/pcm-android.c +++ b/firmware/target/hosted/android/pcm-android.c | |||
@@ -153,8 +153,11 @@ void pcm_play_dma_start(const void *addr, size_t size) | |||
153 | { | 153 | { |
154 | pcm_data_start = addr; | 154 | pcm_data_start = addr; |
155 | pcm_data_size = size; | 155 | pcm_data_size = size; |
156 | 156 | ||
157 | pcm_play_dma_pause(false); | 157 | (*env_ptr)->CallVoidMethod(env_ptr, |
158 | RockboxPCM_instance, | ||
159 | play_pause_method, | ||
160 | (int)pause); | ||
158 | } | 161 | } |
159 | 162 | ||
160 | void pcm_play_dma_stop(void) | 163 | void pcm_play_dma_stop(void) |
@@ -168,14 +171,6 @@ void pcm_play_dma_stop(void) | |||
168 | stop_method); | 171 | stop_method); |
169 | } | 172 | } |
170 | 173 | ||
171 | void pcm_play_dma_pause(bool pause) | ||
172 | { | ||
173 | (*env_ptr)->CallVoidMethod(env_ptr, | ||
174 | RockboxPCM_instance, | ||
175 | play_pause_method, | ||
176 | (int)pause); | ||
177 | } | ||
178 | |||
179 | size_t pcm_get_bytes_waiting(void) | 174 | size_t pcm_get_bytes_waiting(void) |
180 | { | 175 | { |
181 | return pcm_data_size; | 176 | return pcm_data_size; |
diff --git a/firmware/target/hosted/ibasso/pcm-ibasso.c b/firmware/target/hosted/ibasso/pcm-ibasso.c index 4721501d25..edfdc6d592 100644 --- a/firmware/target/hosted/ibasso/pcm-ibasso.c +++ b/firmware/target/hosted/ibasso/pcm-ibasso.c | |||
@@ -364,22 +364,6 @@ void pcm_play_dma_start(const void *addr, size_t size) | |||
364 | pthread_mutex_unlock(&_dma_suspended_mtx); | 364 | pthread_mutex_unlock(&_dma_suspended_mtx); |
365 | } | 365 | } |
366 | 366 | ||
367 | |||
368 | /* TODO: Why is this in the API if it gets never called? */ | ||
369 | void pcm_play_dma_pause(bool pause) | ||
370 | { | ||
371 | TRACE; | ||
372 | |||
373 | pthread_mutex_lock(&_dma_suspended_mtx); | ||
374 | _dma_stopped = pause ? 1 : 0; | ||
375 | if(_dma_stopped == 0) | ||
376 | { | ||
377 | pthread_cond_signal(&_dma_suspended_cond); | ||
378 | } | ||
379 | pthread_mutex_unlock(&_dma_suspended_mtx); | ||
380 | } | ||
381 | |||
382 | |||
383 | void pcm_play_dma_stop(void) | 367 | void pcm_play_dma_stop(void) |
384 | { | 368 | { |
385 | TRACE; | 369 | TRACE; |
diff --git a/firmware/target/hosted/maemo/pcm-gstreamer.c b/firmware/target/hosted/maemo/pcm-gstreamer.c index bd264fe5d3..7c864738ef 100644 --- a/firmware/target/hosted/maemo/pcm-gstreamer.c +++ b/firmware/target/hosted/maemo/pcm-gstreamer.c | |||
@@ -154,23 +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 | ||
157 | void pcm_play_dma_pause(bool pause) | ||
158 | { | ||
159 | if (inside_feed_data) | ||
160 | { | ||
161 | if (pause) | ||
162 | g_signal_emit_by_name (gst_appsrc, "end-of-stream", NULL); | ||
163 | else | ||
164 | DEBUGF("ERROR: Called dma_pause(0) while inside feed_data\n"); | ||
165 | } else | ||
166 | { | ||
167 | if (pause) | ||
168 | gst_element_set_state (GST_ELEMENT(gst_pipeline), GST_STATE_NULL); | ||
169 | else | ||
170 | gst_element_set_state (GST_ELEMENT(gst_pipeline), GST_STATE_PLAYING); | ||
171 | } | ||
172 | } | ||
173 | |||
174 | size_t pcm_get_bytes_waiting(void) | 157 | size_t pcm_get_bytes_waiting(void) |
175 | { | 158 | { |
176 | return pcm_data_size; | 159 | return pcm_data_size; |
diff --git a/firmware/target/hosted/pcm-alsa.c b/firmware/target/hosted/pcm-alsa.c index eb1f764791..939a0cabb5 100644 --- a/firmware/target/hosted/pcm-alsa.c +++ b/firmware/target/hosted/pcm-alsa.c | |||
@@ -489,7 +489,7 @@ static void close_hwdev(void) | |||
489 | 489 | ||
490 | if (handle) { | 490 | if (handle) { |
491 | snd_pcm_drain(handle); | 491 | snd_pcm_drain(handle); |
492 | #ifdef AUDIOHW_MUTE_ON_PAUSE | 492 | #ifdef AUDIOHW_MUTE_ON_STOP |
493 | audiohw_mute(true); | 493 | audiohw_mute(true); |
494 | #endif | 494 | #endif |
495 | if (ahandler) { | 495 | if (ahandler) { |
@@ -634,20 +634,6 @@ void pcm_dma_apply_settings(void) | |||
634 | pcm_play_unlock(); | 634 | pcm_play_unlock(); |
635 | } | 635 | } |
636 | 636 | ||
637 | void pcm_play_dma_pause(bool pause) | ||
638 | { | ||
639 | logf("PCM DMA pause %d", pause); | ||
640 | if (!handle) return; | ||
641 | |||
642 | #ifdef AUDIOHW_MUTE_ON_PAUSE | ||
643 | if (pause) audiohw_mute(true); | ||
644 | #endif | ||
645 | snd_pcm_pause(handle, pause); | ||
646 | #ifdef AUDIOHW_MUTE_ON_PAUSE | ||
647 | if (!pause) audiohw_mute(false); | ||
648 | #endif | ||
649 | } | ||
650 | |||
651 | void pcm_play_dma_stop(void) | 637 | void pcm_play_dma_stop(void) |
652 | { | 638 | { |
653 | logf("PCM DMA stop (%d)", snd_pcm_state(handle)); | 639 | logf("PCM DMA stop (%d)", snd_pcm_state(handle)); |
@@ -656,7 +642,7 @@ void pcm_play_dma_stop(void) | |||
656 | if (err < 0) | 642 | if (err < 0) |
657 | if (err < 0) | 643 | if (err < 0) |
658 | logf("Drain failed: %s", snd_strerror(err)); | 644 | logf("Drain failed: %s", snd_strerror(err)); |
659 | #ifdef AUDIOHW_MUTE_ON_PAUSE | 645 | #ifdef AUDIOHW_MUTE_ON_STOP |
660 | audiohw_mute(true); | 646 | audiohw_mute(true); |
661 | #endif | 647 | #endif |
662 | } | 648 | } |
@@ -669,7 +655,7 @@ void pcm_play_dma_start(const void *addr, size_t size) | |||
669 | pcm_data = addr; | 655 | pcm_data = addr; |
670 | pcm_size = size; | 656 | pcm_size = size; |
671 | 657 | ||
672 | #if !defined(AUDIOHW_MUTE_ON_PAUSE) && defined(AUDIOHW_MUTE_ON_SRATE_CHANGE) | 658 | #if !defined(AUDIOHW_MUTE_ON_STOP) && defined(AUDIOHW_MUTE_ON_SRATE_CHANGE) |
673 | audiohw_mute(false); | 659 | audiohw_mute(false); |
674 | #endif | 660 | #endif |
675 | 661 | ||
@@ -681,7 +667,7 @@ void pcm_play_dma_start(const void *addr, size_t size) | |||
681 | switch (state) | 667 | switch (state) |
682 | { | 668 | { |
683 | case SND_PCM_STATE_RUNNING: | 669 | case SND_PCM_STATE_RUNNING: |
684 | #if defined(AUDIOHW_MUTE_ON_PAUSE) | 670 | #if defined(AUDIOHW_MUTE_ON_STOP) |
685 | audiohw_mute(false); | 671 | audiohw_mute(false); |
686 | #endif | 672 | #endif |
687 | return; | 673 | return; |
@@ -740,11 +726,6 @@ void pcm_play_dma_start(const void *addr, size_t size) | |||
740 | 726 | ||
741 | break; | 727 | break; |
742 | } | 728 | } |
743 | case SND_PCM_STATE_PAUSED: | ||
744 | { /* paused, simply resume */ | ||
745 | pcm_play_dma_pause(0); | ||
746 | return; | ||
747 | } | ||
748 | case SND_PCM_STATE_DRAINING: | 729 | case SND_PCM_STATE_DRAINING: |
749 | /* run until drained */ | 730 | /* run until drained */ |
750 | continue; | 731 | continue; |
@@ -850,11 +831,6 @@ void pcm_rec_dma_start(void *start, size_t size) | |||
850 | panicf("Start error: %s", snd_strerror(err)); | 831 | panicf("Start error: %s", snd_strerror(err)); |
851 | return; | 832 | return; |
852 | } | 833 | } |
853 | case SND_PCM_STATE_PAUSED: | ||
854 | { /* paused, simply resume */ | ||
855 | pcm_play_dma_pause(0); | ||
856 | return; | ||
857 | } | ||
858 | case SND_PCM_STATE_DRAINING: | 834 | case SND_PCM_STATE_DRAINING: |
859 | /* run until drained */ | 835 | /* run until drained */ |
860 | continue; | 836 | continue; |
diff --git a/firmware/target/hosted/sdl/pcm-sdl.c b/firmware/target/hosted/sdl/pcm-sdl.c index 877ca5a482..ba43ece543 100644 --- a/firmware/target/hosted/sdl/pcm-sdl.c +++ b/firmware/target/hosted/sdl/pcm-sdl.c | |||
@@ -124,14 +124,6 @@ void pcm_play_dma_stop(void) | |||
124 | #endif | 124 | #endif |
125 | } | 125 | } |
126 | 126 | ||
127 | void pcm_play_dma_pause(bool pause) | ||
128 | { | ||
129 | if (pause) | ||
130 | SDL_PauseAudio(1); | ||
131 | else | ||
132 | SDL_PauseAudio(0); | ||
133 | } | ||
134 | |||
135 | size_t pcm_get_bytes_waiting(void) | 127 | size_t pcm_get_bytes_waiting(void) |
136 | { | 128 | { |
137 | return pcm_data_size; | 129 | return pcm_data_size; |
diff --git a/firmware/target/mips/ingenic_jz47xx/pcm-jz4740.c b/firmware/target/mips/ingenic_jz47xx/pcm-jz4740.c index ef2597ae69..1ce0b5ad5f 100644 --- a/firmware/target/mips/ingenic_jz47xx/pcm-jz4740.c +++ b/firmware/target/mips/ingenic_jz47xx/pcm-jz4740.c | |||
@@ -184,18 +184,6 @@ void pcm_play_unlock(void) | |||
184 | restore_irq(flags); | 184 | restore_irq(flags); |
185 | } | 185 | } |
186 | 186 | ||
187 | void pcm_play_dma_pause(bool pause) | ||
188 | { | ||
189 | int flags = disable_irq_save(); | ||
190 | |||
191 | if(pause) | ||
192 | REG_DMAC_DCCSR(DMA_AIC_TX_CHANNEL) &= ~DMAC_DCCSR_EN; | ||
193 | else | ||
194 | REG_DMAC_DCCSR(DMA_AIC_TX_CHANNEL) |= DMAC_DCCSR_EN; | ||
195 | |||
196 | restore_irq(flags); | ||
197 | } | ||
198 | |||
199 | static int get_dma_count(void) | 187 | static int get_dma_count(void) |
200 | { | 188 | { |
201 | int count = REG_DMAC_DTCR(DMA_AIC_TX_CHANNEL); | 189 | int count = REG_DMAC_DTCR(DMA_AIC_TX_CHANNEL); |
diff --git a/firmware/target/mips/ingenic_jz47xx/pcm-jz4760.c b/firmware/target/mips/ingenic_jz47xx/pcm-jz4760.c index 098c28ecf5..4a4f3020bb 100644 --- a/firmware/target/mips/ingenic_jz47xx/pcm-jz4760.c +++ b/firmware/target/mips/ingenic_jz47xx/pcm-jz4760.c | |||
@@ -173,18 +173,6 @@ void pcm_play_unlock(void) | |||
173 | restore_irq(flags); | 173 | restore_irq(flags); |
174 | } | 174 | } |
175 | 175 | ||
176 | void pcm_play_dma_pause(bool pause) | ||
177 | { | ||
178 | int flags = disable_irq_save(); | ||
179 | |||
180 | if(pause) | ||
181 | REG_DMAC_DCCSR(DMA_AIC_TX_CHANNEL) &= ~DMAC_DCCSR_EN; | ||
182 | else | ||
183 | REG_DMAC_DCCSR(DMA_AIC_TX_CHANNEL) |= DMAC_DCCSR_EN; | ||
184 | |||
185 | restore_irq(flags); | ||
186 | } | ||
187 | |||
188 | static int get_dma_count(void) | 176 | static int get_dma_count(void) |
189 | { | 177 | { |
190 | int count = REG_DMAC_DTCR(DMA_AIC_TX_CHANNEL); | 178 | int count = REG_DMAC_DTCR(DMA_AIC_TX_CHANNEL); |