Changeset 9b3d999 in mainline
- Timestamp:
- 2012-07-06T14:17:28Z (13 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- ef246b9
- Parents:
- c5c65b6
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/audio/sb16/dsp.c
rc5c65b6 r9b3d999 46 46 47 47 #define BUFFER_ID 1 48 #define BUFFER_SIZE (PAGE_SIZE) 49 #define PLAY_BLOCK_SIZE (BUFFER_SIZE / 2) 48 #define MAX_BUFFER_SIZE (PAGE_SIZE) 50 49 51 50 #ifndef DSP_RETRY_COUNT … … 116 115 { 117 116 assert(dsp); 118 if (size > BUFFER_SIZE || size == 0 || (size % 2) == 1)119 size = BUFFER_SIZE;117 if (size > MAX_BUFFER_SIZE || size == 0 || (size % 2) == 1) 118 size = MAX_BUFFER_SIZE; 120 119 uint8_t *buffer = dma_create_buffer24(size); 121 120 if (buffer == NULL) { … … 126 125 const uintptr_t pa = addr_to_phys(buffer); 127 126 assert(pa < (1 << 25)); 127 128 128 /* Set 16 bit channel */ 129 129 const int ret = sb_setup_dma(dsp, pa, size); … … 191 191 assert(dsp); 192 192 if (dsp->event_exchange) { 193 // ddf_log_verbose("Sending interrupt event.");194 193 async_msg_0(dsp->event_exchange, IPC_FIRST_USER_METHOD); 195 194 } else { … … 248 247 return ENOENT; 249 248 sb_clear_buffer(dsp); 250 if (dsp->event_exchange) 251 async_exchange_end(dsp->event_exchange); 249 async_exchange_end(dsp->event_exchange); 252 250 dsp->event_exchange = NULL; 253 251 if (dsp->event_session) … … 273 271 274 272 /* Check supported parameters */ 275 ddf_log_debug(" Starting playback on buffer(%u): %uHz, %u bit, "276 " %u channel(s), %ssigned.", id, sampling_rate, sample_size,277 channels, sign ? "" : "un");273 ddf_log_debug("Requested playback on buffer \"%u\" (%u parts): %uHz, " 274 "%ssinged %u bit, %u channel(s).", id, parts, sampling_rate, 275 sign ? "" : "un", sample_size, channels); 278 276 if (id != BUFFER_ID) 279 277 return ENOENT; … … 293 291 sb_dsp_write(dsp, sampling_rate & 0xff); 294 292 295 ddf_log_ debug("Sampling rate: %hhx:%hhx.",293 ddf_log_verbose("Sampling rate: %hhx:%hhx.", 296 294 sampling_rate >> 8, sampling_rate & 0xff); 297 295 … … 310 308 sb_dsp_write(dsp, (dsp->playing.samples - 1) >> 8); 311 309 310 ddf_log_verbose("Playback started, interrupt every %u samples " 311 "(~1/%u sec)", dsp->playing.samples, 312 sampling_rate / dsp->playing.samples); 313 312 314 return EOK; 313 315 }
Note:
See TracChangeset
for help on using the changeset viewer.