Lines Matching defs:stream
107 struct sprd_compr_stream *stream = runtime->private_data;
109 memset(stream->info_area, 0, sizeof(struct sprd_compr_playinfo));
118 struct sprd_compr_stream *stream = runtime->private_data;
119 struct sprd_compr_dma *dma = &stream->dma[1];
122 stream->copied_total += dma->trans_len;
123 if (stream->copied_total > stream->received_total)
124 stream->copied_total = stream->received_total;
135 struct sprd_compr_stream *stream = runtime->private_data;
140 struct sprd_compr_dma *dma = &stream->dma[channel];
174 src_addr = stream->iram_buffer.addr;
186 src_addr = stream->compr_buffer.addr;
187 dst_addr = stream->iram_buffer.addr;
269 struct sprd_compr_stream *stream = runtime->private_data;
294 compr_params.channels = stream->num_channels;
295 compr_params.info_phys = stream->info_phys;
296 compr_params.info_size = stream->info_size;
300 ret = stream->compr_ops->set_params(cstream->direction, &compr_params);
309 dma_release_channel(stream->dma[0].chan);
311 dma_release_channel(stream->dma[1].chan);
322 struct sprd_compr_stream *stream;
330 stream = devm_kzalloc(dev, sizeof(*stream), GFP_KERNEL);
331 if (!stream)
334 stream->cstream = cstream;
335 stream->num_channels = 2;
336 stream->compr_ops = data->ops;
343 SPRD_COMPR_IRAM_SIZE, &stream->iram_buffer);
348 stream->dma[0].virt = stream->iram_buffer.area + SPRD_COMPR_IRAM_SIZE;
349 stream->dma[0].phys = stream->iram_buffer.addr + SPRD_COMPR_IRAM_SIZE;
352 stream->info_phys = stream->iram_buffer.addr + SPRD_COMPR_IRAM_SIZE +
354 stream->info_area = stream->iram_buffer.area + SPRD_COMPR_IRAM_SIZE +
356 stream->info_size = SPRD_COMPR_IRAM_INFO_SIZE;
363 SPRD_COMPR_AREA_SIZE, &stream->compr_buffer);
368 stream->dma[1].virt = stream->compr_buffer.area + SPRD_COMPR_AREA_SIZE;
369 stream->dma[1].phys = stream->compr_buffer.addr + SPRD_COMPR_AREA_SIZE;
373 ret = stream->compr_ops->open(stream_id, &cb);
379 runtime->private_data = stream;
383 snd_dma_free_pages(&stream->compr_buffer);
385 snd_dma_free_pages(&stream->iram_buffer);
387 devm_kfree(dev, stream);
396 struct sprd_compr_stream *stream = runtime->private_data;
400 for (i = 0; i < stream->num_channels; i++) {
401 struct sprd_compr_dma *dma = &stream->dma[i];
409 snd_dma_free_pages(&stream->compr_buffer);
410 snd_dma_free_pages(&stream->iram_buffer);
412 stream->compr_ops->close(stream_id);
414 devm_kfree(dev, stream);
423 struct sprd_compr_stream *stream = runtime->private_data;
425 int channels = stream->num_channels, ret = 0, i;
436 struct sprd_compr_dma *dma = &stream->dma[i];
451 struct sprd_compr_dma *dma = &stream->dma[i];
457 ret = stream->compr_ops->start(stream_id);
462 struct sprd_compr_dma *dma = &stream->dma[i];
468 stream->copied_total = 0;
469 stream->stage1_pointer = 0;
470 stream->received_total = 0;
471 stream->received_stage0 = 0;
472 stream->received_stage1 = 0;
474 ret = stream->compr_ops->stop(stream_id);
480 struct sprd_compr_dma *dma = &stream->dma[i];
486 ret = stream->compr_ops->pause(stream_id);
492 struct sprd_compr_dma *dma = &stream->dma[i];
498 ret = stream->compr_ops->pause_release(stream_id);
503 ret = stream->compr_ops->drain(stream->received_total);
519 struct sprd_compr_stream *stream = runtime->private_data;
521 (struct sprd_compr_playinfo *)stream->info_area;
523 tstamp->copied_total = stream->copied_total;
534 struct sprd_compr_stream *stream = runtime->private_data;
544 if (stream->received_stage0 < runtime->fragment_size) {
545 avail_bytes = runtime->fragment_size - stream->received_stage0;
546 dst = stream->iram_buffer.area + stream->received_stage0;
556 stream->received_stage0 += data_count;
557 stream->copied_total += data_count;
570 stream->received_stage0 += avail_bytes;
571 stream->copied_total += avail_bytes;
580 dst = stream->compr_buffer.area + stream->stage1_pointer;
581 if (data_count < stream->compr_buffer.bytes - stream->stage1_pointer) {
585 stream->stage1_pointer += data_count;
587 avail_bytes = stream->compr_buffer.bytes - stream->stage1_pointer;
592 if (copy_from_user(stream->compr_buffer.area, buf + avail_bytes,
596 stream->stage1_pointer = data_count - avail_bytes;
599 stream->received_stage1 += data_count;
603 stream->received_total += count;